大家早下好,请假个有关问题,有关问题比较难,请~
大家早上好,请假个问题,在线等!问题比较难,请高手进~~
如何给其他程序的工具栏上的按钮发送点击消息。。。
用代码示之~~~谢谢!
------解决方案--------------------
转自DelphiBBS:
第一步:找到Button所在窗口句柄:
var HWin: THandle;
HWin := FindWindow(nil, '程序Caption');
第二步:找到Button句柄:
EnumChildWindows(HBtn, @EnumerateChildWindows, 0);
第三步:发送消息:
SendMessage(HBtn, WM, 0, 0);
程序参考:
------解决方案--------------------
什么意思,你的意思是击工具栏中的按扭, 执行代码功能两次
var
i:integer;
begin
i:=1;
if i<=2 then
begin
ShowMessage('信息提示');
i:=i+1;
end;
end;
------解决方案--------------------
SendMessage(HBtn, BM_CLICK, 0, 0);//这个就是发送点击消息。关键在于能否获取到BUTTON的句柄
POSTMESSAGE都可以的。
------解决方案--------------------
FindWindow
EnumChildWindows
SendMessage
3#很正確,就是用這3個函數,另外要寫一個回調函數
------解决方案--------------------
KK说的是勾子的,但是有些窗体用勾是不好用的呀
------解决方案--------------------
你必须先勾住窗体后,才能获取内的控件的
如何给其他程序的工具栏上的按钮发送点击消息。。。
用代码示之~~~谢谢!
------解决方案--------------------
转自DelphiBBS:
第一步:找到Button所在窗口句柄:
var HWin: THandle;
HWin := FindWindow(nil, '程序Caption');
第二步:找到Button句柄:
EnumChildWindows(HBtn, @EnumerateChildWindows, 0);
第三步:发送消息:
SendMessage(HBtn, WM, 0, 0);
程序参考:
//回调函数,列出所有子窗口句柄
var
HBtn: THandle;
function EnumerateChildWindows(hWnd: HWND; lParam: LPARAM): BOOL;
var
WindowCaption: Array[0..254] of Char;
begin
GetWindowText(Hwnd, WindowCaption, 255);
if WindowCaption = '按钮Caption' then
HBtn:= Hwnd;
Result := true;
end;
procedure TFindForm.Button2Click(Sender: TObject);
var
H: HWnd;
I: Integer;
begin
H := FindWindow(nil, '程序Caption');
if H = 0 then
Exit;
EnumChildWindows(H, @EnumerateChildWindows, 0);
SendMessage(HBtn, BM_CLICK, 0, 0);
end;
------解决方案--------------------
什么意思,你的意思是击工具栏中的按扭, 执行代码功能两次
var
i:integer;
begin
i:=1;
if i<=2 then
begin
ShowMessage('信息提示');
i:=i+1;
end;
end;
------解决方案--------------------
SendMessage(HBtn, BM_CLICK, 0, 0);//这个就是发送点击消息。关键在于能否获取到BUTTON的句柄
POSTMESSAGE都可以的。
------解决方案--------------------
FindWindow
EnumChildWindows
SendMessage
3#很正確,就是用這3個函數,另外要寫一個回調函數
------解决方案--------------------
KK说的是勾子的,但是有些窗体用勾是不好用的呀
------解决方案--------------------
你必须先勾住窗体后,才能获取内的控件的