Win32API質問箱 Build44
■ このスレッドは過去ログ倉庫に格納されています
0265254
2006/07/11(火) 17:39:57起動したウィンドウがターゲットプログラムのときにTSK_CREATEを
作成アプリに通知し、作成アプリ側で受け取って操作できるようにしました。
WH_CBTフックのプロシージャ
LRESULT CALLBACK MySysHookWndProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HCBT_CREATEWND){
CBT_CREATEWND *pcw = (CBT_CREATEWND *)lParam;
if(pcw->lpcs->lpszClass == TARGET_CLASS_NAME){
SendMessage(g_hCallExe, TSK_CREATE, 0, 0);
}
return 0;
}
return CallNextHookEx(g_hSysHook, nCode, wParam, lParam); //次のフックを呼ぶ
}
アプリ側
switch(msg){
case TSK_CREATE:
MessageBox(hWnd, "起動しました", "", MB_OK);
break;
}
しかし、これで実行するとターゲットプログラムの起動前にメッセージボックスの発生が
無限ループになり、作成アプリを強制終了しないとターゲットプログラムが起動しませんでした。
TSK_CREATEを一回だけ通知し、ターゲットプログラムを起動するにはどうしたらよいのでしょうか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています