日期:2014-05-18  浏览次数:20911 次

打开帮助文档问题?
制作了一个帮助文档---myhelp.hlp,并设置按F1时打开帮助文档。在多个WinFrom窗体中代码如下:

Help.ShowHelp(this, "myhelp.hlp ");

但是如果多次按F1时,会打开多个帮助文档,如果实现只打开一个帮助文档,如果已有一个帮助文档打开,则显示这个帮助文档。不再打开新的文档。

------解决方案--------------------
判断进程中是否已经打开了该文档
------解决方案--------------------
可设置一个bool型全局变量,第一次按F1时设为true,判断如果是true。。。
------解决方案--------------------
晚天说的那个以进程名称判断的确实不行,因为所有的Hlp文件都是一个进程名称,但是每打开不同的Hlp文件后,进程的主窗口标题会不同,比如我使用了WinRar的帮助做了一个测试,楼主看一下有没有帮助:

private void button1_Click(object sender, EventArgs e)
{
foreach(Process p in Process.GetProcessesByName( "winhlp32 "))
{
if (p.MainWindowTitle == "WinRAR 简体中文帮助 ")
{
return;
}
}
Process proc = new Process();
proc.StartInfo.FileName = "C:\\WINDOWS\\System32\\winhlp32.exe ";
proc.StartInfo.Arguments = "d:\\temp\\WinRAR.hlp ";
proc.Start();
}
------解决方案--------------------
我顶~顶~顶~