使用服务启动应用程序
本文关键字:应用程序 启动 服务 | 更新日期: 2023-09-27 18:00:27
我想通过服务运行一个用c#winform制作的应用程序。我已经完成了代码,但应用程序没有启动,即使服务成功启动,也没有引发异常。
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("starting Kb");
try
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = @"C:'Program Files (x86)'Invisual E. Inc'KeyboardSetup'keyboard.exe";//Exe Path
myProcess.StartInfo.CreateNoWindow = false;
myProcess.EnableRaisingEvents = true;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
myProcess.Start();
ProcessWindowStyle ws = myProcess.StartInfo.WindowStyle;
if (ws == ProcessWindowStyle.Hidden)
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
eventLog1.WriteEntry("started");
}
catch (Exception c)
{
eventLog1.WriteEntry(c.Message);
}
}
日志文件不显示任何异常。
目的是在窗口的欢迎屏幕上启动应用程序,以便用户可以使用定制的键盘。
什么操作系统?在Vista及以后的版本中,您无法从服务创建GUI(这是一个安全缺陷,而且很难看…)有一个用户0会话显示了从Vista开始由服务启动的GUI。
为什么不为您的应用程序创建一个注册表项和/或启动项,以便在安装应用程序的用户登录时启动?或者按照这里的信息实现一个交互式服务。
服务通常在登录用户以外的用户下运行,因此该服务没有可用于显示任何windows窗体的桌面,因此没有显示t的原因。
我认为你需要找到另一种方法,因为尽管winforms应用程序可以启动服务,但我不相信可以用另一种方式。
问候
AJ