BITTE LESEN !
Wer mehr als einen Desktop benutzt, kann mit diesem Code zwischen den beiden Desktop-Screens hin und her schalten. Doch Vorsicht, wer nur einen Desktop benutzt, sollte den Code nicht nutzen, denn sonst droht ein Black Screen, den man nur noch durch den Logon Screen wieder verlassen kann und zu seinem eigentlichen Desktop zurückkommt.
procedure BaitAndSwitchDesktop;
var
OldDesk : HDESK;
NewDesk : HDESK;
begin
OldDesk := GetThreadDesktop(GetCurrentThreadID);
NewDesk := CreateDesktop(PChar('Foobar'), nil, nil, 0, DESKTOP_CREATEWINDOW or
DESKTOP_SWITCHDESKTOP or DESKTOP_CREATEMENU, nil);
if NewDesk <> 0 then
begin
SetThreadDesktop(NewDesk);
Windows.SwitchDesktop(NewDesk);
MessageBox(0, 'Here I am', 'Foobar Desktop', MB_ICONINFORMATION);
Windows.SwitchDesktop(OldDesk);
SetThreadDesktop(OldDesk);
CloseDesktop(NewDesk);
end;
CloseDesktop(OldDesk);
end;
// Desktop Schalter
procedure TForm1.Button1Click(Sender: TObject);
begin
BaitAndSwitchDesktop;
end;
Keine Kommentare:
Kommentar veröffentlichen