我把一个Windows程序,通过RegisterServiceProcess()函数注册成一个服务程序,
在服务运行到某一时刻需要弹出一个窗口,
我在程序里调用OpenInputDesktop(0, FALSE, GENERIC_ALL);时,
总是返回NULL,这是为什么?按道理在服务程序中调用OpenInputDesktop(0, FALSE, GENERIC_ALL);
不应该返回NULL。是不是和权限有关系?
应该如何改正呢?另外,这个错误是不是和用RegisterServiceProcess()函数注册的服务有关?

解决方案 »

  1.   

    用GetLastError判断一下错误原因。
      

  2.   

    什么操作系统?RegisterServiceProcess是9X中的函数,OpenInputDesktop是NT系列系统的函数,两者怎么会同时调用?
      

  3.   

    在windows 2000 和vista下都不成功
      

  4.   

    Vista好像已经不允许服务与桌面交互了。
    Vista之前,在创建服务的时候,指定服务可以与桌面交互。不能。服务是不能打开窗口的。
      

  5.   

    我看到过一个服务在vista中打开了一个窗口。