C#启动windows服务方法的相关问题分析
程序员文章站
2023-11-24 14:33:04
c#启动windows服务的方法都是什么呢?c#启动服务类型为disabled的windows服务会遇到什么样的问题呢?那么本文就向你介绍c#启动windows服务的方法的...
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 = @"system\currentcontrolset\services\acpi";
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_machine\system\currentcontrolset\services\servicename]
其中子键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#启动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 = @"system\currentcontrolset\services\acpi";
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_machine\system\currentcontrolset\services\servicename]
其中子键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服务有所帮助。
推荐阅读
-
windows无法启动MySQL服务报错1067的解决方法
-
android开发环境遇到adt无法启动的问题分析及解决方法
-
eclipse部署tomcat服务器无法启动问题的解决方法
-
C#启动windows服务方法的相关问题分析
-
C#使用windows服务开启应用程序的方法
-
Win10系统不能启动Windows Time服务的解决方法
-
C#创建Windows服务的实现方法
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)
-
解决python写的windows服务不能启动的问题
-
Windows系统下Apache服务器无法启动的问题解决