我正在制作一个程序,当单击按钮时启动程序。它似乎适用于 Chrome 或 Word 等程序,但不适用于 fraps 等较小的程序,并给了我错误
System.dll 中发生类型为“System.ComponentModel.Win32Exception”的未处理异常附加信息:系统找不到指定的文件
private void Fraps_Click(object sender, EventArgs e)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "fraps.exe";
Process.Start(startInfo);
}
Windows 不知道“fraps.exe”是什么,并且它无法在被告知要搜索的文件夹中找到这样的可执行文件。
我们来验证一下。打开命令提示符并输入“fraps.exe”。当前目录在哪里并不重要;主文件夹应该很好。
只要您尚未将 fraps 安装到您的主文件夹中,您就应该看到以下内容。现在,为什么这适用于“chrome.exe”(大概不是我的系统上的情况)而不适用于 fraps?
在幕后,当您键入命令时,Windows 被告知要查找多个文件夹。如果您输入,您可以看到完整的列表SET
进入提示符,然后搜索PATH
.
这有点乱,但 Windows 将在其中查找您想要的程序after在当前目录中查找。
在这种情况下,Windows 在当前目录(您的目录)中找不到“fraps.exe”bin\Debug
文件夹)或 PATH 中的任何文件夹。所以它举起双手说The system cannot find the file specified
.
您有两种选择来解决此问题:
One: 使用完整路径名。如果您知道 fraps 的安装位置,则可以使用可执行文件的完整路径名,例如:
startInfo.FileName = @"c:\Program Files\Fraps\fraps.exe";
Two: 将fraps安装文件夹添加到PATH环境变量。这更加棘手和复杂,但您或多或少将安装的路径附加到 PATH 变量中。您可以执行此操作,也可以依赖最终用户执行此操作(尽管这对我来说听起来不是一个好主意)。
这两个选项都要求您知道wherefraps 已安装,因此最好对值进行硬编码(如果该程序仅供您自己使用)或在启动/安装程序时询问用户安装路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)