各位大侠你们好,具体情况是这样的。我想用Delphi编一个小程序用来调用别人家的EXE文件,把我的数据记录通过别人家的程序输入到数据库中。
比如别人家的程序里有两个文本框是用来录数据的,和一个确定按钮。我如何把数据传到文本框中且如何操作确定按钮来完成工作呢!
八百里加急啊!!!

解决方案 »

  1.   

    我如何把数据传到文本框中且如何操作确定按钮来完成工作呢!
    ------------------
    呵呵,你的问题很奇怪我觉得可以通过句柄来完成
    找到Edit的句柄,然后  
    SendMessage(hWnd,WM_SETTEXT,0,Buf);//buf存放数据,填充到Edit
    找到确定按钮,然后
    SendMessage(btnWnd,WM_LBUTTONDOWN,MK_LBUTTON,0);//按下
    SendMessage(btnWnd,WM_LBUTTONUP,0,0);//弹起
      

  2.   

    这个很简单的。调用exe可以传参数的。你把你的数据作为参数传递就可以。只是这样要你自己将进程释放掉才可以。
      

  3.   

    可以传参数,但是需要exe本身对参数要有处理的,按楼主的意思,这个办法不太可行。【我觉得可以通过句柄来完成
    找到Edit的句柄,然后  
    SendMessage(hWnd,WM_SETTEXT,0,Buf);//buf存放数据,填充到Edit
    找到确定按钮,然后
    SendMessage(btnWnd,WM_LBUTTONDOWN,MK_LBUTTON,0);//按下
    SendMessage(btnWnd,WM_LBUTTONUP,0,0);//弹起】
    这个应该是个可行的办法。
      

  4.   

    调用程序外的EXE,也需要exe有接口才行吧。你就这样直接模拟好像有困难
      

  5.   

    请教hhnick(nick):
    怎样才能获得edit exe文件的窗体和文本框的句柄 ,谢谢   
      

  6.   

    shellexecute(handle,'Open',pchar('project.exe'),nil,nil,sw_shownormal);
    use 加上ShellAPI
      

  7.   

    只能启动别人的程序,除非那个程序是Active EXE
      

  8.   

    能把控制他人EXE文件里的按钮单击的代码给我一份么
      

  9.   

    这完全可以用hhnick的方法实现,我都这样做了,对文本框和按钮都可以,但现在对listview控件(viewstyle为vsreport,column大于1)却还无法实现,呵呵,还望哪位高手指教!
    至于得到exe文件中控件的handle,class name,可以用spy++得到
    var F1,F2:hwnd;
      F1:=Findwindow('classname','caption');
      F2:=FindWindowEx(F1,0,'TButton','button1');
      postMessage(F2,WM_LBUTTONDOWN,0,0);
      postMessage(F2,WM_LBUTTONUP,0,0);
      

  10.   

    用WM_SETTEXT消息真的可行吗? 表示怀疑. 别忘了这个是跨进程应用. 对方进程收到WM_SETTEXT, 凭什么获取到那个LPARAM指向的字符串?  你传递的是你进程空间的地址, 对对方进程空间来说这个地址可能根本就是个非法地址.
      

  11.   

    shellexecute(handle,'Open',pchar('project.exe'),,,sw_shownormal);
    use 加上ShellAPI