C#通过Windows服务启动其他窗体程序,运行后,服务显示已运行,在任务管理器中,进程列表中可以看到窗体程序状态正在运行,但没有显示相应的窗体,服务列表中,已设置允许页面交互,监听服务的代码中,也设置了,允许页面交互,但还是没有界面显示,这该怎么解决?
此路不通,详见微软关于Window Service的说明文档。
比如这篇: https://msdn.microsoft.com/en-us/library/windows/desktop/bb756986.aspx
既然你问的是该如何解决,我也说下吧,不能在Service中干这事,其他方法你随便想。
一般是另外开发一个窗口程序,监听Service信号。
服务通常是系统用户,你用系统用户去启动一个窗体应用程序,就看不到界面了。
您好,那要做哪些操作,才可以让界面正常显示,而不影响操作。
爱编程的大叔,正解。就是win7以后系统的Session 0隔离,为了安全弄得。所以从服务启动其他的窗体程序会看不到界面。可以另开发一个窗口程序(这个程序也设置成开机启动),通过WCF与windows service程序通信(因为socket会占端口,wcf可以配置成通过命名管道的方式通信不必占端口。另外共享内存的方式应该也可以,没做过。),窗口程序接收到windows service的信号后打开第三方的应用。
既然如上面所说的,感觉如果只是为了启动其他的窗口干脆就不用windows service了,如果还要作为其他的后台服务器处理一些东西才有必要保留windows service这个部分。
您好,我要实现程序的7*24保持运行状态,当前找到的解决方法就是通过Windows服务的方式启动,但不显示界面,所以,正在查找解决方法,或者其他方式实现,窗体应用程序7*24运行,包括断点后,电脑重启,停留待机界面时,程序也可以自动启动,但目前未找到其他的方法。
@小小菜CAI: 是否可以在用户开启程序windos form程序的时候修改注册表,添加到开机自动启动的列表中呢。
帮你百度了一个大侠的文章:http://www.cnblogs.com/gnielee/archive/2010/04/07/session0-isolation-part1.html
不知道你看过没有,哈哈。
winform程序方开机启动就行了。
这个之前实现过
我也有相同的疑问,不过我的是在Windows上能通过服务启动外部程序,安装到Windows server(服务器),就启动不了了,知道是环境有问题,具体不知道是那个环境有问题,如果你只需要在Windows上启,我给你方法
– 陪你葬忆拾荒 6年前你这问题三年了啊,解决了没,解决了给我个方法呗
– 陪你葬忆拾荒 6年前