当前位置:  编程技术>.net/c#/asp.net

C#启动windows服务方法的相关问题分析

    来源: 互联网  发布时间:2014-10-16

    本文导语:  C#启动windows服务的方法都是什么呢?C#启动服务类型为Disabled的windows服务会遇到什么样的问题呢?那么本文就向你介绍C#启动windows服务的方法的相关内容。 C#启动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 = @"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#实现Windows服务状态启动和停止服务的方法
  • c# 开机启动项的小例子
  • C#窗体程序仅允许启动一次的解决方法
  • c#判断数据库服务器是否启动
  • c#使用process.start启动程序报错解决方法
  • c#判断数据库服务器是否已经启动的方法
  • c#启动EXE文件的方法实例
  • C#启动外部程序的几种常用方法汇总
  • C#添加注册表启动项的实例代码
  • 用C#实现启动另一程序的方法实例
  • C# 禁止应用程序多次启动的实例
  • C#代码设置开机启动示例
  • .net/c#/asp.net iis7站长之家
  • 通过C#调用cmd来修改服务启动类型
  • Windows 7 下 IE10启动很慢,如何更改设置让它启动变快
  • 如何修改启动菜单的启动顺序(linux,windows),我想让系统默认启动到windows.谢谢!!
  • Windows7自带防火墙设置:启动,关闭及高级设置
  • 如何修改启动菜单的启动顺序(linux,windows2000),我想让系统默认启动到windows2000.谢谢!!
  • 求助!安装Linux时设错了Windows(DOS)启动的选项,怎样恢复启动Windows?急啊!
  • windows7和Ubuntu10.04双系统启动问题,到了grub菜单但是无法启动windows7
  • 同机装有Windows和Linux两套系统(先装Win后装Linux),如何使计算机使用Windows的启动模块而不是Linux的启动模块?
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • windows 和linux双系统,重装windows后,无法启动linux?
  • Linux与windows共存时,如何将Windows设置为默认启动系统?
  • 我在windows2k下安装linux怎么启动一定要用软件盘才能启动?
  • Linux + Windows2000 双启动,Windows2000起不来了,说是文件被破坏,进来看看……
  • 怎样让linux启动进入字符模式,不启动X Window
  • 请教如何将LINUX启动添加到windows启动菜单?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • mysql启动错误之mysql启动报1067错误解决方法
  • 隐藏andriod 应用app启动图标的几种方法
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • 关于多线程的奇怪问题,run()方法只会被start()方法自动启动一次吗?
  • 请问RH9 的shell 下配置自带防火墙的方法,启动/关闭方法
  • 如何设置在linux下设置tomcat自动启动以及它里面的我写的一个有main方法的socket服务器也自动启动
  • mysql服务无法启动报错误1067解决方法(mysql启动错误1067 )
  • 我先装了XP,又装了Linux,现在Linux只能用启动盘启动,有没有其他方法啊?
  • (X86/X64)安装sql server 2005 过程中提示“无法启动sql server的 启动”的解决方法
  • 各位高手指点,关于Rad Hat启动后不自动进入GNOME的方法
  • 命令行启动mssqlserver服务的方法示例
  • 免安转MySQL服务的启动与停止方法
  • linux中启动Eclipse地方法???
  • 碰到MySQL无法启动1067错误问题解决方法
  • Eclipse启动Tomcat超时问题的解决方法
  • linux下不启动sendmail的方法
  • Android启动模拟器报错解决方法
  • 能不能配置Servlet的init方法在Jrun启动的时候就运行?
  • MySQL无法启动1067错误的又一种解决方法(机房断电)
  • 无法启动Apache的问题解决方法
  • 红帽RHEL下面设置docker服务自动启动
  • 各位大虾,请问怎样在启动菜单中指定由硬盘启动(象EASYBOOT,JO.SYS..启动时指定由硬盘启动)?
  • Arch下面安装启动及删除docker介绍
  • 我的LINUX为什么不能选择启动,只能用启动盘启动
  • 如何在win7,win8下面启动docker
  • emacs不启动X的界面,启动在终端里面呢?(希望他启动x界面)
  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • 在我启动linux设成Gnome图片模式启动,如果想启动字符模式,应怎样把级别5改为3吗,教我改法
  • linux 服务器启动时,机子启动就启动下面的这行命令
  • 再线送分:我的硬盘装了REDHAT LINUX,但不启动,软盘启动盘也没了,请问怎样能再次启动?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3