2012-03-31 5 views
0

私のアプリケーションがクラッシュしているかどうかを確認するプログラムを使用します。"権利"問題.Net Process.Start()でWindowsの別のプログラムからプログラムを起動するとき

var processInfo = new ProcessStartInfo("myfile.bat") 
           {CreateNoWindow = true, UseShellExecute = false}; 
     processInfo.Verb = "runas"; 
     var process1 = Process.Start(processInfo); 
     process1.WaitForExit(); 
     process1.Close(); 
:アプリケーションAがBに

から開始されたときの主な問題は、始めるA.

と呼ばれています主なアプリケーションは、このコードを実行する「権利」の問題があるようだながらのは、このアプリケーションBを呼ぶことにしましょう

私はWin XPと7でこの問題を抱えています。結果を出さずに "管理者として実行"してアプリケーションBを実行しようとしました。

アプリケーションBを使わずにプログラムを起動すると、問題なく動作します。

+0

権利問題について詳しく説明できますか?何が実際に間違っていますか? –

+0

プログラムがbatファイルを起動しないことが起こります。 – user1107078

+0

上記のコードは、プロセスBまたはプロセスAのコードですか?質問はプロセスBから来ていることを暗示していますが、Steveの答えに対するあなたのコメントは、それがプロセスAのものであることを意味しています。 –

答えて

2

UseShellExecute = trueに設定してください。

「バット」ファイルが実行可能ファイルに該当するかどうかわかりません。
そして、UseShellExecuteがfalseの場合、実行可能ファイルのみを起動できるとの報告があります。

+0

しかし、私は自分で「ダブルクリック」するとプログラムAで問題なく動作します。 – user1107078

+0

+1。バッチファイルはその意味では実行可能ファイルではありません。 @ user1107078、エクスプローラでファイルをダブルクリックすると、UseShellExecuteをtrueに設定してProcess.Startと同じように動作します。 –

関連する問題