下面是我做的打开与关闭帮助的代码: //打开帮助
if findwindow(nil,pchar('系统帮助'))=0 then
shellExecute(handle,'open',pchar(HelpPath),nil,nil,sw_shownormal); //关闭帮助
HHelp:=FindWindow(nil,'系统帮助');
if HHelp<>0 then
SendMessage(HHelp,WM_Close,0,0);
我是利用帮助的标题来判断帮助文件是否已打开.
我认为这样不太好,因为如果别的程序帮助文件有同样地标题,
我的帮助文件不会被打开,关闭同样也会误把别的帮助文件关闭!我看了一下一些常用的软件,并不是这样判断的(如ACDsee,等).
而且当他们(如ACDsee,等)的帮助已打开,再按F1将会将帮助文件激活为当前窗口.
这是怎么做得?
if findwindow(nil,pchar('系统帮助'))=0 then
shellExecute(handle,'open',pchar(HelpPath),nil,nil,sw_shownormal); //关闭帮助
HHelp:=FindWindow(nil,'系统帮助');
if HHelp<>0 then
SendMessage(HHelp,WM_Close,0,0);
我是利用帮助的标题来判断帮助文件是否已打开.
我认为这样不太好,因为如果别的程序帮助文件有同样地标题,
我的帮助文件不会被打开,关闭同样也会误把别的帮助文件关闭!我看了一下一些常用的软件,并不是这样判断的(如ACDsee,等).
而且当他们(如ACDsee,等)的帮助已打开,再按F1将会将帮助文件激活为当前窗口.
这是怎么做得?
解决方案 »
- sql,各位大侠来看一下,,请大家帮忙!问题解决,发分!
- DLL和EXE之间怎样传递记录数组
- 如何实现我点击一个按钮,然他执行toolbar上一个按钮的click事件?
- 关于TDBLookupComboBox
- 我想问下怎样判断一个字符串是否为数字类型?
- StringReplace 的Flags: TReplaceFlags
- 有那位用过DOA与ODAC,能否比较一下?我不想耗太多时间在选择上面。
- 请问:怎样才能从数据库中取出N天之内的数据?分很好拿吧!
- 跪求好心人告诉我一下DBListBox的作用
- 如何向打开的指定Dos窗口发送Ctrl+C信息?
- “无法定位程序输入点.....于动态链接库rtl60.bpl上
- 超级市场pos机系统软件!
OldWindowProc:Pointer;
MyMsg:DWord;function NewWindowProc(WindowHandle:hWnd;TheMessage:LongInt;ParamW:LongInt;ParamL:LongInt):LongInt stdcall;
begin
if TheMessage=WM_MyMsg then begin
//这里加入你的代码
end;
result:=CallWindowProc(OldWindowProc,
WindowHandle,
TheMessage,
ParamW,
ParamL);
end;
//打开帮助后加入:
if findwindow(nil,pchar('系统帮助'))=0 then
shellExecute(handle,'open',pchar(HelpPath),nil,nil,sw_shownormal);
MyMsg:=RegisterWindowMessage('系统帮助');
OldWindowProc:=Pointer(SetWindowLong(findwindow(nil,pchar('系统帮助')),GWL_WNDPROC,LongInt(@NewWindowProc)));//关闭帮助是使用:
SendMessage(findwindow(nil,pchar('系统帮助')),WM_MyMsg,0,0);//FormDestroy加入:
SetWindowLong(findwindow(nil,pchar('系统帮助')),GWL_WNDPROC,LongInt(OldWindowProc));
OldWindowProc:=Pointer(SetWindowLong(findwindow(nil,pchar('系统帮助')),GWL_WNDPROC,LongInt(@NewWindowProc)));
"//打开帮助后加入:
if findwindow(nil,pchar('系统帮助'))=0 then"如果别的程序帮助文件有同样地标题,那么是不是还是打不开?
{
HtmlHelp(NULL, AnsiString(Application->HelpFile).c_str(), HH_HELP_CONTEXT, 32);
} 这是我在BCB中调用帮助的语句