1、如何取得已运行程序的窗口中所包含的所有控件?
2、如果已运行程序中有按钮,点击本程序中的按钮就相当于点击已运行程序的指定按钮?最好有源码。

解决方案 »

  1.   

    看看有关com的书吧
    你问得太大了 
    说两天也说不完
      

  2.   

    发消息!
    如果都是自己的程序发消息没问题!
    但是如果是其他的程序,就用Findwindow找按纽,然后在sendmessage
    QQ自动聊天程序都是这样做的
      

  3.   

    好象是先要知道窗口的caption然后用API查找,返回窗口的句柄,然后在窗口上再查控件的句柄,然后发消息,也可以向一定的坐标发消息。其他的就不知了。
      

  4.   

    yayx(yayx) 是其它的程序。如何用Findwindow找按钮?
      

  5.   

    在查找已经运行的程序时,用窗口的Caption不值得提倡,<<Delphi5开发人员指南>>里在讲到防止一个程序的重复执行时提供了一个很好的方法。
      

  6.   

    TO: e5022(e5022) 如何查找控件?
      

  7.   

    Findwindow
    找窗体
    用FindwindowEX找控件了
      

  8.   

    TO  ljmanage(过客) 
    能给一个小例子不?
      

  9.   

    各位大侠,要救救我哦例子可发到: [email protected]
     
    还可以加100分甚至300分。明天再来看。
      

  10.   

    你怎么不死心呢 有时间多找点资料看看就算 你发信息到一个窗体 并且另一个窗体受到
    但是她不会作出你想要的反映(关闭 最大最小除外)你问的是微软的ole内嵌技术 那能一两千句话能说清楚  相关技术 com
      

  11.   

    用BROADCASTSYSTEMMESSAGE()发送一个自定义消息,取得想被控制程序的句柄.
    以后的就不用我说了吧.
      

  12.   

    再问一下,是不是真的只有COM技术才能解决?
    如果真是那样.我就结了.
    因为我最近正在学COM技术...
      

  13.   

    我想起来了  不用com技术也可以
    有一些 游戏外挂就是用的这个技术
    ljmanage(过客) 说得有点意思
    不过给另一窗体发消息 不是很简单
      

  14.   

    忘了说了 是一些底层的api
    不过我不是很清楚
      

  15.   

    如果要在两个或多个应用程序之间发送消息,那么最好要调用RegisterWindowMessage()函数。这个函数能够确保每个应用程序使用一致的消息编号。RegisterWindowMessage()需要传递一个以null结束的字符串,并返回一个范围从$C000到$FFFF的新的消息常量。这就意味着,在要发送消息的应用程序之间,每个应用程序都必须传递相同的字符串给RegisterWindowMessage()函数;而Windows也会返回相同的消息常量值。调用RegisterWindowMessage()的真正好处是,对于任何给定的字符串将返回一个在整个系统中都唯一的消息常量,这样,就可以放心地向所有的窗口广播消息。不过,处理这样的消息稍稍麻烦一点,因为只有在运行时才知道消息的标识符,所以无法调用那些标准的API函数,只能覆盖一个控件的WndProc()或DefaultHandler()等方法。注意RegisterWindowMessage()函数的返回值在不同的窗口会话是不同的,返回值只在运行时有意义。
      

  16.   

    怎么越说越高深了.
    我本以为一个用几个简单的API函数就可以搞定的问题(我不知道用哪几个和如何用!)
    居然变得如此复杂??问题到底何解?