基本的には、自分のプログラムでUACボタンをクリックする必要があります(これは可能ではないと思います)。何とかして、ソフトウェアをインストールするボタンをクリックする必要はありません。プログラムのインストール中にボタンをクリックする必要がありますが、その方法を知っています。私はUACのことだけに関心を持っています。権限でのエスカレーション(UAC)をプログラムでプロンプトするソフトウェアをインストールする方法はありますか?
おかげ
基本的には、自分のプログラムでUACボタンをクリックする必要があります(これは可能ではないと思います)。何とかして、ソフトウェアをインストールするボタンをクリックする必要はありません。プログラムのインストール中にボタンをクリックする必要がありますが、その方法を知っています。私はUACのことだけに関心を持っています。権限でのエスカレーション(UAC)をプログラムでプロンプトするソフトウェアをインストールする方法はありますか?
おかげ
UAC同意ダイアログのボタンをクリックすることはできません。
その他のオプションは、実際に達成しようとするものによって異なります。したがって、あなたの仕事の詳細を教えてください。アプリケーションからインストーラボタンをクリックするよりも、設計上の選択肢が増えます。
UACを回避するには、インストールを開始するサービスをインストールします。しかし、ユーザーはサービスをインストールするときに同意する必要があります。
あなたは、ユーザーのホームディレクトリまたは管理者権限のない書き込み可能な任意の他のディレクトリにプログラムをインストールすることができます。
インストーララッパーを作成している場合は、ラッパーでUACを要求することができ、ラッパーは管理者権限で実際のインストーラを起動できます。ほとんどのインストーラは、無人インストール用のコマンドラインオプションも提供しています。そのため、スクリプトボタンの代わりにそれらを確認することができます。
いずれかの方法で、ユーザーはそのボタンをクリックして続行する許可を与える必要があります。それがUAC全体のポイントです。もしそれを回避する方法があれば、それはまったく役に立たないでしょう。
(インストールの開始時に)より早く(インストール時に特権が実際に必要な時点で)許可を求めることもできますが、そのうちの1つを実行する必要があります。
アクションの標準的な流れは、管理特権が必要であることを示すマニフェストをアプリケーションに埋め込むことです。該当する行は次のようになります。
<requestedExecutionLevel level="requireAdministrator" />
また、あなたがUAC's "Installer Detection" functionalityに頼ることを選択することができます:
インストーラ検出と呼ばれているUACの一部である第一のアプリケーション互換性技術。ほとんどのインストーラはバイナリをProgram Filesディレクトリに書き込むため、圧倒的に管理者権限が必要です。 Installer Detectionは、アプリケーションがインストーラかどうかを判断するために、EXEの名前とリソースをスキャンするように設計されています。たとえば、実行ファイル名または記述に文字列 "install"または "setup"が含まれている場合、実行可能ファイルはインストーラとしてマークされます。したがって、アプリケーションマニフェストのないsetup.exeという名前のアプリケーションは、管理者権限のないトークンによって起動された場合、UACの仰角をトリガします。
のインストール中にボタンをクリックすると、あなたのインストールはあまり良いアイデアでもありません。これが作成しているインストーラの場合は、インストーラアプリケーションの実行時に指定できる「サイレントインストール」フラグを記述します。使用しているサードパーティのインストーラの場合は、マニュアルを確認してください。既にそのようなフラグが存在する可能性があります。これらのフラグのポイントは、セットアップ中にインタラクティブUIがまったく表示されないことです。つまり、誰もボタンをクリックしなくてもいい(これは非常に困難です)。
+1 "あなたのインストール中に*ボタンをクリックすることはあまり良い考えではありません。 –
質問のタイトルが本文と一致しません。あなたが何を求めているのか分かりません。 –
UACボタンはプログラムによってクリックできますが、そのためにはUACプロンプトが必要なサービスをインストールする必要があります。キャッチ22のようなもの。 – Luke
ルーク、あなたが悪いとコメントしたい場合は、あなたに信用を与える。インストールはビルドシステムの一部として自動的にダウンロードされます。インストーラをダウンロードして実行するサービスを事前にインストールする可能性があります。 – MrUnleaded