• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#实现WinForm随WINDOWS服务一起启动

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一.应用场景

    客户服务器上装的软件越来越多,由原来一个人管理改为几个人同时管理了,因此不同的管理员需要经常进行远程登陆,注销操作。
    服务器上原有的一些程序是windows程序,用户登陆注销后,程序就退出了,咋办?把GUI程序改成windows服务程序是可行的,但客户希望能尽快解决此问题啊,咋办?于是就有了本文的想法,先这样用用吧! 呵呵...

 

二.本文难点

    说起来就一句话,做起来可得考虑以下三个问题:
    1.如程序要访问Oracle数据库,在启动你的程序前,得先将Oracle数据库服务启动。
    2.让Windows服务程序支持启动你的有界面的应用程序。(默认是不能与桌面交互的)
    3.如何让Windows服务获取系统注销信息,以启动相应的GUI程序.


三.关键代码
  3.1 获取系统注销信息
     方法:通过与Microsoft.Win32.SessionEndingEventHandler建关关联获取系统注销信息.

.SystemEvents_SessionEnding);
        }


  3.2 检查并启动Windows服务

 (Exception err)
            {
                Common.wLog(err.ToString());
            }
        }


  3.2 检查并启动对应GUI程序

;
        }


  3.3 为当前Windows服务设置可与桌面交互选项

       为"serviceProcessInstaller1" 的 Committed 事件添加以下操作:

       (注意引入 System.Management 命名空间)

 (Exception err)
            {
                Common.wLog(err.ToString());
            }
        }

 

执行效果: (不再需要手动去设置)

图 1 允许Windows服务与桌面交互参数设置

四.创建Windows服务

Flash格式下载
http://www.cnblogs.com/furenjun/archive/2008/11/24/windowsServiceSample.html

 

 

图 2 创建Windows服务

五.修改参数并启动服务

5.1   运行FRJWindowsServiceSetup.msi安装程序,安装服务. 

5.2修改”MdcMaxServiceSetup”文件夹下的 “FRJWindowsService.exe.config” 文件中的配置信息;

设置在GUI应用程序启动之前需要启动Windows 服务;

本例以Sql2005服务为例.

注意: Sql2005服务器名要根据实际电脑上的Sql2005服务器名来设置;

启动程序的路径同样应根据实际情况来设置;

如要再启动其他Windows服务或程序,可在配置文件中添加;

注意格式:

1. 启动windows服务 key=”ServiceName”+唯一序号  value=”windows服务名称

2. 启动 应用程序  key=”ProgramPath”+唯一序号    value=”应用程序路径信息

图 3   配置文件中的参数设置

点击 开始-->运行,  输入 services.msc 打开服务管理界面.按下图所示操作.

 

 

图 4  启动Windows服务
重启电脑或注销当前用户,隔一段时间再登陆,查看程序运行效

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#判断某个类是否派生某个类或是否实现了某个接口发布时间:2022-07-14
下一篇:
c#通过反射移除所有事件发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap