我有一个简单的win32应用程序,它使用createProcess方法调用Qt应用程序。
问题是我喜欢把Qt应用程序放在前台。
谁对此负责?父win32应用程序还是Qt应用程序?
发布于 2011-05-07 16:29:26
当前具有前景焦点的应用程序是唯一被允许改变前景焦点的应用程序。您需要使用SetForegroundWindow function来行使此权限。
文档中的“备注”部分包含适用的限制列表:
系统限制哪些进程可以设置前台窗口。仅当满足以下条件之一时,进程才能设置前台窗口:
LockSetForegroundWindow).SystemParametersInfo).>H222>F223
当用户正在使用另一个窗口时,应用程序不能强制将一个窗口转到前台。相反,Windows会闪烁窗口的任务栏按钮来通知用户。
真正的问题是为什么你需要这样做。更改前台应用程序很可能会给您带来麻烦,要么是Windows对它施加的所有限制,要么是您的用户。这是一种非常敌视用户的行为,这也是Windows近年来收紧对它的限制的原因之一。
发布于 2011-05-07 16:28:51
获取Qt应用程序的窗口句柄并调用SetForegroundWindow
发布于 2011-05-07 16:29:53
您可能希望在父进程中执行此操作。使用SetForegroundWindow的最干净/最可靠的方式是从当前处于前台的进程调用它。
https://stackoverflow.com/questions/5919928
复制相似问题