1

ユーザーが GUI を使用した後、別のアプリケーションをトリガーする必要があります。別のアプリケーションをトリガーするには、コマンド ライン引数を渡してそのアプリケーションを開始する必要があります。以下の引数を渡す必要があるとしましょう:

c:\Program File\application.exe -name テキスト -cmdfile c:\text\open.txt

application.exe は、別のアプリケーションに渡したいパラメーターです。

以前、そのアプリケーションはVisual Studio ->プロパティ->デバッグでこれらの引数を " c:\Program File\application.exe" -name text -cmdfile c:\text\open.txt として設定しました

私が理解しているように、上記の文字列のすべてのスペースは、二重引用符内のスペースを除いて引数と見なされるため、「c:\Program File\application.exe」が最初の引数、-nameが 2 番目、textが 3 番目の引数です。ただし、ProcessStartInfo.Argumentプロパティを使用している場合、 "c:\Program File\application.exe" -name text -cmdfile c:\text\open.txtを設定すると、まずエラーが発生し、文字列の末尾に二重引用符を追加すると、別のアプリケーションはc:\Programを最初の引数、File\application.exeを 2 番目の引数と見なします。

引数の区切りとしてスペースを避けるにはどうすればよいですか? Visual Studio -> Properties -> Debug as " c:\Program File\application.exe" -name text -cmdfile c:\text\open.txt using ProcessStartInfo.Argumentで文字列全体を同じフォーマット設定として渡すにはどうすればよいですか財産?

ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.Arguments = "c:\Program File\application.exe" -name text -cmdfile c:\text\open.txt

(エラー)

もしも

startInfo.Arguments = "c:\Program File\application.exe -name text -cmdfile c:\text\open.txt"

最初の引数としてc:\Program 、2 番目の引数としてFile\application.exeを取ります。

どうすればこれを理解できますか?その経験はありますか?前もって感謝します。

4

1 に答える 1

2

あなたの質問は少し不明確です。を開始しapplication.exeますか、それともパラメータとして渡しますか?

開始する場合は、次を使用できます。

var startInfo = new ProcessStartInfo(@"c:\Program File\application.exe");
startInfo.Arguments = @"-name text -cmdfile c:\text\open.txt";
Process.Start(startInfo);

application.exe別のプロセスを開始しようとしていて、他のパラメーターとともにパラメーターとして渡したい場合は、次を試してください。

var startInfo = new ProcessStartInfo("application2.exe");
startInfo.Arguments = @"""c:\Program File\application.exe"" -name text -cmdfile c:\text\open.txt";
Process.Start(startInfo);
于 2013-02-06T20:04:13.120 に答える