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

本文信息来源于网络,本人只是汇总。

VS创建项目,项目类型选择Window服务

为服务创建安装程序

1.. 返回到 Service1 的“设计”视图。

2.. 单击设计器的背景以选择服务本身,而不是它的任何内容。

3.. 在“属性”窗口中,单击属性列表下面灰色区域中的“添加安装程序”链接。

默认情况下,向您的项目添加包含两个安装程序的组件类。将该组件命名为

ProjectInstaller,它包含的安装程序分别是服务的安装程序和服务关联进程的安装程

序。

4.. 访问 ProjectInstaller 的“设计”视图,然后单击“ServiceInstaller1”。

5.. 在“属性”窗口中,将 ServiceName 属性设置为 MyNewService。

6.. 将 StartType 属性设置为 Automatic。

7.. 在设计器中,选择 ServiceProcessInstaller1(针对 Visual Basic 项目),

或 serviceProcessInstaller1(针对 Visual C# 项目)。将 Account 属性设置为

LocalService。这将使得在本地服务帐户上安装和运行该服务。有关更多信息,请参见

ServiceProcessInstaller.Account 属性。

安全说明 LocalService 帐户用作本地计算机上的非特权用户,向任何远程服务

器显示匿名凭据。使用其他帐户时需要特别小心,因此它们具有较高的特权,会增加您

受到恶意代码攻击的风险。

设置服务为“允许服务与桌面交互”

如需设置“允许服务与桌面交互“上文中的第7步:Account的属性必须设置为LocalSystem,然后在ProjectInstaller.cs中ProjectInstaller类中重载OnAfterInstall,如下代码:

[RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
        }

        protected override void OnAfterInstall(IDictionary savedState)
        {
            try
            {
                base.OnAfterInstall(savedState);
                System.Management.ManagementObject myService = new System.Management.ManagementObject(
                    string.Format("Win32_Service.Name=‘{0}‘", this.serviceInstaller1.ServiceName));
                System.Management.ManagementBaseObject changeMethod = myService.GetMethodParameters("Change");
                changeMethod["DesktopInteract"] = true;
                System.Management.ManagementBaseObject OutParam = myService.InvokeMethod("Change", changeMethod, null);
            }
            catch (Exception)
            {
            }
        }
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 03:41:52

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

Mongodb服务的设置成window服务自启动

服务安装bat:例子 cd D: D: cd "Program Files" cd MongoDB\Server\3.0\bin mongod -dbpath "F:\work2016\mongodata\db" -logpath "F:\work2016\mongodata\log\MongoDB.log" -install -serviceName "MongoDB" echo 启动 net start MongoDB e

windows下把jupyter设置成服务

每次想写python代码时,都需要打开IDE进行编写,并且需要创建许多小文件.如果使用jupyter就能够直接书写.但是jupyter需要手动通过控制台打开,这不够方便.通过把jupyter notebook设置成服务,就能够直接打开本地网页,直接书写python代码了. 一.介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用小工具,用于将EXE程序作为Windows服务运行.srvany是其注册程序的服务外壳,我们可以通过它让我们的程序以

编写Windows服务疑问1:操作过程

Windows 服务开发平时不太受人关注,毕竟那是高大上的项目类型,平常需求也用不上,很多老掉牙的家伙也只知有WinForm,仍不知有WPF,更别说Windows 服务了,正如淘渊明所写的,“不知有汉,无论魏晋”. 通常,就算要让程序开机启动,多数也只考虑设置一个启动项,也很少去想到开发Windows服务.如果程序需要自动启动,并且希望在后台完成一些东东,其实使用Windows服务也不错的. 正因为用的人少,那么说的人更少了,使得不了解它,想学又找不到资料的人也多.没事,老周没什么资本,唯一值得

windows下通过bat脚本和计划任务实现设置某一服务的守护进程

通常服务器上跑的服务或者应用程序比较重要,如果无意间被关闭将造成不定程度的影响.通过为比较重要的服务设置守护进程,守护服务的进程.当服务关闭时可以自动开启,方法如下: 第一步:写守护进程的bat脚本  内容如下: 脚本内容中  set_task=RDO.exe意思为检查是否有RDO.exe进程. 要用的话就改成自己的进程名,如果进程宕了就过会自动重启(会在RDO.exe进程安装目录下生成一个start.bat) 其中 start.bat脚本内容中的start 后面的参数与set_svr后面的参数

使用C语言编写windows服务一般框架

原文:使用C语言编写windows服务一般框架 编写windows服务和编写windows应用程序一样,有一些回调函数必须填写且向windows 服务管理器(service manager)进行注册,否则会导致服务启动失败.因近期写个服务,其中遇到一些有问题,有部分内容想和大家分享一下,请大家指正. windows服务一般框架代码如下: #include <Windows.h> #include <tchar.h> VOID WINAPI ServiceHandler(DWORD

Tomcat 加入windows 服务自启动设置

基于J2ee技术开发,可以运行在Tomcat.weblogic.websphere等J2ee应用服务器上,对于一般访问量不是很高的客户我们推荐使用Tomcat(开源免费),一般情况下Tomcat服务需要手动运行批命令启动服务.在windows操作系统下如果需要将Tomcat变成自动启动的服务,只需按以下步骤操作即可:1.在环境变量中设置JAVA_HOME(假设我们缺省的JDK目录为d:\j2sdk1.4.2_04)A.进入windows桌面,右键选择“我的电脑”-->“属性”B.选择“高级”页签

Windows Server 2003开机自动启动MySQL服务设置方法

Windows Server 2003开机自动启动MySQL服务设置方法 发布时间:2014-12-19 更新时间:2014-12-24 来源:网络 作者:eaglezhong 关键词: 2003 exe 开机 nbsp; 设置方法 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   每次开机我都要去点击mysqld-nt.exe执行文件才启动mysql,虽然将创建了mysqld-nt.exe快捷方式到桌面,但还

Windows Server 2008R2 设置SMTP邮件转发服务

最近因业务需求在Windows Server 2008R2server上设置SMTP转发服务,主要是在业务审批过程中邮件通知相关人员审批情况, 1.在server上加入服务 2.打开服务 3.新建一个SMTP.过程简单,省略了,下面是配置截图. 4.同意匿名通过 5.能够全部连接 6.仅下面地址能够使用转发,须要自己加入. 7.各种限制 8.參数设置 9.安全设置,匿名,能够选用Windows用户,自己在查查其它文档 10.默认25port 11.默认的域名.新建SMTP时候填写的. 12.默认

C#编写Windows服务

一.Windows服务介绍: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一 般的可执行文件通过双击就能开始运行了,它必须有特定的启动方式.这些启动方式包括了自动启动和手动启动两种.对于自动启动的Windows服务程序,它 们在Windows启动或是重启之后用户登录之前就开始执行了.只要你将相应的Windows服务程序注册到服务控制管理器(Service Control Manager)中,并将其启动类别