gpt4 book ai didi

c++ - Windows/C++ : detect when focus has changed between windows (globally)

转载 作者:可可西里 更新时间:2023-11-01 11:22:26 25 4
gpt4 key购买 nike

我正在尝试找到一种方法来检测何时将焦点更改为另一个窗口(而不必每隔 X 毫秒轮询一次)。

我已经想出了一种方法来检测何时使用 WH_SHELL 和 HSHELL_ACTIVATESHELLWINDOW 在应用程序之间切换焦点。

问题是我想检测焦点何时在同一个应用程序的对话框/窗口之间切换。

即。在记事本中,我可以确定应用程序何时切换到记事本,但我无法检测到“打开”或“保存”对话框何时出现,因为焦点仍在同一应用程序中。

最佳答案

您可以使用 SetWindowsHookEx使用 WH_CBT Hook 类型。如果您只想检测应用程序中的焦点变化,请将 GetCurrentThreadId() 作为最后一个参数传递,否则 Hook 将适用于当前桌面上的所有线程。

请注意,使用 Windows Hook 会对系统性能产生不利影响,因此应仅在必要时安装 Hook ,并且您应该在 Hook 过程中做最少的工作。

关于c++ - Windows/C++ : detect when focus has changed between windows (globally),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com