你好,我正在创建一个程序,检查打开的窗口名称,但目前它每秒检查100次,我想每次窗口更改时都检查。我知道它大概是因为无限循环。但我是C++的新手,我不知道怎么做,有人能帮我吗?
char wnd_title[256];
while(1) {
HWND hwnd=GetForegroundWindow();
GetWindowText(hwnd,wnd_title,sizeof(wnd_title));
cout << wnd_title;
}
致以最良好的问候。
有几件事可以实现:
Best(感谢Remy在评论中(:"另一种选择是使用SetWinEventHook()
侦听EVENT_OBJECT_NAMECHANGE
事件。这比拦截WM_SETTEXT
消息"更有前景",比"渗透"侵入性更小。">
- 简单而无聊(这似乎不是你真正想要的(:为请求设置一个计时器,以便在更长的时间内调用它
- 可能是最有前途的一个:用WH_GETMESSAGE设置一个窗口挂钩,以侦听从SetWindowTextA函数发送的WM_SETTEXT
- 或者疯狂地创建RemoteThread,用一个可靠的间谍潜入你的敌人