我们创建了一个应用程序来更改第三方应用程序的.ini文件,因此企业级用户可以访问我们安装的各种环境。在使用Windows XP时,这对我们来说很好。我最近开始着手使应用程序更友好,并在c:\ users \ public下查找第三方应用程序.ini文件。
第三方应用程序已安装且运行正常,但当我们从Windows 7计算机运行以下代码时,它会抱怨它无法找到其.ini文件。
manager.EnableRaisingEvents = true;
manager.StartInfo.FileName = iniChange.getBinPath() + "\\eimngr.exe";
manager.Start();
appOpen++;
magOpen++;
我想知道我们是否错过了设置StartInfo或Process的一些属性。
答案 0 :(得分:1)
我最好的猜测是目标应用程序找不到INI文件,因为它在内部使用相对路径。 尝试明确设置工作目录:
string targetFilePath = @"c:\folder\another_folder\myapp.exe";
string targetWorkingDirectory = System.IO.Path.GetDirectoryName(targetFilePath);
ProcessStartInfo startInfo = new ProcessStartInfo()
{
WorkingDirectory = targetWorkingDirectory,
FileName = targetFilePath,
};
Process targetProcess = new Process();
targetProcess.StartInfo = startInfo;
targetProcess.EnableRaisingEvents = true;
// ...
targetProcess.Start();