c#开启服务

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:50:31
如何C#实现开启禁用后的服务?我现在会用C#实现开启手动和自动的服务~但是碰到禁用的服务就不会了~
我需要代码~
有点注释~
别少了告诉我using的东西
在修改注册表键值的时候有个时间的过程~在这个过程中已经执行service.Start(); 了怎么解决时间的问题?用死循环的话最后一个考虑
我要问的是如何延迟到注册表已经改了再执行start!

去 CSDN 上问问吧

如果你只是为了恢复服务的话,你可以直接进入系统服务项,启动服务。如果你是在程序中实现的话下面的代码就够你用了!
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();

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&