ウィンドウの監視を行っており、アクティブウィンドウの情報を
別プロセスへ送信したいのですが、送信先のウィンドウハンドルを
どのようにして取得すればいいのかわかりません。
アドバイスお願いできないでしょうか?
開発環境はVC6.0です。
以下ソース
// コールバック
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
// ウィンドウアクティブ化
if(nCode==HCBT_ACTIVATE) {
// ウィンドウハンドル取得
HWND hWnd = (HWND)wParam;
// タスクバーに表示されているアプリケーションか判定
if( GetWindow(hWnd, GW_OWNER) == NULL &&
IsWindowVisible(hWnd) == TRUE &&
GetWindowTextLength(hWnd) > 0 ) {
// 指定されたウィンドウへメッセージ送信
PostMessage(ここに指定するウィンドウハンドルはどうやって取得するのか?,WM_USER+1,wParam,lParam);
}
}
//次のフックを呼ぶ
return CallNextHookEx(hHookWnd, nCode, wParam, lParam);
}
// フックのインストール
void CALLBACK SetHook()
{
hHookWnd = SetWindowsHookEx(WH_CBT, CBTProc, hdll, 0);
}
// フックの解放
void CALLBACK ReleaseHook()
{
UnhookWindowsHookEx(hHookWnd);
}
よろしくお願いします。
グローバル変数使うのではダメでしょうか?
Blueさんに指摘して頂いた通り、
グローバル変数を用意したところ
うまくいきました。
ありがとうございます。
ツイート | ![]() |