3

我正在尝试使用CreateProcessAsUser但窗口不作为前景窗口来启动 UI。

我不介意它是否是一个普通窗口,但是这个窗口会触发 UAC 提示,并且它也不会显示在前台。

4

1 回答 1

2

根据您的描述,听起来好像您正在尝试以提升模式启动其他进程。如果这就是您要执行的操作,则无法将其设置为前景窗口。事实上,不允许非提升的进程以任何方式/形状/形式接触提升的进程。

创建的进程必须负责将自己的窗口实际设为前台窗口。尝试使用STARTUPINFO传递给的结构CreateProcessAsUser,设置STARTF_USESHOWWINDOW标志并指定SW_SHOWNORMAL. 如果这不起作用,除了首先提升自己的一部分之外没有真正的解决方法,例如创建提升的 COM 组件。

如果这不是您想要做的,而您只是想将子进程的窗口移动到前台,那么您必须枚举子进程拥有的窗口,然后在其中一个上调用SetForegroundWindow 。

于 2011-02-21T21:29:30.373 回答