Delphi - SwitchDesktop

Delphi - SwitchDesktop

 {
  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.

 

2012-01-26T23:14:51 +0100, mail[at]michael[Bindestrich]puff.de