手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#启动windows服务方法的相关问题分析
C#启动windows服务方法的相关问题分析
摘要:C#启动windows服务的方法都是什么呢?C#启动服务类型为Disabled的windows服务会遇到什么样的问题呢?那么本文就向你介绍C...

C#启动windows服务的方法都是什么呢?C#启动服务类型为Disabled的windows服务会遇到什么样的问题呢?那么本文就向你介绍C#启动windows服务的方法的相关内容。

C#启动windows服务的方法是什么呢?来让我们开始吧:

C#启动windows服务的由来:我们知道, 在C#代码中启动一个已经存在的windows服务,我们可以用这样的代码来完成:

复制代码 代码如下:

//ACPI is an example of service name

System.ServiceProcess.ServiceController

service = new ServiceController("ACPI");

service.Start();

C#启动windows服务遇到的问题, 如果服务类型是Disabled, 那么start方法就会引发异常。 一般的做法是先修改服务的启动类型, 然后启动该服务:

复制代码 代码如下:

using Microsoft.Win32;

string keyPath = @"SYSTEMCurrentControlSetServicesACPI";

RegistryKey key = Registry.LocalMachine.OpenSubKey(keyPath, true);

int val = -1;

bool bConverted = Int32.TryParse(key.GetValue("Start").

ToString(), out val); if(bConverted){

if ( val == 4){key.SetValue("Start", 3);

}

}

System.ServiceProcess.ServiceController

service = new ServiceController("ACPI");

service.Start();

总结一下修改服务的启动方式有两种方法:

C#启动windows服务1. 修改注册表

windows 服务的注册表地址为 :

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesServiceName]

其中子键Start代表了启动类型. 类如"Start"=dword:00000002

其中2为Automatic, 3为Manul, 4为Disabled

C#启动windows服务2.用API

复制代码 代码如下:

BOOL ChangeServiceConfig(

SC_HANDLE hService,

DWORD dwServiceType,

DWORD dwStartType,

DWORD dwErrorControl,

LPCTSTR lpBinaryPathName,

LPCTSTR lpLoadOrderGroup,

LPDWORD lpdwTagId,

LPCTSTR lpDependencies,

LPCTSTR lpServiceStartName,

LPCTSTR lpPassword,

LPCTSTR lpDisplayName

);

C#启动windows服务的方法浅析就向你介绍到这里,希望对你学习和了解C#启动windows服务有所帮助。

【C#启动windows服务方法的相关问题分析】相关文章:

C# 全角和半角转换以及判断的简单代码

C# 批处理调用方法

C#调用Matlab生成的dll方法的详细说明

C#开发Windows服务实例之实现禁止QQ运行

C#定位txt指定行的方法小例子

在Winform动态启动、控制台命令行的方法

基于C#中XmlWriter写入Xml的深入分析

winfrom 在业务层实现事务控制的小例子

C# 拓展方法的简单实例

C# 面向对象的基本原则

精品推荐
分类导航