Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Externes Programm oder Anwendung in Taskleiste unsichtbar? (https://www.delphipraxis.net/133005-externes-programm-oder-anwendung-taskleiste-unsichtbar.html)

lima 23. Apr 2009 18:12


Externes Programm oder Anwendung in Taskleiste unsichtbar?
 
Wie kann man eine bestimmte exe-Datei in den Hintergrund schieben, ohne das ein Taskbar-Symbol erscheint?

Also im Klartext will ich ein kleines Programm, mit dem ich wiederum ein anderes Programm in den Hintergrund schiebe ohne daß ein Taskbar-Symbol angezeigt wird. Im Taskmanager kann es auftauchen.

Achja und ich will, daß es auch wieder mit hilfe des kleinen Programmes sichtbar gemacht werden kann.

Wär schön wenn da jemand helfen könnte.

jaenicke 23. Apr 2009 18:31

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Das geht mit SetWindowLong und WS_EX_APPWINDOW.

// EDIT:
Crosslink:
http://www.delphi-forum.de/viewtopic.php?p=559429

lima 23. Apr 2009 18:38

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Ich hatte sowas, aber det funktioniert nich.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(0,
               Nil,
               PChar('Datei.exe'),
               Pchar(''),
               Pchar(''),
               SW_NORMAL);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecute(0,
               Nil,
               PChar('Datei.exe'),
               Pchar(''),
               Pchar(''),
               SW_HIDE);
end;
end.

jaenicke 23. Apr 2009 18:40

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Nimm CreateProcess oder ShellExecuteEx, dann bekommst du auch ein Handle, mit dem du etwas mit dem gestarteten Programm machen kannst. So kannst du dessen Fenster mit EnumChildWindows durchsuchen und wo WS_EX_APPWINDOW gesetzt ist, dieses Flag entfernen oder wieder setzen. Dadurch schaltest du den Taskleisteneintrag um.

lima 23. Apr 2009 18:56

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Zitat:

Zitat von jaenicke
Nimm CreateProcess oder ShellExecuteEx, dann bekommst du auch ein Handle, mit dem du etwas mit dem gestarteten Programm machen kannst. So kannst du dessen Fenster mit EnumChildWindows durchsuchen und wo WS_EX_APPWINDOW gesetzt ist, dieses Flag entfernen oder wieder setzen. Dadurch schaltest du den Taskleisteneintrag um.

Danke erstmal für Deine Infos.

Könntest Du mir das vielleicht irgendwie als Beispiel geben wie ich das im Code umsetzen könnte?

jaenicke 23. Apr 2009 18:59

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Zum enumerieren der Fenster:
http://www.swissdelphicenter.ch/torr...ode.php?id=410
Zu CreateProcess:
http://www.delphipraxis.net/viewtopi...=createprocess

lbccaleb 23. Apr 2009 19:00

Re: Externes Programm oder Anwendung in Taskleiste unsichtba
 
Also MSDN-Library durchsuchenShellExecuteEx findest du in der MSDN


Und zu dem ein und ausblenden in der Taskbar kannst du diesen Code verwenden!


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf