windows服务启动有界面的程序
大家写windows服务守护进程的时候,肯定会遇到启动的程序看不到界面,只能在任务管理器里面看到xxx.exe问题.
发现可能有如下情况
a.无论是开机,还是程序被关掉后,守护服务启动的程序只能看到任务管理器exe的进程,看不到界面;
b.开机后,守护服务自动启动程序,只能看到进程里面有exe进程,看不到界面,但是杀掉进程重启后,能看到界面;
我来给出解决方法:
1.服务中的启动程序代码用如下方法:
string appStartPath = @"C:\Test.exe";
IntPtr userTokenHandle = IntPtr.Zero;
ApiDefinitions.WTSQueryUserToken(ApiDefinitions.WTSGetActiveConsoleSessionId(), ref userTokenHandle); ApiDefinitions.PROCESS_INFORMATION procInfo = new ApiDefinitions.PROCESS_INFORMATION();
ApiDefinitions.STARTUPINFO startInfo = new ApiDefinitions.STARTUPINFO();
startInfo.cb = (uint)Marshal.SizeOf(startInfo); ApiDefinitions.CreateProcessAsUser(
userTokenHandle,
appStartPath,
"",
IntPtr.Zero,
IntPtr.Zero,
false,
0,
IntPtr.Zero,
null,
ref startInfo,
out procInfo); if (userTokenHandle != IntPtr.Zero)
ApiDefinitions.CloseHandle(userTokenHandle);
需要下载Cjwdev.WindowsApi.dll,很多资源,自己baidu去下载
2.必须要有一个开机不输入密码就可以登录的用户,使用命令control userpasswords2设置.
以上很简单的两点,我是测试过好多次了.发现是这个规律的时候,我不会告诉我你,我是多么的兴奋.[当时我在本地的机器上,着确实是成功了的]
有人写了代码后,可能认为不需要用第二点中增加自动登录的用户,那可能是本机只有一个用户造成的(没有测试,推测).
需要这种守护进程的电脑,一般都是服务器,而服务器一般都是远程操作.而且客户一般不会给你administrator账户,而是给你一个其他的账户.
(一般客户只看程序的界面,不会去查看进程,所以,没有界面,他就觉得程序没有启动.)
所以上面这种情况,是万恶的客户逼我做出来的,然后是我苦逼的做了各种实验得到的结果.
别忘记点赞.
==========================
补充:
上面的问题解决方法有时候在某些机器上不行.不过在本机确实是测试通过的,然后在服务器上设置后,依然不行.
又给出一种新的解决方法:在服务器安装vnc服务端.(大家觉得很奇怪吧,不过这方法真的可行).
注意:VNC不可用remote安装的哦,必须插上显示器,鼠标键盘,亲自登陆到机器上安装.
========================
以下为其他网友的解决方法,没有验证过.你可以尝试
http://www.cnblogs.com/qfb620/archive/2009/08/05/1539557.html
windows服务启动有界面的程序的更多相关文章
- C#穿透session隔离———Windows服务启动UI交互程序
在Windows服务里面启动其他具有界面的应用程序,需要穿透session隔离,尝试了很多种方法,都可行,现在一一列举下来,并写下几个需要注意的地方. 需要注意的地方 首先要将服务的Account属性 ...
- C#判断程序是由Windows服务启动还是用户启动
在Windows系统做网络开发,很多时候都是使用Windows服务的模式,但在调度阶段,我们更多的是使用控制台的模式.在开发程序的时候,我们在Program的Main入口进行判断.最初开始使用Envi ...
- C# windows服务,解决应用程序开机自启问题
最近在东营做一个超市购物的项目,业务体量很小,是仅供内部员工使用的内网应用程序,其中涉及一个商品数据同步的winform应用程序,有一个问题就是服务器重启后,必须登录服务器操作系统,手动启动才行,于是 ...
- MongoDB做为一项windows服务启动
MongoDB做为一项windows服务启动 Windows版本安装 MongoDB的官方下载站是http://www.mongodb.org/downloads,可以去上面下载最新的对应版本,有32 ...
- 玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案
将VS创建的Windows服务项目编译生成的程序,通过命令行 “服务.exe -Service”注册为Windows服务后,就可以通过服务管理器进行管理了. 问题 通过服务管理器进行启动的时候,发现服 ...
- 玩转Windows服务系列——Windows服务启动超时时间
最近有客户反映,机房出现断电情况,服务器的系统重新启动后,数据库服务自启动失败.第一次遇到这种情况,为了查看是不是断电情况导致数据库文件损坏,从客户的服务器拿到数据库的日志,进行分析. 数据库工作机制 ...
- windows服务启动 1053错误
1.问题描述 今天在启动一个Windows服务时,服务启动不了,且提示:1053错误 那么是什么导致了1053错误呢? 2.他山之石 百度了一下,发现有人作出下面的解释并给出了解决方法: “常常是因为 ...
- Windows服务启动进程----Cjwdev.WindowsApi.dll
windows服务下无法启动外部程序 做一个windows服务监听服务,涉及到windows服务启动外部程序的一个过程,但是调试测试发现,无法简单的用process.start()这种方法, 原因是在 ...
- Windows连接已有界面的Ubuntu Linux
Windows连接已有界面的Ubuntu Linux xrdp方式windows 10连接ubuntu 18.04 LTS 1. Ubuntu设置 Ubuntu的设置->Sharing项修改为下 ...
随机推荐
- git reflog -- 显示所有提交
格式: git commit [选项] <path> 选项 git commit -a 提交所有改动的文件(a -- all) git commit -m 提交说明( ...
- ch2-vue实例(new Vue({}) 属性与方法 声明周期)
Vue 实例1 每个Vue.js都是通过创建一个Vue的根实例启动的 var vm = new Vue({}) 2 扩展Vue构造器,用预定义选项创建可复用的组件构造器 var MyComponent ...
- HDU1166 数状数组
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)
以前在windows2003里,使用的是iis6.0,那时常使用的URL重写组件是iisrewrite,当服务器升级到windows2008R2时,IIS成了64位的7.5,结果iisreite组件是 ...
- Mysql安装后打开MySQL Command Line Client闪退解决方法
1.开始菜单下;Mysql--->mysql server 5.6-->mysql command line Client ---右击,选择属性 2.在属性下查看目标位置: 3.将安装目录 ...
- Windows系统下八大具有高逼格的DOS命令之一【ping】
ping命令: ping是用来检测网络是否通畅或者查询网络连接速度的一个基础命令.作为一名对计算机痴迷的爱好者来说,ping命令是需要第一个掌握的DOS命令.它所利用的原理是这样的:网络上的机器都有唯 ...
- 【原创】修复ios输入框获取焦点时不支持fixed的bug
前些日子,做了一个手机站的项目,有一个页面是这样的, 有一个固定(position:fixed)的头部和底部导航,中间是一些表单内容,没啥特别的.但是到了ios中,正常滚动页面没有问题,一旦触发了文本 ...
- javaScript基础的基础
JavaScript是一个脚本语言,需要有宿主文件,他的宿主文件是HTML文件. 与JAVA没有直接关系 一般写在 1.head里面 2.body里面 3.</html>后面 一般写在&l ...
- Philosophy is systematic reflective thinking on life.
1. perfect coding 逻辑思维.抽象思维.发散思维 knowledge application design 2. Java Object: h ...
- 吾八哥学Python(六):运算符与表达式
上篇简单学习了数学运算符,今天来学习下完整的Python运算符与表达式,具体看下面的表格吧! 表1 运算符与它们的用法 运算符 名称 说明 例子 + 加 两个对象相加 3 + 5得到8.’a’ + ‘ ...