在 Windows 10 中将一个应用程序放在另一个应用程序前面
Bring one application in front of another in Windows 10
我有两个独立的进程在Qt上运行,我需要能够将一个进程放在另一个进程之前。他们都互相交流,所以你会认为这不是一个大问题。但是,Windows 10对此非常严格。我所能做的就是使我想放在前面的窗口在窗口工具栏中闪烁橙色。
到目前为止,我正在尝试使用的代码:
A类(当前处于活动状态):
AllowSetForegroundWindow(ASFW_ANY);
B类(我想带在前面的那个):
#ifdef WIN32
if(hWnd)
{
SetForegroundWindow(hWnd);
SetActiveWindow(hWnd);
BringWindowToTop(hWnd);
}
#endif
hWnd 是更早获得的(而 B 类是活动窗口),具有:
hWnd = GetActiveWindow();
我是不是误会了什么?为什么这仍然不起作用?
如何始终将Qt/Windows小部件设置在顶部?
遇到上述很多问题后,以下解决方案对我有用:
void widgetToTop(QWidget* widget)
{
bool wasMax = widget->isMaximized();
bool wasMin = widget->isMinimized();
HWND h = (HWND)widget->winId();
if (wasMax || wasMin)
{
::ShowWindow(h, SW_SHOW);
::ShowWindow(h, wasMax ? SW_MAXIMIZE : SW_RESTORE);
::SetForegroundWindow(h);
}
else
{
::ShowWindow(h, SW_SHOWNORMAL);
::SetForegroundWindow(h);
}
}
当然,这可以使用纯Win32 API进行返工。
附言也许解决方案并不完全是"在另一个之上",但可能已经足够了。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- 如何将一个窗口保留在另一个应用程序窗口的前面
- 将库链接到另一个应用程序时,CMAKE 找不到库
- Qt creator 4.11,在应用程序输出面板中创建一个链接
- 如何创建一个使用开源c项目的c++控制台应用程序
- 调试控制台 ChessEngine.exe "used"在另一个应用程序(国际象棋 GUI)中
- Bash 自动完成一个选项,而不运行应用程序
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 一个32位版本的应用程序,建立在CentOS 6 x64上,当在较新的Linux上启动时,在"dl_itera
- 在 Windows 10 中将一个应用程序放在另一个应用程序前面
- 将数据从一个应用程序单向发送到另一个应用程序的最佳做法
- 构建一个真正、完全静态的Qt 5框架和应用程序(Qt 5.8之后)
- 我正在编写一个简单的客户端套接字应用程序,但在连接后服务器收到一个空缓冲区
- 当电子的窗口隐藏时如何激活另一个应用程序窗口
- 与 Python 中子进程中的另一个应用程序的交互式会话
- 将UWP应用程序的简单INT发送到另一个程序
- osX - 如何从我的 QT 应用程序启动另一个程序
- 来自另一个 IOS 应用程序的 IOS 应用程序命令