在Windows 2000 Server中,当两用户同时从远程登录到一服务器上
用户1的应用程序可以给用户2的应用程序窗口PostMessage吗
怎样实现?
谢谢高手
请勿灌水

解决方案 »

  1.   

    可以通过设全局消息来做到 ::RegisterWindowMessage或用管道实现
      

  2.   

    可以用通信进行,比如winsocket
      

  3.   

    可以实现。
    如果你可以对两个登陆客户的进程进行编码的话,只需要加个消息响应函数就可以了
    通讯时使用1进程SendMessage(), 可以2进程接受并立即返回给1进程信息:
               .......
    DWORD dwClicked=0;
    DWORD dwProcId = GetCurrentProcessId();
    LRESULT dwRet = ::SendMessage(g_hwnd, g_uMsgGetClickedTime, dwProcId, (LPARAM)&dwClicked);
             ........如果它们不可以直接编码, 那需要写个钩子注入, 以响应你的消息. 之后如同上.
      

  4.   

    可以使用Socket通信来实现搂住的要求!
      

  5.   

    在Windows 2000 Server中,当两用户同时从远程登录到一服务器上
    用户1的应用程序可以给用户2的应用程序窗口PostMessage吗
    至今还没有切实可行的解决办法
    另外,用户2的应用程序是不可更改的
    我的目的是用用户1的应用程序控制用户2的应用程序
      

  6.   

    先做全局HOOK,嵌入到指定进程后就可以发送消息了
      

  7.   

    给你个变态点的方法,创建一个文件,然后加上访问权限,另外一个进程要交换数据的时候,直接打开文件读取。要不然就用socket,每个进程开一个Socket,互相发数据
      

  8.   

    我再把我的目的重新描述一下
    在Windows 2000 Server中,当两用户同时从远程登录到一服务器上
    用户1的应用程序可以给用户2的应用程序窗口PostMessage吗
    其中用户2的应用程序是不可更改的,不是自己写的程序,例如微软的word。我的目的就是实现跨用户控制其他窗口
    怎样实现?大家需要注意的是不仅仅是跨进程,而且是跨用户,到现在我还没有真正行之有效的途径。期待更详尽的解答
      

  9.   

    windows 上窗口对象属于Desktop,一个Desktop中可以有多个窗口,
    Desktop属于Workstation,一个Workstation中可以有多个Desktop,
    但只有一个ActiveDesktop,这就是各个用户看到的Desktop
    发送消息要在同一个Desktop
    不同的用户在不同的Workstation中,
    用SetProcessWindowStation,
    SwitchDesktop来切换Workstation和Desktop才可以发送消息