Laden...

Process

Erstellt von schaedld vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.203 Views
schaedld Themenstarter:in
1.433 Beiträge seit 2006
vor 17 Jahren
Process

Hallo Leute
Ich weiss das Process etc. in diesem Forum schon viel gefragt wurden, diese Beitrage habe ich auch gelesen.

Mein Problem. Ich möchte sqlplus aufrufen, welches mir ein SQL-File ausführt. Dann muss ein zweites ausgeführt werden, nach dem das erste fertig ist. Es läuft alles im CMD ab. Nun meine Frage wie kann ich dass am besten abfangen?

Process.ExitCode ist ja 0 wenn er rausgeht...

Danke für die Hilfe.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

schaedld Themenstarter:in
1.433 Beiträge seit 2006
vor 17 Jahren

            Process proc1 = new Process();
            proc1.StartInfo.FileName ="mspaint.exe";
            proc1.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
            proc1.StartInfo.Arguments = "D:\\DATA\\Users\\schaedlerd\\_Diverses\\e3mural-1600x.jpg";
            proc1.Start();            

            Process proc12= new Process();
            proc12.StartInfo.FileName ="ShowTime.exe";
            proc12.StartInfo.Arguments = "D:\\DATA\\Videos\\Eurovision\\treble_amambanda.vob";

            bool f = proc1.HasExited;
            proc1.WaitForExit();

            if (f != true)
            {
                proc12.Start();
            }

Schlüsselwort ist WaitforExit() oder? Dann wird er warten bis sich der Process selber beendet oder beendet wird, wenn ich dass richtig verstanden habe...

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
WaitForExit() ist genau richtig, der Thread bleibt an dieser Stelle bis proc1 beendet ist. Dieses Stück Code hier vertehe ich aber nicht:

bool f = proc1.HasExited;
proc1.WaitForExit();
if (f != true)
{
  proc12.Start();
}

Du pufferst in der Bool-Variablen ob der Prozess bereits beendet ist, wartest unabhängig davon auf das Beenden desselben, und nur wenn proc1 vor dem WaitForExit() noch am laufen ist, wird proc12 ausgeführt. Hat das irgendwelche speziellen Gründe oder wolltest du sowas?

if(!proc1.HasExited)
{
  proc1.WaitForExit();
}
proc12.Start();

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca