block keyboard and mouse input?

Author: isilweo 

0 Comments to this tip [Write new comment]

[ Print tip ]    

 

Tip Rating (19):  

Skill:  

Useful:  

Overall:  

 

 

 

// Import BlockInput function form user32.dll:

// BlockInput Funktion von user32.dll importieren:

 

function BlockInput(fBlockInput: Boolean): DWORD; stdcall; external 'user32.DLL';

 

{block input/ blockieren}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  BlockInput(True);

end;

 

{Unblock input / Blockierung aufheben}

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  BlockInput(False);

end;

 

{

Notes:

 Requires Windows 98/2000 or later.

 You can unblock input by pressing CTRL+ALT+DEL

 If you don't want the user to unblock

 by pressing CTRL+ALT+DEL, additionally write:

 SystemParametersInfo(97,Word(True),@OldValue,0);

 and to undo it:

 SystemParametersInfo(97,Word(False),@OldValue,0);

 (Var OldValue : Longbool)

 

 If you want to unblock your input after pressing button1

 the simple way to do it is use timer

 (just set it for few sec and tell it to unblock input

 after counting down)

 

Bemerkungen:

 Läuft nur unter Windows 98/2000 und

 späteren Versionen.

 Eine Blockierung kann mit CTRL+ALT+DEL aufgehoben werden.

 Um auch CTRL+ALT+DEL zu verhindern, kann zusätzlich noch

 SystemParametersInfo(97,Word(True),@OldValue,0);

 aufgerufen werden und mit

 SystemParametersInfo(97,Word(False),@OldValue,0);

 rückgängig gemacht werden.

 (Var OldValue : Longbool)

 

 Um eine Blockierung automatisch nach einer bestimmten

 Zeit wieder aufzuheben, kann ein Timer eingesetzt werden.

}

 

{***********************************************************}

 

{Function from

 

Babak Sateli

babak_sateli@yahoo.com

www.cdcenterco.com}

 

function FunctionDetect(LibName, FuncName: string; var LibPointer: Pointer): Boolean;

var 

  LibHandle: THandle;

begin

  Result     := False;

  LibPointer := nil;

  if LoadLibrary(PChar(LibName)) = 0 then Exit;

  LibHandle := GetModuleHandle(PChar(LibName));

  if LibHandle <> 0 then

  begin

    LibPointer := GetProcAddress(LibHandle, PChar(FuncName));

    if LibPointer <> nil then Result := True;

  end;

end;

 

// On Button Click Even

 

procedure TForm1.Button1Click(Sender: TObject);

var 

  xBlockInput: function (Block: BOOL): BOOL; stdcall;

  begin

    if FunctionDetect('USER32.DLL', 'BlockInput', @xBlockInput) then

    begin

      xBlockInput(True);  // Disable Keyboard & mouse

      Sleep(10000);         // Wait for 10 Seconds

      xBlockInput(False); // Enable  Keyboard & mouse

    end;

  end;