我试图阻止不止一次打开帮助文件。 这是我使用的方法:重复的过程(奇怪的问题)
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,则不会启动一个新的。 但是,这不可靠。在某些情况下,即使已经运行,它仍然会启动该过程。逻辑有问题吗?
谢谢。
P.S.当然,MainWindowTitle是“示例应用程序帮助”,至少这是我在调试时看到的。
更新: 问题只发生在用户最小化帮助文件时。所以我怀疑系统中发生了什么,我需要检查一些东西。有什么建议么?
您是指CHM帮助文件? – rro
他是。它在helpPath中。 – gaynorvader
是的,正是我在做什么。当然,我不能通过进程名称“hh”(出现在进程中的帮助文件中)进行过滤,因为用户在尝试打开我的文件时可能正在查看不同的帮助文件。 – Alex