最近公司要求做一个程序,就是要求在一个应用程序中控制另一个程序,在已知的Edit框中输入指定的内容,和其它的一些操作。请问这个怎么实现呀。

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var  HWindow,hedit: THandle; //句本柄变量
    szText: Array[0..255] Of char;   //得到的字符串
    Begin
       HWindow := 0;
       While true Do
          Begin
           HWindow := FindWindowEx(0, HWindow, 'SciCalc', Nil);//找计算器的窗体
           if HWindow=0 then exit;
           If HWindow <> 0 Then
            Begin
            hEdit := FindWindowEx(hwindow, 0, 'Edit', Nil);  //找到edit文本框
            if HEdit<>0 then
            begin
          SendMessage(hEdit, WM_GetTEXT, 256,integer(@szText[0])); //取值
          edit1.Text:= szText; //符值
         break;
        End;
        end;
      end;
    End;
      

  2.   

    上面的错了,这个才是正确的procedure TForm1.Button1Click(Sender: TObject);
    var  HWindow,hedit: THandle; //句本柄变量
    szText: Array[0..255] Of char;   //得到的字符串
    MyText           : String;  //发送的字符串Begin
       HWindow := 0;
       While true Do
          Begin
           HWindow := FindWindowEx(0, HWindow, 'SciCalc', Nil);//找计算器的窗体
           if HWindow=0 then exit;
           If HWindow <> 0 Then
            Begin
            hEdit := FindWindowEx(hwindow, 0, 'Edit', Nil);  //找到edit文本框
            if HEdit<>0 then
            begin
            MyText := '111';        SendMessage(hedit, WM_SETTEXT, 256,integer(MyText));
            break;
        End;
        end;
      end;
    End;
      

  3.   

    用SPY++找EDIT的句柄,發送消息即可。樓上的例子就是。