找不到MSG.EXE,但它在那里?

时间:2017-12-26 02:11:21

标签: c# process.start

我在理解为什么我的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");
}

1 个答案:

答案 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");
}