我最近在我們的應用程序中添加了對此的支持。很高興我們擊敗了我們的競爭對手!
有在Windows 8的新UIPI限制中最常用的快捷方式受阻是Alt鍵 + 標籤,所以你會想要做的解決方法。
您必須在清單中用uiAccess="true"
標記您的二進制文件。 (有關如何執行此操作的更多詳細信息,請參閱google。)此清單可防止啓動二進制文件,除非使用Microsoft批准的代碼簽名證書籤署並安裝在「安全位置」(system32或Program Files/Program Files(x86))中。
如果您從任何助手啓動您的程序:uiAccess二進制文件無法從中等完整性進程CreateProcess
啓動(清單標記爲需要「高」完整性)。相反,使用ShellExecute
「open」啓動它可以讓shell提升它,這是最容易的。如果使用CreateProcessAsUser
,則必須使用SetTokenInformation
將TokenUIAccess
設置爲1,否則啓動將失敗。
最終條款:請注意,uiAccess會嚴重限制流程的功能。您無法從正常(中等完整性)進程接收UI輸入,因此其他應用程序無法與您的窗口進行交互。如果您尚未遵循將您的用戶界面分成單獨流程的良好實踐,那麼這將是一個很好的理由。或者,需要使用uiAccess的任務可以放入小型自包含輔助二進制文件中,並且完全與非UI進程分離。您的主應用程序可以將其作爲高完整性的幫助程序運行,並根據需要發送說明以執行這些特定任務(如SendInput
)。
最後,SendInput
將工作。
現在你的競爭對手就會在這裏站起來。 :-) –
我懷疑有人會因爲這個而改變程序...;) –
請注意,uiAccess = true可能會阻止其他具有較低特權的程序拖放。 –