不知你做什么项目。
鼠标消息的目的窗口句柄并不好确定。
比如你要模拟用户在计算器的0上按一下,
你的先获得button0的句柄hwnd(要通过EnumChildWindow,而且不好判断),
再发送SendMessage(hwnd,WM_LBUTTONDOWN,MK_LBUTTON,0)
和SendMessage(hwnd,WM_LBUTTONUP,MK_LBUTTON,0);
我一般这样做:
鼠标消息经常会产生WM_COMMAND,
发送鼠标消息不如发送相应的WM_COMMAND.
上面的例子可这样实现:
procedure TForm1.Button2Click(Sender: TObject);
var
i,hwnd: Integer;
msg: String;
begin
hwnd := FindWindow('SciCalc',nil);
if hwnd<>0 then
begin
msg := '20001122';
for i := 1 to Length(msg) do
SendMessage(hwnd,WM_COMMAND,124+Ord(msg)-48,0);
end;
end;
^-^