消息有关问题
消息问题!
现在两个exe应用程序A和B
在A程序中点击按纽后向B程序中发送一段字符串并且触发B中的Buttonclink事件
该怎么做呢?
在A程序中已可以取得B中用到的控件了,代码如下:
function EnumChildWndProc(AhWnd:LongInt;
AlParam:lParam):boolean;stdcall;
var
WndClassName: array[0..254] of Char;
WndCaption: array[0..254] of Char;
begin
GetClassName(AhWnd,wndClassName,254);
GetWindowText(aHwnd,WndCaption,254);
with form1.memo1 do
begin
lines.add( string(wndClassName));
lines.add( string(wndCaption));
lines.add( '------- ');
end;
result:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hWnd:LongInt;
begin
memo1.Lines.Clear;
Memo1.Lines.Add(Edit1.Text+ ' 有如下控件类名称 ');
hWnd:=FindWindow(nil,pchar(Edit1.Text));
if hWnd <> 0 then
begin
EnumChildWindows(hWnd,@EnumChildWndProc,0);
end
else MessageBox(self.handle, '没找到该窗口句柄 ', '提示 ',0);
end;
接下来该怎么向B程序发送一段字符串并触发Buttonclick事件呢?
请各位指教!
------解决方案--------------------
“发送字符串到其 Edit” :
SendMessage(Edit的句柄, WM_SETTEXT, 0, integer(PChar( 'Test String ! ')));
发送单击消息给 Button :
SendMessage(按钮句柄, WM_LBUTTONDOWN, 0, 0);
Sleep(10);
SendMessage(按钮句柄, WM_LBUTTONUP, 0, 0);
现在两个exe应用程序A和B
在A程序中点击按纽后向B程序中发送一段字符串并且触发B中的Buttonclink事件
该怎么做呢?
在A程序中已可以取得B中用到的控件了,代码如下:
function EnumChildWndProc(AhWnd:LongInt;
AlParam:lParam):boolean;stdcall;
var
WndClassName: array[0..254] of Char;
WndCaption: array[0..254] of Char;
begin
GetClassName(AhWnd,wndClassName,254);
GetWindowText(aHwnd,WndCaption,254);
with form1.memo1 do
begin
lines.add( string(wndClassName));
lines.add( string(wndCaption));
lines.add( '------- ');
end;
result:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hWnd:LongInt;
begin
memo1.Lines.Clear;
Memo1.Lines.Add(Edit1.Text+ ' 有如下控件类名称 ');
hWnd:=FindWindow(nil,pchar(Edit1.Text));
if hWnd <> 0 then
begin
EnumChildWindows(hWnd,@EnumChildWndProc,0);
end
else MessageBox(self.handle, '没找到该窗口句柄 ', '提示 ',0);
end;
接下来该怎么向B程序发送一段字符串并触发Buttonclick事件呢?
请各位指教!
------解决方案--------------------
“发送字符串到其 Edit” :
SendMessage(Edit的句柄, WM_SETTEXT, 0, integer(PChar( 'Test String ! ')));
发送单击消息给 Button :
SendMessage(按钮句柄, WM_LBUTTONDOWN, 0, 0);
Sleep(10);
SendMessage(按钮句柄, WM_LBUTTONUP, 0, 0);