Hallo,
ich versuche eine Anwendung zu erstellen, bei der der Anwender mit mehreren Desktops arbeiten kann und zwischen diesen hin und her wechseln kann.
Ich verwende folgenden Code: (auch aus diesem Forum)
procedure TForm1.FlipDesktop;
var
AlterDesk : HDESK;
NeuerDesk : HDESK;
i :integer;
typ:integer;
begin
AlterDesk := GetThreadDesktop(GetCurrentThreadID);
NeuerDesk := CreateDesktop(PChar('Foobar'), nil, nil, 0, DESKTOP_CREATEWINDOW or
DESKTOP_SWITCHDESKTOP or DESKTOP_CREATEMENU or DESKTOP_WRITEOBJECTS , nil);
if NeuerDesk <> 0 then
begin
SetThreadDesktop(NeuerDesk);
Windows.SwitchDesktop(NeuerDesk);
// Desktop wurde umgeschaltet
// .... zb. Aufruf eines Programmes
// ....
// Desktop wieder zurückschalten
Windows.SwitchDesktop(AlterDesk);
SetThreadDesktop(AlterDesk);
CloseDesktop(NeuerDesk);
// Der alte Desktop wird angezeigt
end;
//
end;
Ein neuer Desktop wird erstellt und auch umgeschaltet und angezeigt (Maus ist zu sehen).
Wenn ich nun ein Programm öffne, wird dieses jedoch auf dem altem verstecktem Desktop geöffnet.
Wie lade ich nun auf dem neuen Desktop eine Arbeitsumgebung mit Explorer und Verknüpfungen?
Danke im voraus
ich versuche eine Anwendung zu erstellen, bei der der Anwender mit mehreren Desktops arbeiten kann und zwischen diesen hin und her wechseln kann.
Ich verwende folgenden Code: (auch aus diesem Forum)
procedure TForm1.FlipDesktop;
var
AlterDesk : HDESK;
NeuerDesk : HDESK;
i :integer;
typ:integer;
begin
AlterDesk := GetThreadDesktop(GetCurrentThreadID);
NeuerDesk := CreateDesktop(PChar('Foobar'), nil, nil, 0, DESKTOP_CREATEWINDOW or
DESKTOP_SWITCHDESKTOP or DESKTOP_CREATEMENU or DESKTOP_WRITEOBJECTS , nil);
if NeuerDesk <> 0 then
begin
SetThreadDesktop(NeuerDesk);
Windows.SwitchDesktop(NeuerDesk);
// Desktop wurde umgeschaltet
// .... zb. Aufruf eines Programmes
// ....
// Desktop wieder zurückschalten
Windows.SwitchDesktop(AlterDesk);
SetThreadDesktop(AlterDesk);
CloseDesktop(NeuerDesk);
// Der alte Desktop wird angezeigt
end;
//
end;
Ein neuer Desktop wird erstellt und auch umgeschaltet und angezeigt (Maus ist zu sehen).
Wenn ich nun ein Programm öffne, wird dieses jedoch auf dem altem verstecktem Desktop geöffnet.
Wie lade ich nun auf dem neuen Desktop eine Arbeitsumgebung mit Explorer und Verknüpfungen?
Danke im voraus
Comment