知道窗口的类名可以用FindWindow得到窗口的句并,从而可以向这个窗口发送消息,我的做法是找到这个窗口然后发消息给这个窗口让程序退出,我计算机上有2个用户,当我在管理员下和user模式下都运行改程序,在管理员模式下我发消息可以让程序退出,但是切换到user模式下发现该程序还在运行,请问各位大侠这是为什么?如何才能让user模式下的程序也退出呢?

解决方案 »

  1.   


    你想user登陆的程序也退出的话,你要以user权限去运行你那程序.一般做法是找到user登陆用户运行的explorer.exe,然后复限这进程的权限,以这权限运行你的程序,那么就可以连user模型下的程序也退出.
      

  2.   

    你的意思是说我在管理员模式下运行该程序要用user的权限来运行?这样不合理吧,能不能麻烦你说详细一点,我在 user模式的OS下运行该程序肯定是以user的权限运行的呀,而且你说的在管理员模式下如何去找user用户登陆的explorer.exe,这个其实可以做到,可以结束这个进程,从而达到将两个模式下都在运行的程序都结束,但是如果在管理员模式下结束该进程的话,user模式下的程序也可以退出,我的程序在右下角有一个icon,程序已经退出了,但是icon还在,要鼠标移动到它上面才能消失,不知道这是什么原因?
      

  3.   

    使用com+代理试试,假设user模式下是session n,让程序运行时代理一个自定义的COM+对象,支持关闭这个程序的接口。 在管理员使用模式下使用L"Session:n!clsid:XXX"创建这个对象,然后调用其接口,去关闭user模式下的程序
      

  4.   

    com+不会用,楼上的能不能贴一段代码出来呀,分不够再加
      

  5.   

    你查看COM+组件编程技术内幕的随书源代码的dllnanny的例子,看看怎么使用微软提供的Surrogates技术
    创建时使用L"Session:n!clsid:XXX"创建这个对象即可
      

  6.   

    书和代码我都下载下来了,你说的dllnanny都没有找到,是不是名字说错啦
      

  7.   

    COM+组件编程技术内幕(最新版)》的随书源代码\Surrogates\DllNanny
      

  8.   

    能不能给个下载地址,或者麻烦你传一份给我吧,不胜感激!!谢谢了[email protected]
      

  9.   

    源码我已经下载下来了但是没有找到\Surrogates\DllNanny这个文件夹
      

  10.   

    我下的就是这个,但是没有找到你说的\Surrogates\DllNanny
      

  11.   

    怎么可能!!!ProgramWithCOMPlus.src.ccrun.185124.rar解开即可。
      

  12.   

    大哥你能不能发一份给我嘛,我下的真的没有找到[email protected]
      

  13.   

    万分感激啊!我最近在做其他的,好久没有上CSDN了
      

  14.   

    CreateProcessWithLogon, 
    CreateProcessWithLogonW