如何给其他程序的工具栏上的按钮发送点击消息用代码示之~~~谢谢!
解决方案 »
- 中间件的CORBA
- 条码扫描
- 关于ADOQUERY的问题
- 怎么传值?比如单击DBGRID中的一个COLUMN就可以把值传到一张报表的QRDBTEXT上
- 请教如何将数据库数据输出到Excel上?谢谢!
- 关于qtintf.dll的问题, 急...
- Delphi和Oracle数据库中Delete的问题
- 我如何在delphi中调用vfp,并且让它执行一条vfp的内部命令!例如:copy to !
- 如何把一个数字format成8位数,如10变成00000010,11变成00000011.
- 如何定义一个函数或过程,让每个窗口都能调用?
- DBChart1如何放大T
- delphi写的DLL怎么给C++ Builder使用啊?
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;
POSTMESSAGE都可以的。
EnumChildWindows
SendMessage3#很正確,就是用這3個函數,另外要寫一個回調函數
postmessage(hwnd, WM_LBUTTONDOWN,1,1);
postmessage(hwnd, WM_LBUTTONUP,1,1);