有一个VB编的程序,其界面上有几个Text(或TextBox?)和Label,我想通过Delphi编程得到其中一个Text(或TextBox)的文字内容,请问如何实现?

解决方案 »

  1.   

    定义全局的hd:Thandle; Mrect, Crect:Trect;查找指定窗口(窗口位置),如窗口存在则列出子控件,  hd:=FindWindow(nil,pchar(edit1.text));
      if (hd>0) and (IsWindowVisible(hd)) then
      begin
        GetWindowRect(hd,Mrect);
        EnumChildWindows(hd, @EnumChildWindowsProc, Longint(Self));
      end;列出指定窗口中的控件(类名,文本,相对位置)
    function EnumChildWindowsProc(H: HWnd; TF: TForm1): Boolean; stdcall;
    var
      Buffer: array[0..255] of Char;
      Buffer1: array[0..255] of Char;
    begin
      Result := True;
      GetWindowText(H, Buffer, 255);
      GetClassName(h,buffer1,255);
      Getwindowrect(h,Crect);
      TF.memo1.Lines.Add('类名:'+StrPas(Buffer1)+#9+'文字:'+StrPas(Buffer)+#9+'位置:'+inttostr(Crect.Top-mrect.Top)+','+inttostr(Crect.left-mrect.Left));
    end;
      

  2.   

    利用windows提供的窗体函数,读取窗体所有组件名字,每个组件都有一个HANDL,都有自己的属性。
      

  3.   

    获得句柄就可以发消息,修改或者获得文本框的内容。WM_SETTEXT和WM_GETTEXT两个消息。