子进程窃取焦点.如何在不打扰用户的情况下将其取回
Child process steals focus. How to get it back without bothering user?
>我从控制台应用程序创建了子进程
CreateProcess(NULL, command, NULL, NULL, TRUE, 0, NULL, NULL, &in, &out);
哪里
-
command
是我pvw32 img.jpg
运行的应用程序的命令行(pictView 显示一些图像(。 -
in
是一个 STARTUPINFO 结构(我尝试STARTF_USESHOWWINDOW标志,但运气不好,pictView 通过它的一些进程窃取了焦点(
我试图给pictView一些时间,然后请把焦点收回来
Sleep(1000);
SwitchToThisWindow(hwnd,TRUE);
我得到了焦点(光标在我的控制台中再次闪烁(,但任务栏中的图标闪烁了几次,并且在我点击 Alt+Tab 之前不允许输入。
我也试着设置z顺序,启动pictView最小化,甚至暂停它,但他就是不想轻易放弃。如何重新获得焦点的唯一方法是杀死pictView。
有没有办法在不打扰用户的情况下恢复焦点 Alt+Tab?
注意:simpView 没有焦点窃取问题,但出于性能原因,我想继续使用 pictView。
正如 Remy Lebeau 指出的那样,SetForegroundWindow(( 概述了将前景设置为前台的要求。 pictView玩得很脏,所以我也用了肮脏的把戏:
LockSetForegroundWindow(LSFW_LOCK);
从控制台应用程序执行阻止了 pictView 窃取其焦点。现在一切顺利。
相关文章:
- 如何在没有打印语句的情况下报告用户输入错误
- 如何将用户下载的标头文件添加到系统中默认情况下的标题文件列表
- 在没有程序的情况下询问用户相同的事情被终止 C++
- 如何在不让用户等待的情况下管理多个线程
- 如何在服务器端验证用户请求(在我的特定情况下)
- 如何在给定特定公式的情况下将用户输入的一些数字相加
- 如何在不成为 root 用户的情况下在我的流程空间内"mount"?
- LDAP函数中是否有任何功能可以在不使用ldap_search的情况下获取用户信息
- 如何在不使用cin.ignore()和clear()的情况下修复字符串用户输入--C++
- 用户的参数在神秘情况下的QCoreApplication 是空的
- 在不作为超级用户的情况下更改文件权限
- 需要帮助以在未经用户同意的情况下停止程序终止
- 子进程窃取焦点.如何在不打扰用户的情况下将其取回
- 有没有一种方法可以在不按回车键的情况下获得用户输入
- 如何在不复制数据和不公开指针的情况下向用户检索数据对象
- 可以在没有用户输入的情况下跳过 getline() 吗?
- 在没有用户输入输入的情况下中断while循环
- 如果用户在没有输入的情况下按 Enter 键,则无法找出产生错误的方法
- 如何在QDataWidgetMapper中未提交更改的情况下通知用户
- 为什么我的用户定义函数的 return 语句在某些情况下不起作用?