var
Form1: TForm1;
I : Integer;
MainMouseHook, MainKeyboardHook : HHOOK;
implementation
{$R *.dfm}
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.Message = WM_MOUSEMOVE) or (Msg.Message = WM_KEYDOWN) then
UserActive;
Handled := False;
end;
function KeyboardProc(Code: Integer; wParam: WPARAM;
lParam: LPARAM): Longint; stdcall;
begin
Result := 0;
Form1.UserActive;
Result := CallNextHookEx(MainKeyboardHook, Code, wParam, lParam);
end;
function MouseProc(Code: Integer; wParam: WPARAM;
lParam: LPARAM): Longint; stdcall;
begin
Result := 0;
Form1.UserActive;
Result := CallNextHookEx(MainMouseHook, Code, wParam, lParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MainKeyboardHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0);
MainMouseHook := SetWindowsHookEx(WH_MOUSE, @MouseProc, HInstance, 0);
Application.OnMessage := AppMessage;
end;
....
UserActive to procedura ustwiająca opis w Label. Po przesunięciu kursora poz obszar formy znikają wszystkie okna, ikony i pasek zadań. Po chwili część programow uruchamia się ponownie. Co sie dzieje i czemu tak ??