I'maは現在、特定のウィンドウを監視し、その後PostMessage(hWnd,WM_CLOSE,0,0);
フック含むDLLとそれを閉じグローバルフックで実行:することができますようにのWin32 WH_CBTフック - それが作成される前に、ウィンドウを閉じる
LRESULT CALLBACK MyFunc(int code, WPARAM wParam, LPARAM lParam)
{
switch(code)
{
case HCBT_CREATEWND:
{
HWND hWnd = (HWND)wParam;
//GetWindowText(hWnd, wintext, 80) returns nothing
//if (strcmp(wintext, ("Kaspersky Internet Security: license notification")) == 0)
// {
// Beep(70,100);
// PostMessage(hWnd,WM_CLOSE,0,0);
// }
break;
}
case HCBT_ACTIVATE:
{
HWND hWnd = (HWND)wParam;
GetWindowText(hWnd, wintext, 80);
if (strcmp(wintext, ("Kaspersky Internet Security: license notification")) == 0)
{
Beep(70,100);
PostMessage(hWnd,WM_CLOSE,0,0);
}
break;
}
}
...
を私はGetWindowText(hWnd, wintext, 80)
を使用して、現在アクティブなウィンドウが閉じられるウィンドウであるかどうかをウィンドウタイトルで判断してください。私は ウィンドウがアクティブになっているときに閉じていて、ウィンドウが作成されていないときには閉じています。 HCBT_CREATEWND
がtrueのときに、ウィンドウが作成されているときにウィンドウを閉じたいと思います。
事は、私は、ウィンドウのタイトルを取得するためにGetWindowText(hWnd, wintext, 80)
を使用してHCBT_CREATEWND
が呼び出されたときに、ウィンドウがfully createdされていると何も返さないGetWindowText(hWnd, wintext, 80)
何のタイトルを、持っていないしていないため、ウィンドウが閉じられなければならない場合、それによって決定can'tということです。
私の質問を要約すると:HCBT_CREATEWND
が本当であるときに、ウィンドウのタイトルを取得することができますか、それとも他の方法でそれがどのようなウィンドウであるかを判断できますか?