簡體   English   中英

當窗口設置為活動狀態時獲得通知

[英]Get a notification when a window is set as active

我正在嘗試用C ++寫一個基本的鍵盤記錄程序,到目前為止,我設法使用Win API安裝了一個低杠桿鍵盤鈎。 每次按鍵時都會通知我。 我想做一些類似的事情,以便每次將焦點更改到另一個窗口時都通知我,因此我知道用戶正在輸入哪個窗口。我試圖設置一個HW_CBT掛鈎,但是它沒有任何通知。

做這個的最好方式是什么?

編輯:

我編寫了以下代碼:

LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) {
    cout<<"event";
    return CallNextHookEx(0, nCode, wParam, lParam);
}

SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, NULL, NULL);

我的程序中也有這個:

while(true)
  GetMessage(&msg,0,WM_KEYFIRST, WM_KEYLAST);

運行該程序時,除了有關按鍵的通知外,我仍然沒有收到任何通知。

編輯2! 我使用GetWindowText()GetForegroundWindow()和一個計時器來完成它。 並不是我真正想要的,但是可以。 我只接受第一個答案...

也許這對您有用嗎? SetWindowsHookEx

在系統將消息發送到目標窗口過程之前,安裝用於監視消息的掛鈎過程

嘗試使用WH_CALLWNDPROC或WH_CALLWNDPROCRET掛鈎來獲取WM_ACTIVATE(激活和停用窗口的通知)消息,這些消息在發送到實際窗口的窗口過程之前或之后都發送到了您的掛鈎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM