Global Keyboard Hook
-
Hi
Ich möchte Systemweit für eine bestimme zeit (zb 1 min) jede Keyboardeingabe unterbinden. Hat jemand da n Quelltext für?mfg
PS: Das ultimate wäre, wenn man denn hook mit einer bestimmten tastenkombination schon früher ausschalten kann.
-
Für Hooks gibt es genug bsp. Ich glaube hier im Faq ist eins ansonsten mal bei CodeProject suchen da ist auf jeden ein Bsp. drinn.
MfG schirrmie
-
Ic3Hawk schrieb:
PS: Das ultimate wäre, wenn man denn hook mit einer bestimmten tastenkombination schon früher ausschalten kann.
Strg+Alt+Entf z.B.?
-
MEIN GOTT, ich hab dir doch schon in deinem Vorgängerthread gesagt, wo du den Keyboard Hook findest
Warum machst du dann einen zweiten Thread auf ??? Lies doch mal was ich dir geschrieben habe !
Achja, du könntest dich wenigstens bedanken, wenn ich dir extra schon schreibe wie du den Hintergrund änderst, und in den Vollbildmodus schaltest
MfG mikey.
-
1. Sry das ich mich nicht bedankt hab.
2. ich hab das forum nach keyboard hook durchsucht, aber nichts gefunden mit dem ich das programieren kann.mfg
-
2. ich hab das forum nach keyboard hook durchsucht, aber nichts gefunden mit dem ich das programieren kann.
Nimm den Code:
#include <iostream> #include <windows.h> #include <winable.h> int main () { std::cout<<"Block:"<<std::endl; BlockInput (true); Sleep (5000); BlockInput (false); }
Hier hast du auch den Vorteil, dass du mittels Strg+Alt+Entf die Blockade einfach rausnehmen kannst.
[EDIT: Hat sich wohl erledigt ....]
MfG mikey.
-
Ich such schon wie ein doofer, finde aber immer nur keyboard hook für bestimmte tasten, ich will aber alle tasten abschalten Strg Alt und co eingeschlossen .
mfg
(Da ist mir jeamand um 10 seks zuvor gekommen
)
-
Wenn du STRG+ALT+ENTF auch deaktivieren möchtest, dann ist es am besten wenn du einfach den Taskmanager nicht anzeigen lässt. Hierfür musst du den folgenden Schlüsselwert auf 1 setzen. Um ihn wieder zu aktiveren wieder auf 0. Hier der Schlüssel:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Policies\System\DisableTaskMgr:DWORD
Ein Beispiel zum ändern der Values findest du hier:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39373.html
[EDIT:] Falls der Schlüssel nicht vorhanden ist (guckst einfach mal mit dem regedit) dann musst du einen erstellen. Aber auch das wird alles im FAQ Beitrag erklärt. Wiegesagt, dein Vorhaben ist nicht gerade eine Anfängerübung, und du wirst dich recht schwer tun damit. Ich habe auch keinen vollständigen Code da, ich kann dir nur sagen was du tun musst
[EDIT:] Hab einen super Beispielcode dazu bei Codeproject gefunden, du musst ihn nur einbisschen anpassen:
#include <windows.h> int EnableDisableTaskMngr (BOOL bEnableDisable) { #define KEY_DISABLETASKMGR "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System" #define VAL_DISABLETASKMGR "DisableTaskMgr" HKEY hKey; DWORD val; LONG r; if (RegOpenKey(HKEY_CURRENT_USER, KEY_DISABLETASKMGR, &hKey) != ERROR_SUCCESS) if (RegCreateKey(HKEY_CURRENT_USER, KEY_DISABLETASKMGR, &hKey) != ERROR_SUCCESS) return 0; if (bEnableDisable) // Enable { r = RegDeleteValue(hKey, VAL_DISABLETASKMGR); } else // Disable { val = 1; r = RegSetValueEx(hKey, VAL_DISABLETASKMGR, 0, REG_DWORD, (BYTE *)&val, sizeof(val)); } RegCloseKey(hKey); return (r == ERROR_SUCCESS ? 1 : 0); } int main () { EnableDisableTaskMngr (false); }
Hier der Link:
http://www.codeproject.com/win32/AntonioWinLock.asp
MfG mikey.
-
@mikey: Die Lösung mit dem Task-Manager ist aber ein bisschen 'dirty'. Wenn man in diesem Thread überhaupt davon sprechen kann.
@Ic3Hawk: Siehe
KeyboardHook (FAQ)
-
@mikey: Die Lösung mit dem Task-Manager ist aber ein bisschen 'dirty'. Wenn man in diesem Thread überhaupt davon sprechen kann.
Klar, da gebe ich dir Recht, wobei diese Methode um ein vielfaches einfacher ist als die SAS subzuclassen
Naja der Nachteil an dem Code ist, dass eine Fehlermeldung von Windows ausgegeben wird, sobald man versucht den Taskmanager aufzurufen.
MfG mikey.