procedure lockmouse(lock:boolean); //锁住鼠标,true锁,false解锁 var rt:Trect; p:Tpoint; begin if lock=true then begin GetCursorPos(p); rt:=rect(p.x,p.y,p.x+1,p.y+1); clipcursor(@rt); end else clipcursor(nil); end;//键盘锁 unit Unit2;
interface uses Wintypes, WinProcs;
//键盘上锁 function DisableKeyboard: Boolean; //键盘解锁 procedure EnableKeyboard;
implementation
var oldHook: Hhook;
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; begin if code < 0 then KbHook := CallNextHookEx(oldHook, code, wparam, lparam) else KbHook := 1; end; // KbHook
function DisableKeyboard: Boolean; //上锁 begin oldHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, Hinstance, 0); DisableKeyboard := oldHook <> 0; end;
procedure EnableKeyboard; //解锁 begin if oldHook <> 0 then begin UnhookWindowshookEx(oldHook); oldHook := 0; end; // If end; end.
unit Unit3;
interface uses Wintypes, WinProcs;
function DisableKeyBoard: Boolean; procedure EnableKeyBoard;
implementation var oldHook: HHOOK;
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; begin if code < 0 then KbHook := CallNextHookEx(oldHook, code, wparam, lparam) else KbHook := 1; end;
function DisableKeyBoard: Boolean; begin oldHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HINSTANCe, 0); Result := oldHook <> 0; end;
procedure EnableKeyBoard; begin if oldHook <> 0 then begin UnhookWindowsHookEx(oldHook); oldHook := 0; end;
var rt:Trect;
p:Tpoint;
begin
if lock=true then
begin
GetCursorPos(p);
rt:=rect(p.x,p.y,p.x+1,p.y+1);
clipcursor(@rt);
end else clipcursor(nil);
end;//键盘锁
unit Unit2;
interface
uses
Wintypes, WinProcs;
//键盘上锁
function DisableKeyboard: Boolean;
//键盘解锁
procedure EnableKeyboard;
implementation
var
oldHook: Hhook;
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
begin
if code < 0 then
KbHook := CallNextHookEx(oldHook, code, wparam, lparam)
else
KbHook := 1;
end; // KbHook
function DisableKeyboard: Boolean;
//上锁
begin
oldHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, Hinstance, 0);
DisableKeyboard := oldHook <> 0;
end;
procedure EnableKeyboard;
//解锁
begin
if oldHook <> 0 then
begin
UnhookWindowshookEx(oldHook);
oldHook := 0;
end; // If
end;
end.
unit Unit3;
interface
uses
Wintypes, WinProcs;
function DisableKeyBoard: Boolean;
procedure EnableKeyBoard;
implementation
var
oldHook: HHOOK;
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
begin
if code < 0 then
KbHook := CallNextHookEx(oldHook, code, wparam, lparam)
else
KbHook := 1;
end;
function DisableKeyBoard: Boolean;
begin
oldHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HINSTANCe, 0);
Result := oldHook <> 0;
end;
procedure EnableKeyBoard;
begin
if oldHook <> 0 then
begin
UnhookWindowsHookEx(oldHook);
oldHook := 0;
end;
end;
end.
WH_KEYBOARD_LL = 13;
......
SetWindowsHookEx(WH_KEYBOARD_LL, @KbHook, HINSTANCe, 0);
对于一般的系统键都能够屏蔽,如果要屏蔽ctrl+alt+del则需要单独处理