• 让你的GUI程序随WINDOWS服务一起启动


     
    本文内容
    一.应用场景
    二.本文难点
    三.关键代码
    四.创建Windows服务
    五.修改参数并启动服务

     源码下载

    一.应用场景

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

    二.本文难点

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


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

    Code


      3.2 检查并启动Windows服务
      

    Code


      3.2 检查并启动对应GUI程序
      

    Code


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

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

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

    Code

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

    图 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服务
    重启电脑或注销当前用户,隔一段时间再登陆,查看程序运行效果。
     
  • 相关阅读:
    Discuz!如何设置板块主题分类
    Discuz X2.5 模板目录结构注释说明
    帖子标题颜色-----高亮
    discuz收听
    Discuz伪静态导致 除了首页,其他访问不了
    tag标签划过
    如何取消在线会员右边的下拉菜单,看图
    discuz邮件设置
    2017 ACM/ICPC Asia Regional Qingdao Online
    HDU 5769 Substring 后缀数组
  • 原文地址:https://www.cnblogs.com/furenjun/p/windowsService.html
Copyright © 2020-2023  润新知