Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中执行CMD打开远程桌面#_C#_.net_Winforms - Fatal编程技术网

C# 在C中执行CMD打开远程桌面#

C# 在C中执行CMD打开远程桌面#,c#,.net,winforms,C#,.net,Winforms,因此,我尝试使用按钮打开CMD.exe窗口来执行一个命令,该命令允许我使用网络中的IP自动打开远程桌面。我已经构建了一段代码,但它不起作用。代码如下: private void cmdRemote_Click(object sender, EventArgs e) { System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo

因此,我尝试使用
按钮
打开
CMD.exe
窗口来执行一个命令,该命令允许我使用网络中的IP自动打开远程桌面。我已经构建了一段代码,但它不起作用。代码如下:

private void cmdRemote_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "mstsc /v:" + txtIP.Text;
    process.StartInfo = startInfo;
    process.Start();
}
我想知道它为什么不执行该命令。

在参数列表前面添加“/c”,否则cmd将不执行该命令:

cmd /c mstsc /v:...
或者,你为什么不直接打电话给
mstsc

private void cmdRemote_Click(object sender, EventArgs e)
{
    var process = new System.Diagnostics.Process();
    process.StartInfo = new ProcessStartInfo
    {
        FileName = "mstsc"
        Arguments = "/v:" + txtIP.Text
    }
    process.Start();
}
或更短:

Process.Start("mstsc", "/v:" + this.txtIP.Text);

不要忘记验证
文本的值

您可以调用mstsc,而不是调用cmd.exe

 startInfo.FileName = "mstsc"
 startInfo.Arguments= " /v " + txtIP.Text

为什么要使用参数运行cmd.exe,而不只是运行mstsc?另外,取消隐藏窗口并查看它所说的内容您是否遇到任何类型的错误或它什么也不做?类似于下面的
Process.Start(“cmd.exe”,“mstsc/v:IP”)?如果我使用它,它将打开一个带有调试应用程序路径的
cmd
窗口,并且不会执行任何其他操作@BugFinder@Rekcs正确,因为您没有告诉它,您错误地使用了cmd.exe,如果您刚刚运行mstsc,您可能会获得更大的成功。使用它
Process.Start(“cmd.exe”,“mstsc/v:IP”)?参见编辑。或者使用更短的
Process.Start(“mstsc”,“/v:+txtIP.Text)
Ok,它解决了问题。总之,我不需要调用
“cmd.exe”
,它不起作用。显示一个错误,说明由于未提供文件名,无法初始化进程。