使用服务启动应用程序

本文关键字:应用程序 启动 服务 | 更新日期: 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