我正在尝试使用CreateProcessAsUser
启动UI,但该窗口不是前景窗口。
我不介意它是否是一个普通的窗口,但是这个窗口会触发UAC提示,它也不会显示在前台。
答案 0 :(得分:2)
从您的描述中,听起来好像您正试图以提升模式启动其他进程。如果您正在尝试这样做,则无法将其设置为前景窗口。事实上,不允许非升级过程以任何方式/形状/形式接触升高的过程。
创建的进程必须负责实际将其自己的窗口设置为前景窗口。尝试使用传递给STARTUPINFO
的{{1}}结构,设置CreateProcessAsUser
标记,并指定值STARTF_USESHOWWINDOW
。如果这不起作用,除了首先提升部分内容之外,没有真正的解决方法,例如创建一个提升的COM组件。
如果那不是你想要做的,而你只是想将子进程的窗口移到前台,那么你必须enumerate windows owned by the child process然后在其中一个上调用SetForegroundWindow