我想在自己的程序运行后,可以在系统中任何一个打开或者保存的对话框上添加相应的功能,所以想通过点击右上角的“?”按钮来触发运行自己的代码,不知道怎样入手。
小弟是菜鸟,大虾给个思路吧!
问题解决再送100分!
小弟是菜鸟,大虾给个思路吧!
问题解决再送100分!
解决方案 »
- OleContainer打开word后,如果屏蔽Ribbon菜单下的某些功能
- Dll中封装窗体的问题
- 窗口的鼠标穿透问题
- 大家看看这个!有人说“VB、delphi的专长就是做这些垃圾”,我看不下去了!
- delphi中有一个存储过程控件ADOStoredProc,请问能否用该控件去调用函数(不是过程)?
- 请您帮个忙!在delphi中如何关闭另一个应用程序?
- 关于数据库程序
- 我按照《程序员大本营2001 Borland版》第68页做的《使用Internet Explor在Web 页面中查找所有的链接》程序无法运行!(Win98+IE5.5+Delphi
- 300分求进销存、酒店管理等代码, [email protected]
- SQL语句出错,请各位高手指教,谢谢!急急急!!!
- 如何将image1.canvas复制到printer.canvas打印输出?
- 大家来看看,这是怎么一回事
你上面的代码能不能实现这个要求呢?
上面的代码 只是一个大概的说明 如果楼主真的要达到这样的要求的话
必须要把我上面的代码写到DLL中
而且要设置一个HOOK,拦截系统中所有的WM_SYSCOMMAND消息才行
否则单单在自己的FORM中实现,只可能对自己的窗体进行操作
*************************************************************
DLL文件:library MouseHook;uses
MouseIdle in 'MouseIdle.pas';Exports
CreateHook,
RemoveHook;begin
whHelp := 0;
procSaveExit := ExitProc;
ExitProc := @HelpHookExit;
end.
*******************************************************************
MouseIdle.pas 文件unit MouseIdle;interfaceuses
Windows, Messages;var
whHelp: HHook;
procSaveExit: Pointer; function CreateHook: Boolean; export;
function RemoveHook: Boolean; export;
procedure HelpHookExit; far;
function HelpProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
implementationfunction CreateHook: Boolean;
begin
Result := false;
if whHelp <> 0 then Exit;
whHelp := SetWindowsHookEx(WH_SYSMSGFILTER, @HelpProc, Hinstance, 0);
Result := whHelp <> 0;
end;function RemoveHook: Boolean;
begin
if whHelp <> 0 then
begin
UnHookWindowsHookEx(whHelp);
whHelp := 0;
end;
Result := whHelp = 0;
end;procedure HelpHookExit;
begin
if whHelp <> 0 then
RemoveHook;
Exitproc := procSaveExit;
end;function HelpProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
begin
Result := 0;
if iCode < 0 then Result := CallNextHookEx(whHelp, iCode, wParam, lParam); if PCWPStruct(lParam)^.message = WM_SysCommand then
if pMsg(PCWPStruct(lParam)^.message).message = SC_CONTEXTHELP then
MessageBox(0, '点击窗体右上角的帮助按钮', 'Hook', 0+64);
end;end.*********************************************************************