比如我想写个程序,实现给另外一个程序的菜单发送消息,打开该程序对应菜单的功能,例如可以控制WORD菜单“保存”,这样就可以在别的程序控制word的自动保存如何实现?

解决方案 »

  1.   

    头回听说winexec()还可以实现向另一个进程发控制消息
      

  2.   

    自定义消息怎么弄?如果只是控制word或者office的,可以用vba实现,如果还有别的程序,可以发送类似ctrl+s的按键组合给程序,也可以发送鼠标击发动作
      

  3.   

    发出'鼠标击发动作'可以针对控件而不是针对鼠标位置发出吗?
    就是说我想在哪一个确定控件上用程序模拟出鼠标点击动作.
    而不想单纯用SetCursorPos 来在一个地方点击.怎么办?
      

  4.   

    把目标窗体最上面,然后模拟键盘发送快捷键消息...这样就要求这个操作必须定义了快捷键,并且必须为最上层窗体另一个发法是 用鼠标 setcursor,getcursor,windowfrompoint 等等api,挺麻烦
      

  5.   

    用WINAPI获取窗体的钩子(或者有别的叫法)之后,再获取其窗体元件、菜单的钩子,再给目标发送WINDOWS消息(例如鼠标左键单击)来做~~
    给你几个参考的API函数:
    获取窗体:FindWindow、
    获取窗体元件:FindWindowEx、
    获取菜单:GetMenu、GetSubMenu
    发送WINDOWS消息:SendNotifyMessage
    ……
    详细请找WIN32 API的函数大全
      

  6.   

    用HOOK
    拦截消息就可以了
    找些资料看吧,
      

  7.   

    肯定得用自定义消息。
    1。在受控程序中些好自定义消息处理过程。
    2。在主控程序中发出消息。
       用FindWindow得到受控程序句柄。
       用postmessage发出消息。
       注意消息号别和系统的重上。
      

  8.   

    HWND FindWindow(
    LPCTSTR lpClassName, // pointer to class name
    LPCTSTR lpWindowName // pointer to window name
    假设目标窗体在最上面,你怎么自动获取它的类名和窗口标题?