我在理解为什么我的C#process.start不起作用时遇到了一些麻烦。代码如下所示,我已经验证msg.exe位于C:\ Windows \ System32 \文件夹中。我可以很好地使用批处理文件中的命令,也可以从命令行使用。由于某种原因,我不能让它在我的C#代码中工作。我确实添加了“使用System.Diagnostics”,这是Windows 10 Pro。错误是“系统找不到指定的文件”。任何帮助都会很棒。谢谢!
private void btnSend_Click(object sender, EventArgs e)
{
string mypath = @"C:\Windows\System32\";
Process.Start(@mypath + "msg.exe " + " * /time:20 hello there");
}
我也使用了它,但它也没有用:
private void btnSend_Click(object sender, EventArgs e)
{
Process.Start(@"C:\Windows\System32\msg.exe * /time:20 hello there");
}
答案 0 :(得分:2)
问题是您的文件请求正在重定向,因为您尝试从32位应用程序打开64位路径。
你要求:
C:\Windows\System32\msg.exe
Windows实际上是在搜索这个:
C:\Windows\SysWOW64\msg.exe
相反,要确保在System32
下查找文件,您需要使用的是:
private void btnSend_Click(object sender, EventArgs e)
{
Process.Start(@"C:\Windows\Sysnative\msg.exe", "* /time:20 hello there");
}