我正在编写一个程序,该程序接受来自用户的两个整数值X和Y(用于赋值)作为输入。 棘手的部分是程序必须创建一个父级和子级,其中父级进程将读取X,而子级进程将读取Y(使用scanf )。 该程序的预期输出如下: 我遇到的问题是,子级会自动执行,而不是等到父级收到输入后才执行。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我们的应用程序(AppA)正在调用第三方应用程序(AppB)。 我们将AppB的窗口模拟为应用程序的模态。
pseudo
while AppB_Running
If AppA_focused
SetForeGroundWindow(AppB_Hwnd)
HandleMessage
SetForegroundWindow(AppA_HWnd)
这项工作已经进行了多年,没有发生任何事件,也就是说,直到我们开始推出Windows 10为止。我们开始收到有关关闭AppB有时会引起关注的随机应用程序(AppC)的报告(实际上,考虑到用户的技术专长,报告更像是“关闭AppB杀死AppA”,但我离题了。 可以偶尔在开发机器上重现该行为(<5%)(但在调试时还没有...)
到目前为止,测试结果表明AppC是AppA之前关注的应用程序。
有什么方法可以确保当AppB关闭时AppA重新获得焦点吗?
即使AppA仅失去对AppB的关注,也可以重现该问题。 (AppA启动后,AppC永远不会被关注)
虽然这不能直接回答我的原始问题,但确实可以提供有关此问题的更多见解,并且可能对其他人有用。
问题的一部分是对我们的监督。 更具体地说,我们获得AppB_HWnd的方式。 我们基本上选择了遇到的第一个顶级窗口。 在我们当前的测试案例中,该窗口恰好是不可见的窗口(“ MSCTFIME UI”)。 在不可见窗口上调用SetForegroundWindow似乎本身不会引起问题,Windows似乎只是将进程的可见窗口之一放在前面。 当所说的进程没有可见的窗口时,事情似乎出现了问题。 在我们的情况下,这通常发生在AppB主窗口关闭到流程结束之间。
所以...不要在不可见的窗口上调用SetForegroundWindow
至于为什么我们在Win7中没有任何麻烦呢? 也许第一个窗口总是可见的。 或者,也许SetForegroundWindow的行为在那时有所不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.