私は最近、これをアプリケーションに追加しました。私たちはそれに競争相手を打ってうれしい!あなたは回避策を実行したいとしているので、
は、最もよく使用されるブロックされたショートカットは、Altキー + タブでのWindows 8の新しいUIPIの制限があります。
マニフェストにバイナリをuiAccess="true"
とマークする必要があります。 (この方法の詳細については、googleを参照してください)。このマニフェストは、マイクロソフトが承認したコード署名証明書で署名され、「安全な場所」(system32またはProgram Files/Program Files(x86))にインストールされていない限り、 。
任意のヘルパーからプログラムを借りる場合:uiAccessバイナリは、中位の整合性プロセスからCreateProcess
で起動することはできません(マニフェストでは、 "高い"整合性が要求されます)。代わりに、ShellExecute
"open"を使用して起動してシェルを昇格させるのが最も簡単です。 CreateProcessAsUser
を使用している場合は、SetTokenInformation
を使用してTokenUIAccess
を1に設定するか、起動が失敗します。
最終条件:uiAccessは、プロセスが何をすることができるかをかなり制限することに注意してください。通常の(中位の)プロセスからUI入力を受け取ることはできないため、他のアプリケーションはウィンドウとやり取りできません。 UIを別のプロセスに分けるうえで優れた方法に従わなければ、それはそうするのが良い理由です。代わりに、uiAccessを必要とするタスクは、小さな自己完結ヘルパーバイナリに入れて、UI以外のプロセスから完全に分離することもできます。あなたのメインアプリは、それらの特定のタスクを実行するために必要な指示(例えば、SendInput
)を送信された、高い整合性のあるヘルパープロセスとして実行することができます。
最後に、SendInput
が機能します。
ここであなたの競合相手がここで頭を上げます。 :-) –
私は誰もがこれを理由にプログラムを変更するとは思わない...;) –
uiAccess = trueは、より少ない特権を持つ他のプログラムからのドラッグアンドドロップを防ぐかもしれないことに注意してください。 –