我现在已经有一个exe文件,没有源程序,我想自己编程序想这个程序发送数据,例如,发送字符串到已有exe文件的某窗体的edit上。

解决方案 »

  1.   

    已有的exe文件需要有相关的参数才能传入。
    具体我还不太清楚,等有实例了,我给你帖过来
    UP
      

  2.   

    按以下的方法:1、找到原来的 EXE 的窗口号的句柄;
    2、找到相应的 EDIT 的句柄。
    3、使用 sendMessage();发送消息: WM_SETTEXT
    同样可以发送任标准消息,如单击事件等。具体可以参考
      http://www.csdn.net/develop/Read_Article.asp?Id=22661但是不要做坏事呀!
      

  3.   

    我认为不行 windows不允许访问别的进程的地址空间的,楼上说法会引发windows的一般保护性异常
      

  4.   

    to delphiseabird(沙鸥):
       一般保护性异常? 照你说的,那么请问:一个进程在另一个进程的地址空间运行是行不通的,是吗?那么进程隐藏是怎么实现的?
      

  5.   

    //发送字符串到其他程序。
    //apphandle为其他程序的句柄
    var
      SSend:string;
      i:integer;
      appHandle:hwnd;
      ch: byte;
    begin
      SSend:='13123123123adsfasdfasdf';
      //...  i := 1;
      while i <= Length(sSend) do
      begin
        ch := byte(sSend[i]);
        if Windows.IsDBCSLeadByte(ch) then
        begin
          Inc(i);
          SendMessage(apphandle, WM_IME_CHAR, MakeWord(byte(sSend[i]), ch), 0);
        end
        else
          SendMessage(apphandle, WM_IME_CHAR, word(ch), 0);
        Inc(i);
      end;
    end;
      

  6.   

    whqcfp(whqcfp)的方法完全可行的
      

  7.   

    用 whqcfp(whqcfp) 的方法可以。但是不用sendMessage();发送消息: WM_SETTEXT也可以。
    直接SetWindowText就可以了。
    SetWindowText( edit的handle, 'xxxxxxxxxxxx' );
    要找到某个窗口的句柄可以用FindWindow
      

  8.   

    to:whqcfp(whqcfp)
     我看了你的那个帖子 我是说windows是不允许程序访问其他进程的地址控件的,这样会引发一般保护性错误,所以才会用内存映射文件等形式来共享数据。
     你的发送消息的方法和这个不一样,实际处理这个消息的还是当前进程的
      

  9.   

    谢谢 whqcfp(whqcfp)!
    我已经试验成功。