end;
function EnableMouseHook(WndHandle:integer):BOOL;external 'MHook.DLL'; function DisableMouseHook:BOOL;external'MHook.DLL'; var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMBarIcon (varMessage:TMessage); begin
file://用户双击任务栏图标则关闭程序
if Message.LParam = WM_LBUTTONDBLCLK then close; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var
lpData:PNotifyIconData; begin
file://删除任务栏图标
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA); lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_ICONMESSAGE; lpData.uID :=0;
lpData.szTip := '鼠标演示';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; Shell_NotifyIcon(NIM_DELETE,lpData); dispose(lpData);
file://解除Mouse hook DisableMouseHook; end;
procedure TForm1.FormCreate(Sender: TObject); var
lpData:PNotifyIconData; begin
EnableMouseHook(Form1.Handle);
Form1.Visible := False;
lpData := new(PNotifyIconDataA);
lpData.cbSize := 88;//SizeOf(PNotifyIconDataA); lpData.Wnd := Form1.Handle;
lpData.hIcon := Form1.Icon.Handle;
lpData.uCallbackMessage := WM_ICONMESSAGE; lpData.uID :=0;
lpData.szTip := '鼠标演示';
lpData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP; Shell_NotifyIcon(NIM_ADD,lpData); dispose(lpData); end;
end.
运行程序,按下Scroll Lock键使其有效,将光标移动到文本窗口中(如IE、Word),
移动鼠标,点击鼠标右键,窗口就可以依上一次移动的方向滚动。
利用上面的原理,将程序做一些改动,就可以象专业的鼠标增强程序一样做出例如缩放
窗口,运行程序等很多鼠标增强效果来。
上面的程序在Windows95,Delphi4.0下运行通过。