// Hiermit kann man Tastatur und Maus für eine vorgegebene Zeit
// außer Betrieb setzen. Über
Weiterlaufen steuert man, ob das
// Programm in der Zwischenzeit weiterläuft oder steht.

// Getestet mit D4 unter WinME

var 
  ll: THandle; 
  Sperre: function(b: bool): bool; stdcall; 
 
function Laden(var p: Pointer): boolean; 
const udll = 'USER32.DLL'; 
var h: THandle; 
begin 
  p := nil; 
  result := false; 
  ll := LoadLibrary(udll); 
  if ll <> 0 then begin 
    h := GetModuleHandle(udll); 
    if h <> 0 then begin 
      p := GetProcAddress(h, 'BlockInput'); 
      result := p <> nil; 
    end; 
  end; 
end; 
 
function Blockieren(millisekunden: word; freigeben: boolean): boolean; 
var zeit: longword; 
begin 
  result := Laden(@Sperre); 
  if result then begin 
    Sperre(True); 
    zeit := gettickcount + millisekunden; 
    repeat 
      if freigeben then application.processmessages; 
    until gettickcount >= zeit; 
    Sperre(False); 
  end; 
  if ll <> 0 then FreeLibrary(ll) 
end; 
 
 
// Beispielaufruf 
 
procedure TForm1.Button1Click(Sender: TObject); 
const 
  Sperrzeit = 4000; 
  Weiterlaufen = true; 
begin 
  if not blockieren(Sperrzeit, Weiterlaufen) then showmessage('Fehler'); 
end; 




Zugriffe seit 6.9.2001 auf Delphi-Ecke