上記のスクリーンショットのように、C#コードでパラメータを指定してexeを実行する必要があります。Cで複数のパラメータを使用してcmdでexeを実行する方法
それは
C:\Users\singha33\Desktop\1111>TaskFileSigner.exe
TaskFile="C:\Users\singha33\Desktop\1111\ApplyingSecurity.eTask.xml"
ProcessFile="C:\Users\singha33\Desktop\1111\Firefox_Setup_Stub_46.0.1.exe"
GenKey="Y" Singner="Ak"
のように私は
System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
proc.FileName = "C:\\Users\\singha33\\Desktop\\1111\\TaskFileSigner.exe";
string temp = "C:\\Users\\singha33\\Desktop\\1111\\ApplyingSecurity.eTask.xml";
string argument1 = "TaskFile=" + '"' + temp + '"';
string argument2 = "ProcessFile =" + '"' + "C:\\Users\\singha33\\Desktop\\1111\\Firefox_Setup_Stub_46.0.1.exe" + '"';
string argument3 = "GenKey =" + '"' + "Y" + '"';
string argument4 = "Signer =" + '"' + "Aksh" + '"';
proc.Arguments = String.Format("{0} {1} {2} {3}", argument1, argument2, argument3, argument4);
//proc.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
System.Diagnostics.Process.Start(proc);
を試してみました。しかし、それは動作していないに見えます。私はこの種の仕事には非常に慣れていて、どのように進めていくのかという手がかりはありません。私は、議論を適切に、あるいは他の何かを渡していないかもしれません。
助けがあれば助かります。
私は同様の質問をスタックで検索し、役に立つトピックを見つけましたが、うまくいかなかった。私は引数が適切な形式になっていないと思いますが、正しくフォーマットする方法はわかりません。
一つの観察:私は例外
を取得しています「Processオブジェクトは、環境変数を使用するためにはfalseにあるUseShellExecuteプロパティを設定する必要があります。」
私がプロセス開始関数 "System.Diagnostics.Process.Start(proc);"をデバッグして待機するとき。私が待たずにF5を押すだけで例外はありませんが、操作がうまくいくわけでもありません。
あなたが 'UseShellExecute'を設定してみてくださいでした偽ですか? –
どのようなエラーがありましたか?あなたは 'proc.Arguments'を印刷して見えましたか? – nvoigt
この行の後にブレークポイントを置き、QuickWatchに何が表示されているか確認してください。 'proc.Arguments = String.Format' – MethodMan