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

原创 2013年12月03日 17:54:47
        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);
            }
        }


C# 编写Windows服务并设置为“允许服务与桌面交互”

本文信息来源于网络,本人只是汇总。VS创建项目,项目类型选择Window服务为服务创建安装程序1.. 返回到 Service1 的“设计”视图。 2.. 单击设计器的背景以选择服务本身,而不是它...

设置c#windows服务描述及允许服务与桌面交互的几种方法

方法一: 在ProjectInstaller.cs重写 install() ,Uninstall()方法 public override void Install(IDictionary st...

解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离

在某国外大型汽车公司BI项目中,有一个子项目,需要通过大屏幕展示销售报表,程序需要自动启动和关闭。开发人员在开发过程中,发现在Win7的service中不能直接操作UI进程,调查过程中,发现如下相关资...
  • kissqw
  • kissqw
  • 2012年02月16日 14:33
  • 16182

解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离

解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离 分类: .NET 2012-02-16 14:33 1161人阅读 评论(2) 收藏 ...

使用WTSGetActiveConsoleSessionId()的VISTA服务与桌面交互

win7uac中的一些问题本来想写个文章,发现已经有写好的了,而且写的很好,就转过来,也是csdn上的 摘自:http://blog.csdn.net/felixz/archive/2006/10/...
  • zhulinu
  • zhulinu
  • 2013年10月11日 19:04
  • 489

windows WTS 服务与桌面交互

Windows Vista 对快速用户切换,用户账户权限,以及服务程序所运行的会话空间都作了很大的改动,致使一些原本可以工作的程序不再能够正常工作了,我们不得不进行一些改进以跟上 Vista 的步伐。...

解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离

服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的组成部分。我们可以把服务想像成一种特殊的应用程序,它随系统的“开启~关闭”而“开始~停止”其工作内容,在这期间无需任何...
  • whatday
  • whatday
  • 2014年11月05日 12:57
  • 1267

解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离

文章来源:http://www.cnblogs.com/therock/articles/2261371.html 服务(Service)对于大家来说一定不会陌生,它是Windows 操作系统重要的...
  • daiafei
  • daiafei
  • 2015年02月06日 16:32
  • 1013

C#实现服务端和客户端交互

服务端监听客户端连接
  • lLiuCl
  • lLiuCl
  • 2017年11月21日 16:47
  • 27
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#设置服务允许与桌面交互,并且启动服务
举报原因:
原因补充:

(最多只允许输入30个字)