window服务调用技巧

在使用windows服务时,安装能有些不太方便,本文就安装时就使用的技巧提出一点方式,以供大家参考:

windows服务的优点还是加以说明 的1、能够自动运行(需要预先设置运行模式); 2、不要求用户交互,(特别适合在服务器上进行运行);3、在后台运行,如果程序运行时,特别超耗费时间,如备分数据,删除大量数据,多线程捕获数据等等),都可能使用。

但是在安装时,经常会找不到这个关键的文件installutil.exe,因为此文件是用来支持安装过程的。

详细介绍见http://www.cnblogs.com/YanPSun/archive/2010/05/22/1741381.html,

这是就给出一种调用的方式方法。

  try
            {
                System.Uri uri = new Uri(typeof(string).Assembly.CodeBase);
                string RuntimePath = System.IO.Path.GetDirectoryName(uri.LocalPath);
                string strInstallUtilPath = System.IO.Path.Combine(RuntimePath, "InstallUtil.exe");
                foreach (string arg in System.Environment.GetCommandLineArgs())
                {
                    Console.WriteLine(arg);
                    if (arg == "/install")
                    {
                        System.Diagnostics.Process.Start(strInstallUtilPath, "\"" + System.Windows.Forms.Application.ExecutablePath + "\"");
                        return;
                    }
                    else if (arg == "/uninstall")
                    {
                        System.Diagnostics.Process.Start(strInstallUtilPath, "/u \"" + System.Windows.Forms.Application.ExecutablePath + "\"");
                        return;
                    }
                    else if (arg == "/client")
                    {
                        // 启动客户端
                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);

                        using (Form1 frm = new Form1())
                        {
                            Application.Run(frm);                           
                        }
                        return;
                    }                  
                }
            }
            catch (Exception ext)
            {
                Console.WriteLine(ext.ToString());
                return;
            }

 还要进一步说明的,服务开始执行的语句放到

   protected override void OnStart(string[] args)
        {
           ’执行动作的开始
        }
 

 停止服务的语句放到

  #region 停止服务线程.
        protected override void OnStop()
        {
         '停止工作        

            base.OnStop();
        }
        #endregion

以上工作是受服务启动,和停止来执行的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值