如何读写某EXE巳动行的FORM上Edit.Text的内容。

解决方案 »

  1.   

    知道Edit的handle
    SendMessage(WM_GetText...)
      

  2.   

    var
      vHandle: THandle;
      vBuffer: array[0..255] of Char;
    begin
      vHandle := WindowFromPoint(Mouse.CursorPos); //通过坐标得到Edit的句柄,也可以用FindWindow()、EnumChildWindows()组合~~
      SendMessage(vHandle, WM_GETTEXT, SizeOf(vBuffer), Integer(@vBuffer)); //通过WM_GETTEXT取得文本~~
      Caption := vBuffer;
    end;
      

  3.   

    var
      ss: Pchar;
    begin    
        //读
        GetMem(ss,255);
        SendMessage(FEditHandle, WM_GETTEXT, 255, longInt(ss));
        FreeMem(ss);
        //写
        SendMessage(FComboboxHandle,WM_SETTEXT,0,Integer(pchar('龙')));
      

  4.   

    不止SendMessage(wm_gettext)(mm_settext)可以,还有getwindowtext和setwindowtext可以读写窗口的文本。
      

  5.   

    zswang(伴水清清)(专家门诊清洁工) **老大果然厉害!
      

  6.   

    当只知到该FORM的Caption时该如何实现?请指教!
      

  7.   

    1、首先要找到其窗口的句柄[vHandle]
    2、SendMessage(vHandle, WM_GETTEXT, SizeOf(vBuffer), Integer(@vBuffer));或
       SetWindowText(...)
      

  8.   

    //zswang(伴水清清)(专家门诊清洁工) **老大果然厉害!要不,回答问题,要不,悄悄的。拍MP的都是SB
    别说你比我强, 我不爱听 !
      

  9.   

    我提供一种比较简单的办法吧!
    我就是用这个办法实现的!
    把form1.edit1.text的内容写到form2.edit1.text里面去.
    把form2设Option中置成variable,通过.Tform2.Creat(self)建立.
    在form1的单元文件中设置public的tmp:string, tmp:=form1.edit1.text
    然后在Creat form2的时候把form2.edit1.text := tmp
      

  10.   

    当只知到该FORM的Caption时该如何实现?看来我没把问题陈述清楚。
    有一个正运行的EXE,能知道它的Caption内容或能知道它的程序名,
    1.可以用FindWindow()取得它的句柄{zswang(伴水清清)(专家门诊清洁工)};
    2.如何取得那人Edit的句柄呢?(其实是如何编历取得该exe的各控件的句柄)请各位指教!
      

  11.   

    //如何取得那人Edit的句柄呢?(其实是如何编历取得该exe的各控件的句柄)请各位指教!我以为问题已经解决了。谁知你问的是这个。用FINDWINDOW找到句柄后,用GETWINDOW(XX-CHILD和XX-NEXT)来枚举出窗体内的空间句柄。(旗标我几不清了,你自己找找吧)