Tasten - Strg-Alt-Entf etc. deaktivieren
-
Hi, wie bekomme ich das hin,
dass Windows für einen gewissen
Zeitraum alle Tasteneingaben
ignoriert also auch z.B. Strg+Alt+Enf /
Alt+Tab / Alt+F4 / X / Y / usw.
Wer hat so was schon mal gemacht?
Beispielcode währe nicht schlecht.
Danke.[ 17.08.2001: Beitrag editiert von: Jansen ]
-
// Strg-Alt-Entf und Alt-Tab deaktivieren:
int ilRetVal = 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, true, &ilRetVal, NULL);// Strg-Alt-Entf und Alt-Tab wieder aktivieren:
int ilRetVal = 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, false, &ilRetVal, NULL);------------------
/MicroForce Inc./
hope we can help!
-
Cool, Toll, Spitze, Klasse.
Danke hat funktioniert.
-
Diese Vorgehensweise geht aber nur unter Win95 bzw. Win98. Bei WinNT/2000/XP geht das nicht.
Unter WinNT/2000/XP kann man die Ctrl-Alt-Del-Taste nicht abfangen.
Wenn du möchtest kann ich hir einen Code posten, der unter Win95/Win98/WinNT/Win2k/WinXP die Tasten Alt-Tab, Ctrl-Esc und Alt+Esc abfängt.
------------------
Happy Building
wünscht
Happy Builder
Ein Besuch der sich lohnt: http://www.bcbarena.deEdit:
BS-Liste um XP erweitert.
-
jo mach mal
-
// In der Header-Datei: class TMainForm : public TForm { __published: public: // User declarations __fastcall TMainForm(TComponent* Owner); virtual __fastcall ~TMainForm(); // IDE-managed Components private: // User declarations static HHOOK ghhookKB; static void __stdcall SetHook(void); static void __stdcall RemoveHook(void); static LRESULT CALLBACK CheckKey(int, WORD,LONG); }; // In der CPP-Datei: HHOOK TMainForm::ghhookKB = NULL; //--------------------------------------------------------------------------- __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { SetHook(); } //--------------------------------------------------------------------------- __fastcall TMainForm::~TMainForm() { RemoveHook(); } //--------------------------------------------------------------------------- void __stdcall TMainForm::SetHook(void) { ghhookKB = SetWindowsHookEx(WH_KEYBOARD_LL, (int(__stdcall*)())CheckKey, HInstance, NULL); } //--------------------------------------------------------------------------- void __stdcall TMainForm::RemoveHook(void) { UnhookWindowsHookEx(ghhookKB); } //--------------------------------------------------------------------------- LRESULT CALLBACK TMainForm::CheckKey(int nCode, WORD wParam, LONG lParam) { bool bEatKeyStroke = false; if (nCode == HC_ACTION) { switch (wParam) { case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam; bEatKeyStroke = ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)) | | ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) | | ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)); break; } } return(bEatKeyStroke ? 1 : CallNextHookEx(ghhookKB, nCode, wParam, lParam)); }
Hook is cool
Happy Builder