Zitat von
Luckie:
Das liegt daran, dass die Taskleiste als Appbar registriert ist und somit den Arbeitsbereich des Desktops entsprechend verkleinert. Soll sich das Programm über den ganzen Bildschirm maximieren, musst du den Workspace entsprechend anpassen. Natürlich muss du ihn wieder zurücksetzen.
Aber was ist das:
Delphi-Quellcode:
repeat
Handle := FindWindow('
Shell_TrayWnd',
nil);
Sleep(200);
until Handle <> 0;
Entweder wird das Fenster gefunden oder nicht. Wozu die Schleife?
Upps, ja ich habs im Moment mit den Schleifen...Ziel der Angelegenheit hier ist das Starten und verwalten externer Anwendung aus meiner heraus. Lol, hast Recht, die Taskbar ist ja schon da im Gegensatz zu den ext. Anwendungen.
Nochmal zum Workspace....hilf mir mal auf die Sprünge....ich habe folgendes:
Delphi-Quellcode:
procedure TForm1.SetWorkArea;
var w:TRect;
begin
// Aktuellen Zustand auslesen
SystemParametersInfo(SPI_GetWorkArea, 0, Pointer( @MerkScreen), 0);
ShowTaskBar(false);//Taskleiste verstecken
SetWindowPos(Form1.Handle,HWND_TOPMOST,0, 0, 0, 0,SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
w := MerkScreen;
w.Top := w.top + Height;
// neues WorkArea festlegen
SystemParametersInfo( SPI_SetWorkArea,0,Pointer( @w),0);
MakeWindowOpaque (Form1, Transparenz); //Transparenz an
SetCursorPos(extFloating_X+(extFloating_W div 2),extFloating_Y+(extFloating_H div 2));
end;
procedure TForm1.RestoreWorkArea;
begin
SetWindowPos(Form1.Handle,HWND_NOTOPMOST,0, 0, 0, 0,SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
SystemParametersInfo(SPI_SetWorkArea, 0, Pointer( @RootScreen), 0);
ShowTaskBar(true);
end;
das ist eine alte Appbarsache, die aber nicht zum tragen gekommen ist. Wie kann ich hier den Workspace auf Fullscreen bekommen, nachdem die Taskleiste ausgeblendet ist. Eine Merkfunktion ist zumindest schon vorhanden. Nach "SetWorkArea" würde dann das ext. Programm starten.
Gruß,bluescreen25
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz