2012-03-31 6 views
0

benutze ich ein Programm, um zu sehen, ob meine Anwendung abgestürzt ist und in diesem Fall starte ich es erneut. Lassen Sie uns diese Anwendung B anrufen, während Haupt es"Rechte" Problem Wenn ich Programm von einem anderen Programm in Windows starte mit .Net Process.Start()

A. genannt

Das Hauptproblem beginnen, wenn die Anwendung A von B. gestartet

scheint, gibt es „Rechte“ Probleme diesen Code auszuführen:

var processInfo = new ProcessStartInfo("myfile.bat") 
           {CreateNoWindow = true, UseShellExecute = false}; 
     processInfo.Verb = "runas"; 
     var process1 = Process.Start(processInfo); 
     process1.WaitForExit(); 
     process1.Close(); 

Ich habe dieses Problem auf Win Xp und 7. Ich habe versucht, Anwendung B mit "Execute as Administrator" auch ohne Ergebnis auszuführen.

Es scheint ein Rechteproblem Ursache, wenn ich das Programm ohne Anwendung B starte, funktioniert es ohne Problem.

+0

Können Sie das Rechteproblem genauer beschreiben? Was läuft eigentlich schief? –

+0

Es passiert, dass das Programm die Bat-Datei nicht startet. – user1107078

+0

Ist der obige Code von Prozess B oder Prozess A? Die Frage impliziert, dass es aus Prozess B stammt, aber Ihr Kommentar zu Steves Antwort impliziert, dass es aus Prozess A stammt. –

Antwort

2

Versuchen Sie, UseShellExecute = true festzulegen.

Ich weiß nicht, ob eine 'Fledermaus' Dateien als ausführbar qualifiziert.
Und die Dokumentation besagt, dass nur ausführbare Dateien gestartet werden konnten, wenn UseShellExecute false ist.

+0

Aber wenn ich durch "Doppelklick" das Programm A starte, funktioniert es ohne Probleme mit diesem Code. – user1107078

+0

+1. Batch-Dateien sind definitiv keine ausführbaren Dateien in diesem Sinne. @ user1107078, das Doppelklicken auf eine Datei im Explorer funktioniert genauso wie bei Process.Start mit UseShellExecute auf true. –

Verwandte Themen