〓〓如何在Windows桌面右键菜单中加入自己的程序呢?有的显卡程序就可以...〓〓 如何在Windows桌面右键菜单中加入自己的程序呢?我看有的显卡程序就可以... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/1483/1483295.xml?temp=.7806055http://www.delphibbs.com/delphibbs/dispq.asp?lid=0940110我想这些够你看的了 主要运用windows shell 调用com接口 uses SysUtils, Windows, Classes, Messages;{$R *.res}var hNextHook: HWND;procedure ShowMsg(Msg: string);begin MessageBox(GetActiveWindow, Pchar(Msg), 'Info', MB_OK + MB_ICONINFORMATION);end;function CallWndProc(nCode: integer; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;var Msg: PCWPStruct;begin Msg := pointer(lParam); case Msg.message of WM_INITMENUPOPUP: begin InsertMenu(Msg.wParam, 0, MF_BYCOMMAND or MF_STRING, 100, 'Test'); end; WM_MENUCOMMAND,WM_SYSCOMMAND: begin if Lo(Msg.wParam) = 100 then Beep(500,100); end; end; Result := CallNextHookEx(hNextHook, nCode, wParam, lParam);end;procedure Hook; stdcall;begin hNextHook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, HInstance, 0);end;procedure UnHook; stdcall;begin if hNextHook <> 0 then UnhookWindowsHookEx(hNextHook);end;exports Hook, UnHook;begin hNextHook := 0;end.//////////////调用代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure Hook; stdcall;external 'project2.dll';procedure UnHook; stdcall;external 'project2.dll';procedure TForm1.FormCreate(Sender: TObject);begin Hook;end;procedure TForm1.FormDestroy(Sender: TObject);begin UnHook;end;end.效果圖片:http://www.eping.net/fourm/UploadFile/200362316553182637.jpg 在idhttp中如何实现多线程? Delphi程序员请进 有关快捷方式的问题。 如何在fsMDIForm显示fsNormal窗体呢? 怎么定义一个静数组啊??? 动态创建TNMUDP控件的问题 急!DELPHI创建的ACTIVEX-DLL,为什么用CreateOleObject之后调用方法出错?(VB,Jscrip也是如此) 一个简单的问题! zt:网络平台成为广告投放新焦点,MIND概念引人注目 DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端 access数据库的用户和口令如何设置?用什么函数保护口令域? 如何获取指定进程的程序路径?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=0940110我想这些够你看的了
SysUtils,
Windows,
Classes, Messages;{$R *.res}
var
hNextHook: HWND;procedure ShowMsg(Msg: string);
begin
MessageBox(GetActiveWindow, Pchar(Msg), 'Info', MB_OK + MB_ICONINFORMATION);
end;function CallWndProc(nCode: integer; wParam: WPARAM; lParam: LPARAM): Longint; stdcall;
var
Msg: PCWPStruct;
begin
Msg := pointer(lParam);
case Msg.message of
WM_INITMENUPOPUP:
begin
InsertMenu(Msg.wParam, 0, MF_BYCOMMAND or MF_STRING, 100, 'Test');
end;
WM_MENUCOMMAND,WM_SYSCOMMAND:
begin
if Lo(Msg.wParam) = 100 then Beep(500,100);
end;
end;
Result := CallNextHookEx(hNextHook, nCode, wParam, lParam);
end;procedure Hook; stdcall;
begin
hNextHook := SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, HInstance, 0);
end;procedure UnHook; stdcall;
begin
if hNextHook <> 0 then
UnhookWindowsHookEx(hNextHook);
end;exports
Hook, UnHook;begin
hNextHook := 0;
end.//////////////
调用代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure Hook; stdcall;external 'project2.dll';
procedure UnHook; stdcall;external 'project2.dll';procedure TForm1.FormCreate(Sender: TObject);
begin
Hook;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHook;
end;end.
效果圖片:http://www.eping.net/fourm/UploadFile/200362316553182637.jpg