当需要执行某些安全相关操作时,Windows在“安全桌面”上显示UAC提示。 显然有一些API创build了安全桌面,并在其上创build了一个窗口,但我不知道在哪里可以find涉及的机制。 我想我可以对UAC机制进行逆向工程,但是我并不擅长逆向工程(我敢肯定,这涉及到一些法律方面的问题……)
无论如何,我知道有一个API可以在当前会话中创build新的桌面,但是在任何可以find的文档中都没有提到安全的桌面。 出于好奇,我想知道整个安全桌面/ UAC提示符创build如何工作。
免责声明:这纯粹是理论上的,我不打算在我的任何代码中进行部署。
从系统的角度来看,安全桌面似乎只是一个具有合适ACL的非常正常的桌面。 请注意,CreateDesktop允许您指定新桌面的安全描述符。
据我所知,安全的桌面没有特殊的行为,所以我没有理由认为有任何额外的API(记录或不记录)。
你可能已经看到了这一点,但万一,以及其他用户阅读这里,有一个很好的流程图在这里的UAC架构在这里….
http://msdn.microsoft.com/en-us/library/bb756945.aspx
就UAC而言,据我所知,UAC如何与特定应用程序一起工作的所有信息都在嵌入在exe或dll中的链接阶段中。
自从.Net的变化以来,即使非.Net应用程序也需要有一个清单来告诉Windows它们不是.Net。 在Visual Studio的新版本中构建的所有东西,或者至少是我内置的东西,在链接器选项的清单部分都有各种各样的UAC选项,包括允许你禁用它的东西。
有一个UAC克隆与源也可以在XP上运行。 它被称为SuRun,并包含一些更多的功能,如自动提升特定的应用程序。
博客和文档是德文的: http : //kay-bruns.de/wp/software/surun德文文档包含大量的详细信息: http : //kay-bruns.de/download/SuRun1209.pdf
Sourceforge页面: http : //sourceforge.net/projects/surun/它是C ++