CloseWindow geht nicht
-
Hi @ All
Das CloseWindow bei anderen fokusierten fenstern funzt net.
HWND hWnd = GetFocus(); CloseWindow(hWnd);Da habe ich mir mal eine Funktion überlegt:
bool CInput::ShortCut(BYTE bVirtualFirst, BYTE bVirtualSecond, BYTE bVirtualKeyCode) { if (bVirtualKeyCode == NULL) { return false; } INPUT ipSignal; ipSignal.type = INPUT_KEYBOARD; ipSignal.ki.wScan = 0; ipSignal.ki.dwFlags = 0L; ipSignal.ki.time = 0L; ipSignal.ki.dwExtraInfo = 0L; // Press first if (bVirtualFirst != NULL) { ipSignal.ki.wVk = bVirtualFirst; SendInput(1, &ipSignal, sizeof(ipSignal)); } // Press second if (bVirtualSecond != NULL) { ipSignal.ki.wVk = bVirtualSecond; SendInput(1, &ipSignal, sizeof(ipSignal)); } // Press key ipSignal.ki.wVk = bVirtualKeyCode; SendInput(1, &ipSignal, sizeof(ipSignal)); // And release it ipSignal.ki.dwFlags = KEYEVENTF_KEYUP; SendInput(1, &ipSignal, sizeof(ipSignal)); // Release second if (bVirtualSecond != NULL) { ipSignal.ki.wVk = bVirtualSecond; SendInput(1, &ipSignal, sizeof(ipSignal)); } // Release first if (bVirtualFirst != NULL) { ipSignal.ki.wVk = bVirtualFirst; SendInput(1, &ipSignal, sizeof(ipSignal)); } }Wenn an dann ein CInput hat, dann so:
Input.ShortCut(VK_MENU,NULL,VK_F4);Dann beendet er.
Ich werde das noch static machen.
aber ist es überhaupt vorgesehen, andere Fenster zu schließen, oder ist das von mir nur so n hack??
thx.
-
msdn schrieb:
The CloseWindow function minimizes (but does not destroy) the specified window.
Ich weiß ja nich was du unter schliesen verstehst aber die Funktion ist zum minimieren gedacht.
und zum Schliesen benutz doch einfach SendMessage
-
Oh danke.
Aber das SendMessage(hWnd,WM_CLOSE,NULL,NULL);
geht nicht.
-
Dann ist das Handle nicht das richtige oder das Programm welches du schließen möchtest möchte so nicht geschlossen werden

-
Achso, naja dann ist der AltF4-Hack genau das was ich brauche^^.
thx.
-
-
Der Link von geeky trifft die Sache am Besten! Oder alternativ DestroyWindow. Dein 'Hack' ist da IMHO nicht ratsam.