如题,或者可以被枚举到,但不可以被SwitchDesktop切换

解决方案 »

  1.   

    HOOK EnumDesktops和SwitchDesktop这两个API,呵呵
      

  2.   

    如果不想被SwitchDesktop切换,可以试一下使用作业,设置作业对象的基本用户界面限制的位标志为:JOB_OBJECT_UILIMIT_DESKTOP。
      

  3.   


    HDESK WINAPI CreateDesktop(
      __in        LPCTSTR lpszDesktop,
      __reserved  LPCTSTR lpszDevice,
      __reserved  DEVMODE *pDevmode,
      __in        DWORD dwFlags,
      __in        ACCESS_MASK dwDesiredAccess,//这个上面做下手脚
      __in_opt    LPSECURITY_ATTRIBUTES lpsa
    );这个成员变量里面不要加DESKTOP_SWITCHDESKTOP,就不会被切换了
      

  4.   

    Tr0j4n:
    多谢你的回复,不过我创建的时候不加DESKTOP_SWITCHDESKTOP,也是没有用,如果其他进程枚举到了我创建的DESKTOP,然后他调用OpenDesktop设置这个标志,还是可以切换回来的不知道还有没有其他的方法
      

  5.   

    cnzdgs:
    如何指定安全属性?最后一个参数?
      

  6.   

    winsta0的winlogon一般程序是改不了它的安全属性的,你可以参考下
      

  7.   

    多谢各位,12楼的说法给了我启发,使用SetSecurityInfo方法,实现了我需要的不能切换的功能(不能枚举还是没有实现).
      

  8.   

    請教 0313700000 
    我遇到了跟您同樣的問題!!
    可以稍微 貼一下 程式片段 讓我參考嗎!!
    關於您用 CreateDesktop 和 SetSecurityInfo 達到禁切換的功能!!