Huhu@all!
Folgendes Problem (mal wieder):
Ich hab mal ein bisschen gesucht im Forum wie man bestimmte Windows Tastenkombinationen abfangen kann. Dann bin ich auf den Keyboardhook (siehe Anhang) gestoßen. Der unterbindet alle Tastenkombinationen mit der Windowstaste. Jetzt wollte ich die
DLL so modifizieren, dass auch Tastenkombinationen mit ALT und STRG abgefangen werden können (im grunde sollen wirklich ALLE Windowstastenkombinationen außer ALT+STRG+ENTF) abgefangen werden.
Allerdings funktioniert die modifizierte Version hier nicht mehr, bzw die neue Tastenkombination, die gesperrt werden soll, wird nicht gesperrt:
Delphi-Quellcode:
unit WHookInt;
interface
//[...usw...]
{ Example to disable all the start-Key combinations }
case TPMsg(lParam)^.
message of
WM_SYSCOMMAND:
// The Win Start Key (or Ctrl+ESC)
if TPMsg(lParam)^.wParam = SC_TASKLIST
then Kill := True;
//neu hinzugefügt:
WM_SYSKEYDOWN:
case ((TPMsg(lParam)^.lParam
and $00FF0000)
shr 16)
of
VK_F4:
// Alt+F4 ==> Close Window
Kill := True;
end;
//bis hier
WM_HOTKEY:
case ((TPMsg(lParam)^.lParam
and $00FF0000)
shr 16)
of
VK_D,
// Win+D ==> Desktop
VK_E,
// Win+E ==> Explorer
VK_F,
// Win+F+(Ctrl) ==> Find:All (and Find: Computer)
VK_M,
// Win+M ==> Minimize all
VK_R,
// Win+R ==> Run program.
VK_F1,
// Win+F1 ==> Windows Help
VK_PAUSE:
// Win+Pause ==> Windows system properties
Kill := True;
end;
end;
if Kill
then TPMsg(lParam)^.
message := WM_NULL;
Result := CallNextHookEx(MMFData.NextHook, Code, wParam, lParam)
end;
UnMapMMF(MMFData);
end;
CloseMMF(MMFHandle);
end;
end;
//[...]
Ich weiß einfach nicht was ich da falsch gemacht habe? Muss ich mir mein VK_F4 irgendwie anders umdefinieren? Kann mir jemand helfen? Das wäre echt klasse!
Beste Grüße und schönes Wochenende!!!