Die Idee mit WMI hat was, weil da kann ich ja mit einer Query draufgehen ("liste mir alle Wordprozesse auf") - und an sich k�nnte man ja �ber den "Erzeuger-Prozess" rauskriegen, was denn jetzt der neueste ist, den ich gerade angelegt habe.

Chris

At 03:14 PM 1/4/2004, you wrote:
Hast du es schon mit WMI probiert? Das hat bei mir eigentlich immer gut
funktioniert. Win32_Prozess liefert auch mehr infos als die Processklasse
uas System.Diagnostics.

lG
Peter

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Helge Lenuweit
> Sent: Sunday, January 04, 2004 12:49 PM
> To: [EMAIL PROTECTED]
> Subject: [CSharp.net] Prozesse �berwachen
>
> Hallo Liste,
>
> ich m�chte gern externe Anwendungen starten und mitbekommen,
> wenn sie beendet werden. Ich dachte dabei an
> System.Diagnostics.Process und wollte die Zuordnung �ber die
> ProcessID herstellen, also z.B. so:
>             Process prDoc = new Process();
>             prDoc.StartInfo.UseShellExecute = true;
>             prDoc.StartInfo.FileName = strFullPathFileName;   // z.B.
> "C:\\Testdok.doc" oder "C:\\Testtxt.txt"
>             prDoc.Start();
>
> und dann int ProcessID = prDoc.Id;
>
> Leider klappt das so nicht immer, denn in der letzten Zeile
> bekomme ich bei MS-Office-Applikationen eine
> InvalidOperationException zur�ck, die eigentlich lt. Doku nur
> dann auftreten darf, wenn der Prozess nicht gestartet wurde.
> Bei Notepad funktioniert es hingegen einwandfrei.
>
> Laut einer verwegenen MSDN-Seite (hab den Link jetzt nicht
> zur Hand) haben die Office-Programme eine Besonderheit beim
> Eintrag ihres Prozesses in die Prozesstabelle der
> ausf�hrenden Maschine. Auf der bewu�ten Seite, die aber das
> Word-Objektmodell zur�ckliefern soll, werden Tricks �belster
> Sorte (20x versuchen, dazwischen Sleeps von je
> 1/2 Sekunde, Fokuswechsel auf die eigene Anwendung)
> verwendet, deren Einsatz ich nach M�glichkeit vermeiden will.
> Gibt es eine zuverl�ssige Methode, einen Prozess zu starten
> und die Prozessid zur�ckzugeben (oder eine andere eindeutige
> Referenz auf den laufenden Proze�)?
>
> Ich will dabei nach M�glichkeit nicht mit dem Exited-Ereignis
> arbeiten, weil meine Anwendung u.U. zwischendurch beendet
> wird (ich schreibe Temp-Dateien mit der Proze�information).
>
> Gru�, Helge

_______________________________________________ CSharp.net mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/csharp.net

Antwort per Email an