我有两个使用Qt运行的独立进程,我需要能够将一个应用程序放在另一个之前。他们都相互沟通,所以你会认为这不会是一个大问题。不过Windows 10对此特别严格。我所能做的就是在窗口工具栏中使我想要的窗口闪烁橙色。在Windows 10中将另一个应用程序置于另一个应用程序的前面
代码我试图用至今:
A级(当前活动):
AllowSetForegroundWindow(ASFW_ANY);
B类(一个我想在前面带):
#ifdef WIN32
if(hWnd)
{
SetForegroundWindow(hWnd);
SetActiveWindow(hWnd);
BringWindowToTop(hWnd);
}
#endif
hWnd得到较早(虽然B类是活动窗口)与:
hWnd = GetActiveWindow();
我误解了一些东西吗?为什么这仍然不起作用?
这Qt的解决方法至少已经在Windows 7下工作对我来说与8.1 也许它仍然将在Windows 10 这个 - > setWindowState((这 - > WINDOWSTATE()〜Qt的:: WindowMinimized)下工作| Qt的:: WindowActive); this-> setVisible(false); this-> setVisible(true); this-> setFocus(); BringWindowToTop((HWND)this-> winId()); _this_是QWidget的子类 – Xplatforms
AllowSetForegroundWindow是否返回成功,并且在调用'AllowSetForegroundWindow'和尝试激活进程B之间发生用户输入(因为给予进程B的权限[只要用户生成更多输入(https://msdn.microsoft.com/en-us/library/windows/desktop/ms632668(v = vs.85)的.aspx))? – GSerg
@GSerg我不知道AllowSetForegroundWindow在用户输入上过期。通话之间的确有输入。这个问题解决了:)谢谢! – Excludos