我有兩個使用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