@CCRDude:
Zitat:
Ich hab mir ne
Unit ( < 400 Zeilen, schon inklusive Code, vom vorigen Desktop einen Screenshot zu erstellen und als neuen ausgegrauten Hintergrund zu verwenden) geschrieben (...)
Vielleicht kannst du dich ja durchringen, uns diese
Unit zur Verfügung zu stellen...
@Günther:
Deiner Anregung folgend habe ich jetzt folgendes eingebaut:
Code:
// --- Routinen zur Installation eines Keyboard-Hooks --------------------------
var
HookHandle: Cardinal = 0;
function LowLevelKeyboardProc(nCode: Integer; wParam: wParam; lParam: lParam): LRESULT; stdcall;
begin
if (nCode < 0) then
Result := CallNextHookEx(HookHandle, nCode, wParam, lParam)
else
Result := 1;
end;
function InstallHook(Hwnd: Cardinal): Boolean; stdcall;
begin
Result := False;
if (HookHandle = 0) then begin
HookHandle := SetWindowsHookEx(13, LowLevelKeyboardProc, 0, 0);
Result := (HookHandle <> 0);
end;
end;
function UninstallHook: Boolean; stdcall;
begin
Result := UnhookWindowsHookEx(HookHandle);
HookHandle := 0;
end;
wobei InstallHook im
FormCreate
und UninstallHook im
FormDestroy
Event ausgeführt wird.
Damit habe ich (fast) alles gesperrt, was mir wichtig war (Die Taskleiste kann der Anwender wegen der vollformatigen, schwarzen Form nicht erreichen).
Aber der gemeine Anwender ist meist sehr erfinderisch; mal sehen, was er sich jetzt einfallen läßt...