1

修正しようとしているコードのスニペットがあります。

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
//p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false; // This line will not create any new window for command prompt.
p.StartInfo.FileName = @"C:\Program Files (x86)\Citrix\System32\dscheck.exe";
p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;
p.Start();
System.Threading.Thread.Sleep(50);
System.Windows.Forms.SendKeys.Send("y");
System.Threading.Thread.Sleep(50);
string s = p.StandardOutput.ReadToEnd();
MessageBox.Show(s); //Shows a Popup of the output from Dscheck
//String s = p.StandardOutput.ReadToEnd();

これが私の問題です:

p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;

を渡そうとしていますtscheck.exe /full /groups /clean {UID}- UIDは に入力されてargTextBoxいますが、機能していません。それは次のとおりp.StartInfo.Arguments = "/full groups /clean"です。argTextBox を受け取り、何も配置しません。

テキストボックス入力を既存の引数に追加する方法はありますか?

4

3 に答える 3

1
p.StartInfo.Arguments = "/full groups /clean " + argTextBox.Text;

テキスト ボックスからテキストを割り当てる代わりに、既存の引数に追加します。

于 2013-04-15T14:53:31.240 に答える
0

前に割り当てられた値を置き換える 2 番目の割り当てで、次の行を置き換えます。

p.StartInfo.Arguments = "/full groups /clean";
p.StartInfo.Arguments = argTextBox.Text;

と:

p.StartInfo.Arguments = String.Format("/full groups /clean {0}", argTextBox.Text);
于 2013-04-15T14:54:14.857 に答える
0

現在の引数パラメーターの最後に追加するだけです(もちろんスペース区切りを使用して)

    p.StartInfo.Arguments = "/full groups /clean " + argTextBox.Text;
    p.Start();
于 2013-04-15T14:53:15.307 に答える