Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prozess- Ende (CreateProcess) (https://www.delphipraxis.net/507-prozess-ende-createprocess.html)

Gast 2. Aug 2002 10:19


Prozess- Ende (CreateProcess)
 
Hallo Systemprofis, :P

ich arbeite schon wieder an meinem Installations-Programm... Eure Tipps bezüglich Neu-Start des Computers bzw. bezüglich Registry Einträge... haben mir sehr geholfen das Ganze logisch anzusteuern... :idea:

Jetzt aber weiß ich nicht weiter... :oops:

Ich starte so (während der Installation) ein Prozess (ist aus einem Delphi-Buch):

[code:1:e992efed08]
procedure TfrmMain.InstallODBC;
var

Christian Seehase 2. Aug 2002 10:34

Moin Paul jr.

kommst das Programm überhaupt in der WaitForSingleObject Zeile an?

Das Problem bei vielen Setups ist, dass sie nichts anderes tun, als nur einen anderen Prozess zu starten, der dann die eigentliche Installation ausführt, und sich sofort wieder beenden.
In diesem Falle würde es, naheliegender Weise, herzlich wenig nutzen auf das Ende des Prozesses zu warten.
Dies trifft eigentlich immer auf Installationen zu, die auf Install Shield basieren.

Gast 2. Aug 2002 11:01

Hallo Christian 8)

danke...

(...)
kommst das Programm überhaupt in der WaitForSingleObject Zeile an?
(...)

Die Antwort ist: JA

ABER eine Sache habe hier noch übersehen... mein Prozess bekommt kein Windows- Fenster... er läuft unsichtbar ab... Vielleicht starte ich in daher falsch?


Gruß

Paul Jr.

Christian Seehase 2. Aug 2002 11:22

Moin Paul jr.,

Zitat:

mein Prozess bekommt kein Windows- Fenster... er läuft unsichtbar ab
das kommt daher, dass die StartupInfo gelöscht, und dann nur das Feld cb mit der Länge von StartupInfo gefüllt wird. Dadurch bekommt wShowWindow den Wert 0, was SW_HIDE entspricht.

Code:
  StartupInfo.cb := Sizeof(TStartupInfo);
  // Die folgende Zeile noch hinzfügen, dann wird auch was angezeigt
  [b]StartupInfo.wShowWindow := SW_NORMAL;[/b]
Das das Programm in der WaitForSingleObject Zeile ankommt, aber nicht in der CloseHandle, könnte an dem Wert INFINITE liegen.
Trag' doch einfach mal, zum Testen, statt INFINITE eine Wartezeit ein (Wert in Millisekunden).
Wie lange das Setup ungefähr dauert müsstest Du ja ermitteln können.

Handelt es sich um ein InstallShield Setup?

Gast 2. Aug 2002 11:43

Hallo Chris, 8)

(...)
Handelt es sich um ein InstallShield Setup?
(...)

Nein, ich starte von meinem Installations- Programm her zwischendurch ein anderer Installations-Programm (MSD von SQL-Server) die ein SQL-Server bzw. Teile davon (MSD) installiert...

Ich habe geschrieben, dass eben dieses Prozess (für SQL-Server-Installation) das ich starte unsichtbar abläuft... WEIL dieses Prozess tatsächlich unsichtbar ist (und sollte auch so bleiben). Darum auch die Zeile:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.

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