use unitformformname.edit.caption

解决方案 »

  1.   

    最近这种问题很多,你可以搜索
    大致是先找到其他程序的HANDLE
    FINDWINDOW
    然后发送消息
    wm_gettext
      

  2.   

    同意楼上.
    在Unit1里边Uses Unit2
    然后就可以用:Form2.Edit1.Text的用了.
      

  3.   

    假设你有2个FORM:FORM1和FORM2,你在FORM1中想得到FORM2里EDIT1中的内容:
    1.在FORM1文件开始的  USE 部分添加上 USE ...,FORM2;
    2.在FORM1便可以引用了:  showmessage(form2.edit1.text);
      

  4.   

    //给你一段BCB的
    HWND hWnd;
    TPoint lpCurPos;
    Longint lntLen;
    char pchPass[255];
    GetCursorPos(&lpCurPos);//获取当前鼠标位置
    hWnd=WindowFromPoint(lpCurPos);//获取当前鼠标位置的窗口句柄
    lntLen=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);
    SendMessage(hWnd,WM_GETTEXT,lntLen+1,Integer(pchPass));//获取字符
    ShowMessage(pchPass);
      

  5.   

    TO: 40Star(陪你去看--☆流星雨★) 
    同意你的说法,但程序是取另一个程序里控件的值,但好象你没有HOOK?
      

  6.   

    那么枚举所有窗口, 找到符合条件的窗口的句柄, 然后再找它上面的子窗口可以吗?下面的代码是枚举所有窗口的标题(用 EnumWindows)type
      EnumWindowsProc = function (Hwnd: THandle;
        Param: Pointer): Boolean; stdcall;//Add the handle of the process and the window caption of a window found
    //  by EnumWindows routine to a ListBox, each item takes a line.
    function GetTitle (Hwnd: THandle; Param: Pointer): Boolean; stdcall;
    var
      Text: string;
    begin
      SetLength (Text, 100);
      GetWindowText (Hwnd, PChar (Text), 100);  
      Form1.ListBox1.Items.Add (IntToStr (Hwnd) + ': ' + Text);
      Result := True;
    end;procedure TForm1.BtnTitlesClick(Sender: TObject);
    var
      EWProc: EnumWindowsProc;
    begin
      ListBox1.Items.Clear;
      EWProc := GetTitle;
      EnumWindows (@EWProc, 0);
    end;
      

  7.   

    能说得细些么?找到窗口,然后怎么得到控件的值呢?
    如果方便,能给我留下你的 mail地址吗?这么说太麻烦了.多谢了.