用DELPHI操作VB程序的问题、   没什么分了,请见谅(5分)

  • 主题发起人 主题发起人 aynes
  • 开始时间 开始时间
A

aynes

Unregistered / Unconfirmed
GUEST, unregistred user!
因为工作需要,我要用DELPHI来编程实现操作另一VB程序的目的(VB程序只有可执行文件)<br>我要实现的就是先打开VB程序,在界面(formA)上单击一个按钮,弹出另外一个界面(formB),再在上面的输入框中输入一些信息,然后再单击一个按键即可。<br><br>我用工具查看了一下,VB的FORM类是ThunderRT6FormDC(两个FORM都是一样了)<br>我的主要程序如下:<br> 回调函数:<br>function enumuserproc(hwnd:integer;lparam:longint):boolean;stdcall;<br>var<br>&nbsp;buffer:array[0..255] of char;<br>begin<br>&nbsp;result:=true;<br>&nbsp;getwindowtext(hwnd,buffer,256);<br>&nbsp;if buffer=str then &nbsp;begin<br>&nbsp; &nbsp; sendmessage(hwnd,wm_lbuttondown,mk_lbutton,0);<br>&nbsp; &nbsp; sendmessage(hwnd,wm_lbuttonup,mk_lbutton,0);<br>&nbsp;end;<br>end;<br><br>  button中代码:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; hwnd:integer;<br>begin<br>&nbsp; hwnd:=findwindow(nil,'资料传输');<br>&nbsp; if hwnd&lt;&gt;0 then begin<br>&nbsp; &nbsp; str:='上传设置';//按钮名<br>&nbsp; &nbsp; enumchildwindows(hwnd,@enumuserproc,0);<br>&nbsp; end;<br>&nbsp; hwnd:=findwindow(nil,'设置');<br>&nbsp; if hwnd&lt;&gt;0 then begin<br>&nbsp; &nbsp; str:='确定';//按钮名<br>&nbsp; &nbsp; enumchildwindows(hwnd,@enumuserproc,0);<br>&nbsp; end;<br>end;<br><br>程序想实现两个FORM上按钮的自动单击。<br>但是,我在DLEPHI程序上第一次单击按钮后,没有效果,<br>第二次单击按钮后,VB程序的form2出现,但此时并没有出现单击form2上按钮的效果(form2上的‘确定’按钮,没有被自动单击),delphi的程序就好像死掉一样,不能对其进行任何操作。但只要关闭VB的form2程序,delphi程序又自动恢复正常。<br><br>我尝试用delphi作了有两个form的程序作被调用的测试,但结果一切正常。<br><br>请问为什么VB的程序我要两次按按钮后才能调用,而且会出现上面所述的问题??????<br><br><br>分不多,请见谅
 
后退
顶部