C#设置服务允许与桌面交互,并且启动服务

        private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
        {
            try
            {
                ConnectionOptions coOptions = new ConnectionOptions();
                coOptions.Impersonation = ImpersonationLevel.Impersonate;
                ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions);
                mgmtScope.Connect();
                ServiceController service = new ServiceController(this.serviceInstaller1.ServiceName);
                ManagementObject manage = new ManagementObject(string.Format("Win32_Service.Name='{0}'", service.ServiceName));
                ManagementBaseObject InParam = manage.GetMethodParameters("Change");
                InParam["DesktopInteract"] = true;
                ManagementBaseObject OutParam = manage.InvokeMethod("Change", InParam, null);
                //启动服务
                service.Start();
            }
            catch (Exception ex)
            {
                SetLog("设置服务允许与桌面交互异常:" + ex);                
            }
        }

        /// <summary>
        /// 记录日志
        /// </summary>
        /// <param name="str"></param>
        public static void SetLog(string str)
        {
            string log = ConfigurationManager.AppSettings["log"];
            if (File.Exists(log))
            {
                //如果log大于100k,则删除此文件重新创建
                if (new FileInfo(log).Length > 1024 * 100)
                {
                    File.Delete(log);                    
                }
            }
            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(log, true))
            {
                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss  ") + str);
            }
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值