Delphi - Erzeugen eines neuen Desktops
{
Author : http://developer.luckie-online.de
Date : 2005-01-08
License : PUBLIC DOMAIN
}
program SwitchDesktop;
{$APPTYPE CONSOLE}
uses
Windows;
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;
begin
BaitAndSwitchDesktop;
end.