1

我在从 c# 中的方法运行 slui.exe 时遇到问题。我正在使用代码:

ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Windows\System32\slui.exe"); Process p = new Process(); p.StartInfo = startInfo; p.Start(); p.WaitForExit();

但我不断收到 Win32Exception:“系统找不到指定的文件”。

如果我将 ProcessStartInfo 更改为: (@"C:\Windows\System32\cmd.exe") 它将启动得很好。

在这种情况下运行 slui.exe 是否有问题?

我确定该文件位于指定的目录中,所以我很难理解这里可能出了什么问题。

任何想法如何从 ac# 方法调用 slui.exe?

4

1 回答 1

2

Slui.exe 仅作为 Windows x64 上的 64 位程序提供。当您作为 32 位进程运行时,您的硬编码路径 c:\windows\system32 将被重定向到 c:\windows\syswow64。因此找不到该文件。

Project + Properties,Compile 选项卡,将 Platform target 设置更改为“AnyCPU”。重复发布配置。并使用 Environment.GetFolderPath() 确保它在 Windows 未安装到 c:\windows 时仍然有效。

于 2012-05-15T23:07:33.943 回答