フォームのOKボタンのUAC機能についてインターネットを介して調査しましたが、情報を取得できませんでした。 UACの実装に関するすべての情報は、管理者特権でアプリケーションを再起動します。OKボタンのユーザーアカウント制御
私が必要とするのは、ユーザーがShieldアイコン付きの[OK]ボタンをクリックすると、ユーザーはWindowsレジストリにユーザー権限を昇格させて保存できますが、再起動したくありません管理者権限を持つアプリケーション
フォームのOKボタンのUAC機能についてインターネットを介して調査しましたが、情報を取得できませんでした。 UACの実装に関するすべての情報は、管理者特権でアプリケーションを再起動します。OKボタンのユーザーアカウント制御
私が必要とするのは、ユーザーがShieldアイコン付きの[OK]ボタンをクリックすると、ユーザーはWindowsレジストリにユーザー権限を昇格させて保存できますが、再起動したくありません管理者権限を持つアプリケーション
アプリケーションの再起動(またはヘルパーアプリケーションの起動)は、あなたが行うことです。これは、UAC確認画面を表示させるアプリケーションを起動している間に昇格された権限を要求することです。シールドアイコンを表示する目的は、基本的に確認画面が表示されていることをユーザーに知らせることです。
アプリケーションを再起動する必要はありません。アプリケーションで複数のインスタンスが許可されている場合は、作成するレジストリの変更を示すコマンドラインパラメータを使用して2番目のコピーを起動できます。あるいは、管理作業を行うヘルパーアプリケーションを用意し、必要に応じて起動することもできます。ヘルパーアプリケーションでは、ウィンドウを作成または表示する必要はありません。それは完全にバックグラウンド操作になる可能性があります。
を使用すると、アプリケーションマニフェストを追加し、管理者権限を必要とすべきである場合があります。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
編集
アプリケーション全体が昇格した権限で実行されているので、それはここに最善の解決策ではないかもしれないし、セキュリティ上の脆弱性があります。
"管理者権限でアプリケーションを再起動する必要はありません。"タフ。プロセストークンは、プロセスの開始時に1回割り当てられます。したがって、最低2つのプロセスが必要です。 –
@DavidHeffernan 2つのプロセスが必要ですが、同じプロセスを再起動するのではなく、別のプロセスを開始することができます。 – Servy
@Servyはい、あなたはそれを行うことができます。私は「私は別のプロセスを開始したくない」という質問から引用を読みました。 –