2

サードパーティ アプリの .ini ファイルを変更するアプリケーションを作成したので、エンタープライズ レベルのユーザーは、インストールしたさまざまな環境にアクセスできます。Windows XP を使用している間、これは問題なく機能しました。私は最近、アプリケーションをより Windows 7 に適したものにすることに着手し、c:\users\public でサード パーティ アプリの .ini ファイルを探しました。

サード パーティのアプリがインストールされ、正しく機能していますが、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 に答える