<font color = "red">美女发火了!!</font>(116分)

就算是美女难道想让别人做什么就做什么?
wjiachun把这个问题结束算了,没必要讨论了
 
各位大哥帮帮忙嘛,发火是我的不对。可是到现在也没有人给我一点代码。
如果真的是要用鼠标钩子的话,怎么写呢?
谢谢!!
 
我还不会hook(钩子),但是我可是很愿意帮你的,管你是男是女,我无所谓,我只知道钩子
有这个功能,看了一晚上,还是没有看懂,而且,今天还有六级,也就不能帮忙了
 
1、没事请不要乱发脾气
2、我已经有女朋友了,而且很漂亮,管她“美女”不“美女”
3、祝各位大富翁
新年快乐、快乐多多
 
我是女的有没有人信?
这个问题主要是要用hook
 
好不容易来一次,以为又可以看对联什么的,谁晓得,唉……
mouse hook看上去不错,不过哪个参数传鼠标形状呢?
amo的方法估计也比较占资源,不过我想不出更好的了。
另:还是...?
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=374347
里有一段也许对你有用,具体怎么做,看你的造化了。
 
可否用线程在后台监测!
 
原来美女发货是酱子的啊~~~~~
 
都说网上无美女,何况既编程又上网的?......这个,哈哈
不过是不是美女并不重要,重要的是没有人会无聊到听说是美女就很热情的回答问题。
 
我喜欢美女
 
就没有人能给点代码吗?
 
什么钩子,钩子钩不住,别忙了,大伙儿。
 
MM我喜欢,PLMM更加喜欢
 
这是我写的 DLL Mouse Hook ,能钩到本程序的 Mouse 消息,但是不能钩到其他应用程序
中的消息,onedolph 大虾说过钩不住,能不能说明一下原因和解决方案?
library MouseHook;
uses
SysUtils,
Classes,
Windows,
Messages,
StdCtrls,
Controls,
Dialogs;
var
hHook: THandle;
ListBox: TListBox;
function MouseProc(nCode: Integer;
wParam: Word;
lParam: Integer): Integer;
begin
if (nCode < 0) then
begin
Result := CallNextHookEx(WH_MOUSE, nCode, wParam, lParam);
Exit;
end;
ListBox.Items.Add(IntToStr(GetCursor));
Result := CallNextHookEx(WH_MOUSE, nCode, wParam, lParam);
end;

procedure InstallHook(P: Pointer);
begin
ListBox := P;
hHook := SetWindowsHookEx(WH_MOUSE, @MouseProc, hInstance, 0);
if hHook = 0 then
Raise Exception.Create('Cannot set hook !');
end;

procedure UnInstallHook;
begin
ListBox := nil;
UnHookWindowsHookEx(hHook);
end;

exports InstallHook, UnInstallHook;
{$R *.RES}
begin
end.

下面是设置钩子的代码,用了一个 ListBox 来反映结果。
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Excel2000, OleServer, Word2000, ExtCtrls;
type
TFormDemo = class(TForm)
ListBox1: TListBox;
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
InstallHook: procedure (P: Pointer);
UnInstallHook: procedure;
var
FormDemo: TFormDemo;
DllHandle: THandle;
List: TListBox;
implementation
{$R *.DFM}
procedure TFormDemo.Button1Click(Sender: TObject);
begin
List := ListBox1;
InstallHook(List);
end;

procedure TFormDemo.FormCreate(Sender: TObject);
begin
DllHandle := LoadLibrary('MouseHook.Dll');
InstallHook := GetProcAddress(DllHandle, PChar('InstallHook'));
UnInstallHook := GetProcAddress(DllHandle, PChar('UnInstallHook'));
end;

procedure TFormDemo.FormDestroy(Sender: TObject);
begin
FreeLibrary(DllHandle);
end;

procedure TFormDemo.Button2Click(Sender: TObject);
begin
UnInstallHook;
end;

end.
 
你绝对不是 MM
还是说一下我解决此类问题的方法

线程定时获取鼠标 :
AICON:=TIcon.Create;
AICON.ReleaseHandle;
Getcursorpos(Mousepos);
//获取鼠标位置
AWnd:=Windowfrompoint(Mousepos);
AThreadID:=GetWindowThreadProcessId(AWND,nil);
// 获取线程 ID
AttachThreadInput(GetCurrentThreadID,AThreadID,true);
// 挂接输入端
AIcon.Handle:=Getcursor;
// 得到鼠标形状
AttachThreadInput(GetCurrentThreadId,AThreadID,false);
// 释放输入端
IF AICON.Handle>0 then

AICON.Saveto(MemoryStream);
AICON.Free;
//下面比较 MemoryStream 的内容是否和 小手 的值匹配 就不赘述了
//记得 MemoryStream.Clear;
要不然....
 
我的意识是说,鼠标钩子可以钩住,但解决不了这个问题。因为钩回来的信息里面没有包含
希望的信息。
 
如果没有人再给答案的话,我就把分给GGCAT了。
 
GGCAT 的方法是不停地测试,我没有试过,应该是可行的,但是一定很浪费资源。
onedolph 大虾,可以钩住吗?我为什么不行?
 
真的是美女吗???发张照片来看看证实一下吗!!!!!哈哈!!!
 
顶部