本人的要要求是:现在有一个现成的程序A,需要通过编写一个程序B去控制前程序A的启动、关闭及其它的一些操作,例如程序A里有文本框、日期选择列表框、还有一些按钮.......怎么才能通过程序B去填写文本、选择日期、点击按钮等,有没有高手写过这方面的代码。在线等

解决方案 »

  1.   

    你为什么要写一个B去控制A?A都有源代码了。
      

  2.   

    因为A程序是部署到服务器上的,要时时刻刻运行,但有时候会出现一些人为的失误或机器的故障造成A程序的以外停止/关掉,所以就需要另外一个监控程序了B去重新启动程序A了
      

  3.   

    public?
    在B里启动A,然后逮到某个窗体。然后创建引用给窗体控件赋值?
    话说源代码都有了,你干嘛不重新编码再编译下?
      

  4.   

    而且人不可能时时刻刻都到服务器上去查看的,如果只单单启动程序A就不用另外写一个监控程序,但是A程序上面有很多操作,所有这个B程序就非常有必要了。
      

  5.   

    查进程,发现进程里没有,就启动一个。Process.Start()
      

  6.   

    [DllImport("User32.dll", EntryPoint = "FindWindow")]
      

  7.   

    使用应用程序域加载它
    然后考虑Remoting通信
      

  8.   

    用WindowAPI可以的。
    FindWindow
    FindWindowEx
    SendMessage
    SET_TEXT
    GET_TEXT以前做过,不过不是C#的,是Delphi的。
      

  9.   

    你这个问题太难了 ……
    2个进程本来就不不同的内存空间里面 
    用一个程序控制另外一个很难的……
    我有2个办法……
    1.
    既然你有A,B程序的代码……你吧A要操作的东西每个都封装成一个函数……
    然后A运行以后 将这些函数地址发送到一个地方 保存起来用B程序去访问这些地址 并且记录下来,然后注入DLL到A里面,直接用汇编调用这个地址就行2.
    A程序开一个TCP连接……
    B连接 发送命令给A 并让A返回结果给B就OK 第2个比第1个麻烦点 但是要简单的多
      

  10.   

    全用sendmessage吧,
    找到你要操作控件的句柄,
    如给textbox写值  sendmessage(hwnd,WM_SETTEXT,0,"HelloWorld");
    如单击按钮        sendmessage(hwnd,WM_LButtonClick,0,0);
    至于WM_SETTEXT,WM_LButtonClick的值记不得,但在winuser.h文件里找得到的。
      

  11.   

    还有A程序应该要先获得程序B吧,接着就是获得B程序里的控件,再到sendmessage,这些要怎么写,最好就有一个完整的例子
      

  12.   

    参考下
    http://blog.csdn.net/lovefootball/archive/2007/09/14/1784882.aspx如果对API不了解的话
    先去补充下相关知识
      

  13.   

    这种东西用C#写不太好吧,用C 或者C++更好一点
      

  14.   

    其实我觉的没有必要这么做,B来检测A,可以,如果A意外的退出或者出错后,B重新启动A
    但是你想问的是A启动以后如何开始工作吧?比如说工作之前需要设置一些什么的。其实这些可以再第一次启动(也就是人为的启动服务)后,将设置之类的保存到一个文档里面,当A出现故障或者等等问题被B重新启动以后,就自动读取文档或者设置然后开始启动服务
    至于如何判断A是第一次启动(也就是不需要或者设置文档,而是由人为的设置,启动)还是由B启动的,可以通过判断设置文档是否存在之类的办法,也就是说A在人为的关闭服务退出的时候,自动删除设置文档,这样应该就可以了
    一个简单的想法,呵呵!
      

  15.   

    有兴趣的可以到这里下载,需要1资源分.
    http://download.csdn.net/source/1550580
      

  16.   

    把程序A发过来,本人帮你写好这个程序B;
    e:[email protected]
      

  17.   

    有源码就好办了。
    最简单的办法就是HOOK. 钩子.