Programowanie w języku Delphi » FAQ

Jak zablokować mysz i klawiatur na określony czas

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;
 
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 for 10 Secounds
   xBlockInput (False); // Enable  Keyboard & mouse
  end;
end;

5 komentarzy

Mammoth 2008-04-07 22:16

Skoro funkcja pochodzi z USER32.DLL to czy nie lepiej jest ją statycznie zlinkować. Przecież User32.dll jest (na ogół) wymagane by uruchomić nasz exe ??

brodny 2004-08-01 18:39

Może sie mylę, ale chyba po wywołaniu LoadLibrary() powinno być FreeLibrary() (pomijając sytuację, gdzie ładowanie nie powiodło się, tzn. uchwyt = 0)?

Wolverine 2004-07-28 16:43

I po co to, mogles dac wskazowke jak zablokowac inputy, chociaz i to nie jest nikomu potrzebne.

spin 2004-07-29 17:03

może sie komuś z początkujących przyda...

sablik 2004-07-30 06:16

Każdy czasem coś szuka, a jak jest kod to łatwiej