首页 新闻 搜索 专区 学院

C#通过Windows服务启动其他窗体程序

0
悬赏园豆:10 [待解决问题]

C#通过Windows服务启动其他窗体程序,运行后,服务显示已运行,在任务管理器中,进程列表中可以看到窗体程序状态正在运行,但没有显示相应的窗体,服务列表中,已设置允许页面交互,监听服务的代码中,也设置了,允许页面交互,但还是没有界面显示,这该怎么解决?

小小菜CAI的主页 小小菜CAI | 初学一级 | 园豆:36
提问于:2015-11-24 11:50

我也有相同的疑问,不过我的是在Windows上能通过服务启动外部程序,安装到Windows server(服务器),就启动不了了,知道是环境有问题,具体不知道是那个环境有问题,如果你只需要在Windows上启,我给你方法

陪你葬忆拾荒 1年前

你这问题三年了啊,解决了没,解决了给我个方法呗

陪你葬忆拾荒 1年前
< >
分享
所有回答(5)
0

此路不通,详见微软关于Window Service的说明文档。

比如这篇: https://msdn.microsoft.com/en-us/library/windows/desktop/bb756986.aspx

 

既然你问的是该如何解决,我也说下吧,不能在Service中干这事,其他方法你随便想。

一般是另外开发一个窗口程序,监听Service信号。

爱编程的大叔 | 园豆:30664 (高人七级) | 2015-11-24 12:06
0

服务通常是系统用户,你用系统用户去启动一个窗体应用程序,就看不到界面了。

Firen | 园豆:5483 (大侠五级) | 2015-11-24 12:37

您好,那要做哪些操作,才可以让界面正常显示,而不影响操作。

支持(0) 反对(0) 小小菜CAI | 园豆:36 (初学一级) | 2015-11-24 14:21
0

爱编程的大叔,正解。就是win7以后系统的Session 0隔离,为了安全弄得。所以从服务启动其他的窗体程序会看不到界面。可以另开发一个窗口程序(这个程序也设置成开机启动),通过WCF与windows service程序通信(因为socket会占端口,wcf可以配置成通过命名管道的方式通信不必占端口。另外共享内存的方式应该也可以,没做过。),窗口程序接收到windows service的信号后打开第三方的应用。

既然如上面所说的,感觉如果只是为了启动其他的窗口干脆就不用windows service了,如果还要作为其他的后台服务器处理一些东西才有必要保留windows service这个部分。

于为源 | 园豆:984 (小虾三级) | 2015-11-24 14:29

您好,我要实现程序的7*24保持运行状态,当前找到的解决方法就是通过Windows服务的方式启动,但不显示界面,所以,正在查找解决方法,或者其他方式实现,窗体应用程序7*24运行,包括断点后,电脑重启,停留待机界面时,程序也可以自动启动,但目前未找到其他的方法。

支持(0) 反对(0) 小小菜CAI | 园豆:36 (初学一级) | 2015-11-24 14:57

@小小菜CAI: 是否可以在用户开启程序windos form程序的时候修改注册表,添加到开机自动启动的列表中呢。

帮你百度了一个大侠的文章:http://www.cnblogs.com/gnielee/archive/2010/04/07/session0-isolation-part1.html

不知道你看过没有,哈哈。

支持(0) 反对(0) 于为源 | 园豆:984 (小虾三级) | 2015-11-24 15:19
0

winform程序方开机启动就行了。

茂茂 | 园豆:2860 (老鸟四级) | 2015-11-24 16:44
0

这个之前实现过

jello chen | 园豆:7096 (大侠五级) | 2015-11-24 22:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册