ヘルプファイルを複数回開かないようにしています。これは私が使用している方法です:
public void openHelp()
{
int count = 0;
string helpPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\MyApp\Help\eHelp.chm";
System.Diagnostics.Process[] helpProcs = System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process proc in helpProcs)
{
if (proc.MainWindowTitle == "Sample App Help")
{
count++;
}
}
if (count == 0)
{
System.Diagnostics.Process.Start(helpPath);
}
else
{
}
}
同じMainWindowTitleでプロセスを見つけた場合は、新しいプロセスを開始しないでください。ただし、これは信頼できません。場合によっては、すでに実行されていても、プロセスを開始します。ロジックに問題はありますか?
ありがとうございました。
PSもちろん、MainWindowTitleは「サンプルアプリヘルプ」です。少なくとも、デバッグ中に表示されるものです。
更新:問題は、ユーザーがヘルプファイルを最小化した場合にのみ発生します。したがって、システムで何かが発生しているのではないかと思い、何かをチェックする必要があります。助言がありますか?