zoukankan      html  css  js  c++  java
  • windows服务启动的进程无窗口

    勾选允许服务与桌面交互

    指服务是否在桌面上提供用户界面,当服务启动后不论是谁登录都能使用。只有作为 LocalSystem 帐户(由“此帐户”指定)运行时,该选项才能使用。
    如果一个服务需要界面(比如跳出一个对话框),接受用户的输入,接收键盘鼠标消息等等,必须选中“允许服务与桌面交互”.

    因为没有解决跨SESSION的问题,大致原理是这样的:
    1、服务程序必须设置成可与桌面交互,看看MSDN中的创建服务选项,可以找到这一项,这是能显示窗口的前提,不需要使用CreateProcessAsUser。XP及之前的版本这样做就OK了,下面的步骤针对VISTA/WIN7。
    2、服务程序位于SESSION 0,桌面程序位于SESSION 1-X,通常是1,远程桌面就是其它的数了。跨SESSION的进程之间的通信方式很少,除非用SOCKET或管道,窗口就别想了,显示到另一个SESSION的桌面是不可能的。记住这点。
    3、服务进程要想在桌面显示窗口,必须克隆一份自身进程的副本出来,当然是以目标SESSION身份克隆,新进程副本就位于目标SESSION中了,这个时候在副本进程里显示窗口就行了。

    https://msdn.microsoft.com/en-us/library/aa383840%28VS.85%29.aspx

     

  • 相关阅读:
    键盘输入thisisunsafe
    vscode
    iterm2 rz sz
    homebrew镜像更换
    mac
    homebrew下载不成功
    shutil:高层文件操作
    tempfile:临时文件系统对象
    linecache:读取文本文件的指定内容
    fnmatch:Unix式glob模式匹配,简单场景下可以代替正则
  • 原文地址:https://www.cnblogs.com/qook/p/5230732.html
Copyright © 2011-2022 走看看