2

我们创建了一个应用程序来更改 .ini 文件的 3rd 方应用程序,因此企业级用户可以访问我们安装的各种环境。在使用 Windows XP 时,这对我们来说效果很好。我最近着手使应用程序对 Windows 7 更友好,并在 c:\users\public 下查找第 3 方应用程序 .ini 文件。

3rd 方应用程序已安装并正常运行,但是当我们从 Windows 7 机器运行以下代码时,它抱怨它找不到它的 .ini 文件。

 manager.EnableRaisingEvents = true;
 manager.StartInfo.FileName = iniChange.getBinPath() + "\\eimngr.exe";
 manager.Start();
 appOpen++;
 magOpen++;

我想知道我们是否错过了设置 StartInfo 或 Process 的某些属性。

4

1 回答 1

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();
于 2012-10-09T20:19:03.250 回答