我想通过一个程序(A),向另一个程序(B)的edit1.text中发送信息“you is error”文本信息,或通过(B)的edit1.text赋值给(A)程序这个文本也可,可是不知怎样的用以下API函数的参数,第一次用,总不成功,不能传送:
B程序的信息如下:窗口标题为“测试窗口”;Form1:Tform1;
edit1:Tedit我在A程序中写下以下的代码,却不知错在那里
procedure Tpswfrm.Button1Click(Sender: TObject);
var
btn,hWnd:THandle;
begin
hWnd:=FindWindow('测试窗口', nil); //此处获取B运行程序的窗体信息,不知是用“form1”;
还是'测试窗口'
BTN:=FindWindowEx(hWnd,0,'edit1',nil);//获取B程序要输入文本的edit
sendMessage(BTN,WM_SETTEXT,0,integer(edit1.Text));//将A程序窗体中的edit1.text文本送入B程
序edit1.text中
end;但是以上就是不行,不知为何,一点反应都没有,明天就要交差了,今天不得不加班,那位高手可否指点一二,感谢了,在线急盼,不等到就不能回家了,后面一发送信息语句开始我也用了这种形式,但不知错在那里,查sendmessage的用法格式是没有错的
sendMessage(BTN,WM_SETTEXT,0,“you is error”);但是连编译都编译不过去;
B程序的信息如下:窗口标题为“测试窗口”;Form1:Tform1;
edit1:Tedit我在A程序中写下以下的代码,却不知错在那里
procedure Tpswfrm.Button1Click(Sender: TObject);
var
btn,hWnd:THandle;
begin
hWnd:=FindWindow('测试窗口', nil); //此处获取B运行程序的窗体信息,不知是用“form1”;
还是'测试窗口'
BTN:=FindWindowEx(hWnd,0,'edit1',nil);//获取B程序要输入文本的edit
sendMessage(BTN,WM_SETTEXT,0,integer(edit1.Text));//将A程序窗体中的edit1.text文本送入B程
序edit1.text中
end;但是以上就是不行,不知为何,一点反应都没有,明天就要交差了,今天不得不加班,那位高手可否指点一二,感谢了,在线急盼,不等到就不能回家了,后面一发送信息语句开始我也用了这种形式,但不知错在那里,查sendmessage的用法格式是没有错的
sendMessage(BTN,WM_SETTEXT,0,“you is error”);但是连编译都编译不过去;
hWnd:=FindWindow('测试窗口', nil);
FindWindow的第一个参数是类名,第二才是窗口标题
建议判一下每个函数的返回值,就知哪错了
hWnd:thandle;
begin
hWnd:=FindWindow(nil, 'Form1'); //Form1为目标窗口的标题,前一个为类名,可省
//最好将当前程序的标题改成其它的,即改当前form的Caption
if hwnd=0 then
begin
ShowMessage('窗口没找到');
exit;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
btn,hWnd:THandle;
begin
hWnd:=FindWindow(nil, 'Form1');
if hwnd=0 then
begin
ShowMessage('窗口没找到');
exit;
end;
BTN:=FindWindowEx(hWnd,0,nil,'Edit1');//获取B程序要输入文本的edit
if hwnd=0 then
begin
ShowMessage('Edit1没找到');
exit;
end;
sendMessage(BTN,WM_SETTEXT,0,integer(edit1.Text));//end;
procedure Tpswfrm.Button1Click(Sender: TObject);
var
btn,hWnd:THandle;
begin
hWnd:=FindWindow(nil, '测试窗口');
if hwnd=0 then
begin
ShowMessage('窗口没找到');
exit;
end;
BTN:=FindWindowEx(hWnd,0,nil,'Edit1');//获取B程序要输入文本的edit
if hwnd=0 then
begin
ShowMessage('Edit1没找到');
exit;
end;
sendMessage(BTN,WM_SETTEXT,0,integer(edit1.Text));//end;