关于在C# Windows服务中启动 exe 文件, 不能显示出exe文件的窗体的问题. 请帮助!

时间:2022-02-26 08:05:52
大家好 
    我由于要管理服务器上的几个应用程序,有时,应用程序可能会死掉.需要重启,我用C#写了一个Windows服务程序,定时监视应用程序有没有死掉. 现在问题来了,虽然可以监视并在应用程序死掉后自动启动, 但是, 被启动的应用程序的窗体却不显示了.(ProcessStartInfo.WindowStyle=ProcessWindowStyle.Normal,还是没效果.) 
    请问有没有哪位知道原因的,请告诉我,谢谢!

12 个解决方案

#1


会不会进程本来就还存在,没有关闭,应先杀掉进程再重新用process.start();

#2


不是,需要被启动的应用程序的进程确实被启动了,在资源管理中可以看到.只是,被启动的应用程序的主窗体不能显示出来.

#3


myProcess.StartInfo.CreateNoWindow = false;

#4


我是希望显示被启动的应用程序的窗体.不是需要ProcessStartInfo.CrateNoWindow = false.

#5


服务是以LocalSystem身份运行的.

#6


废了, 没人知道如何解决吗?

#7


up

#8


myProcess.StartInfo.CreateNoWindow = false;
这句不就是表示被启动的程序是需要窗体的么?

#9


这个问题是可以解决,但是不完美:你可以用服务管理器->找到该服务,右键,属性,勾上"允许交互"就可以了,但是这样不完美

#10


sorry ,i have no idea~~~~~~~~~~~~~~~~~~

#11


fishermen(渔夫)的可以实现


但有没有更好的方法,在代码中实现

#12


服务注册的时候可以指定运行权限和是否允许交互。
把你服务注册的代码修改一下就行了。

#1


会不会进程本来就还存在,没有关闭,应先杀掉进程再重新用process.start();

#2


不是,需要被启动的应用程序的进程确实被启动了,在资源管理中可以看到.只是,被启动的应用程序的主窗体不能显示出来.

#3


myProcess.StartInfo.CreateNoWindow = false;

#4


我是希望显示被启动的应用程序的窗体.不是需要ProcessStartInfo.CrateNoWindow = false.

#5


服务是以LocalSystem身份运行的.

#6


废了, 没人知道如何解决吗?

#7


up

#8


myProcess.StartInfo.CreateNoWindow = false;
这句不就是表示被启动的程序是需要窗体的么?

#9


这个问题是可以解决,但是不完美:你可以用服务管理器->找到该服务,右键,属性,勾上"允许交互"就可以了,但是这样不完美

#10


sorry ,i have no idea~~~~~~~~~~~~~~~~~~

#11


fishermen(渔夫)的可以实现


但有没有更好的方法,在代码中实现

#12


服务注册的时候可以指定运行权限和是否允许交互。
把你服务注册的代码修改一下就行了。