Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Externes Programm beim Starten nicht anzeigen (https://www.delphipraxis.net/122749-externes-programm-beim-starten-nicht-anzeigen.html)

hitzi 21. Okt 2008 14:50


Externes Programm beim Starten nicht anzeigen
 
Hallo,

ich schreibe gerade an einem Servertool, welches das Serverprogramm (externes Programm, nicht von mir) mit ShellExecute startet. Da die komplette Steuerung über das Servertool möglich ist, möchte ich das eigentliche Serverfenster verstecken. Das angezeigte Fenster kann ich ja problemlos mit ShowWindow verstecken, aber trotz aller Versuche poppt das Fenster beim Start mit ShellExecute auf, bis ich es eben mit ShowWindow() verstecke. Ich habe nun schon SW_HIDE im ShellExecute ausprobiert, aber das ändert nichts.

Wie kann ich also eine über mein Programm startende Anwendung davon abbringen, das eigene Fenster anzuzeigen? Wie schon gesagt, nach dem Start ist das kein Problem es sollte aber wenn möglich gar nicht erst aufpoppen.

Vielen Dank schon mal und viele Grüße

MSSSSM 21. Okt 2008 15:49

Re: Externes Programm beim Starten nicht anzeigen
 
Benutz doch CreateProcess
Ich such dir mal ne Erklärung raus.

http://www.delphipraxis.net/viewtopi...=createprocess

hitzi 21. Okt 2008 18:28

Re: Externes Programm beim Starten nicht anzeigen
 
Hmmm ... hab jetzt schon ne ganze Weile mit CreateProcess rumgespielt, aber auch damit erscheint das Fenster des startenden Programmes. Egal ob ich SW_HIDE nutze oder nicht.

Apollonius 21. Okt 2008 18:31

Re: Externes Programm beim Starten nicht anzeigen
 
Zumindest als Notlösung kannst du das Programm auf einem anderen Desktop starten.

hitzi 21. Okt 2008 18:45

Re: Externes Programm beim Starten nicht anzeigen
 
Yup, das hab ich auch grad gelesen. Das Problem wird folgendes sein - ich starte zwar das Programm versteckt, aber das eigentliche Program wird dann selber einen Childprozess(Hauptfenster?) erstellen und auf den hab ich dann erst Einfluss, wenn ich das Windowhandle ermittelt habe. Da wird wirklich nur die Lösung mit dem extra Desktop übrig bleiben.

[EDIT] Die Lösung mit CreateDesktop scheint doch nicht das gelbe vom Ei zu sein. Mein Programm besitzt die Möglichkeit das Serverfenster bei Bedarf wieder anzuzeigen - das würde aber nur funktionieren, wenn man das Programm nach dem Start wieder zurück auf den normalen Desktop holen kann. So viel ich jetzt gelesen habe, kann man aber ein auf einem anderen Desktop gestartetes Programm nicht wieder zurück auf den normalen Desktop holen oder hab ich das falsch verstanden und es besteht doch eine Möglichkeit dazu?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr.

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