![]() |
Re: bestimmte Tasten Sperren.
warum willst du keinen hook verwenden?
über n system-hook müsste das doch möglich sein. |
Re: bestimmte Tasten Sperren.
Das programm soll ich auf unseren Schulrechner zum laufen bringen,und da kann ich nicht an den Treibern rumspielen.
und wegen den hooks weiss ich nicht, kann man die einfach so einbinden? (habe davon 0 ahnung) weiterhin hat mein Lehrer gesagt, das geht über eine Procedure, ohne etwas einzubinden und verwies mich auf invalidkey. ach und wegen der taskleiste: wie kann ich diese Procedure:
Delphi-Quellcode:
ins Formcreate einbinden?
procedure SetStartBtnEnabled(const AEnabled: Boolean);
begin EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd',nil), 0, 'Button', nil), AEnabled); end; sorry für die vielen fragen aber ich bin noch ein Noob^^ |
Re: bestimmte Tasten Sperren.
^^indem du einfach das hier ins Form-Create schreibst:
Delphi-Quellcode:
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWnd',nil),0,'Button',nil),true);
//bzw. das letzte true eben durch false ersetzen. |
Re: bestimmte Tasten Sperren.
thx4help. jetzt fehlt nur noch die ALT taste :wink:
|
Re: bestimmte Tasten Sperren.
also strg+esc kannste mit diesem keyboard hook sperren.
Delphi-Quellcode:
library KeyboardHook;
uses Windows, SysUtils, Classes; {$R *.res} type TKeybDLLHookStruct = packed record vkCode: integer; scanCode: integer; flags: integer; time: integer; dwExtraInfo: integer; end; PKeybDLLHookStruct = ^TKeybDLLHookStruct; const WH_KEYBOARD_LL = 13; var hKeyHook: THandle; function KeyboardProc_LowLevel(code: integer; wParam, lParam: Integer): integer; stdcall; var P: PKeybDLLHookStruct; KeyDown: Boolean; begin if Code < 0 then result := CallNextHookEx(hKeyHook, Code, wParam, lParam) else begin P := Pointer(lParam); KeyDown := P^.flags = 0; if KeyDown and (P^.vkCode = VK_ESCAPE) and Bool($8000 and GetAsyncKeyState(VK_CONTROL)) then result := HC_SKIP else result := CallNextHookEx(hKeyHook, Code, wParam, lParam); end; end; procedure StartHook; begin hKeyHook := SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc_LowLevel, HInstance, 0); end; procedure StopHook; begin UnhookWindowsHookEx(hKeyHook); end; exports StartHook, StopHook; begin end. bindeste so in dein prog ein:
Delphi-Quellcode:
rufst dann einfach beim OnCreate von deinem form
interface
... const HookDLL = 'KeyboardHook.dll'; procedure StartHook; external HookDLL; procedure StopHook; external HookDLL;
Delphi-Quellcode:
und beim OnDestroy
StartHook;
Delphi-Quellcode:
auf
StopHook;
|
Re: bestimmte Tasten Sperren.
FRAGE: was ist ein hook, und wo muss ich das hinschreiben? einfach eine neue unit einbinden und das reinschreiben oder wie? ich habe davon keine Ahnung. :roll:
|
Re: bestimmte Tasten Sperren.
Datei->Neu->Weitere->DLL-Experte (so is es zumindest bei mir mit d7).
und oben haste den kompletten quellcode für die dll. einma übersetzen und du hast ne dll die 2 funktionen exportiert: StartHook und StopHook. wie du die beiden funktionen dann in dein prog importierst und verwendest habe ich ja oben schon geschrieben. was ein hook is und wozu man ihn noch so verwenden kann guckste am besten ma unter ![]() |
Re: bestimmte Tasten Sperren.
wenn ich das jetzt speichern will, speichert der das als *.dpr usw...
wie kann ich das als DLL speichern? |
Re: bestimmte Tasten Sperren.
diese frage hätte sicher auch mit der sufu beantwortet werden können, aber nun gut...
natürlich speicherst du das als projekt-datei. dein projekt von deinem prog speicherst du ja auch nich als exe, oder? erst nach dem kompilieren is ne exe vorhanden. genauso bei der dll. einma kompilieren und eine dll-datei liegt parat. |
Re: bestimmte Tasten Sperren.
thx du hast mir sehr gehofen.
Wenn noch was ist, melde ich mich. EDIT: könntest du mir vllt noch einen Hook für ALT+TAB und STRG+ALT+ENTF schreiben? oder am besten alles in einem. habe versucht deinen abzuändern, aber bekomme das irgendwie nicht hin :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz