国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

通過C#調用cmd來修改服務啟動類型

2020-01-24 03:37:24
字體:
來源:轉載
供稿:網友
可以使用System.ServiceProcess.ServiceController這個類允許連接到正在運行或者已停止的服務、對其進行操作或獲取有關它的信息。ServiceController 提供了開始和停止服務的方法(Start, Stop)。
但是這個類并沒有提供修改服務啟動類型的方法,可以通過C#調用cmd來修改

參考網上的這個方法
//設置服務的啟動類型
//sServiceName服務名稱
//iStartType要設置的啟動類型 2:自動,3:手動,4:禁用
//返回成功狀態 true:成功,false:失敗
復制代碼 代碼如下:

public Boolean SetWindowsServiceStartType(String sServiceName, int iStartType)
{
try
{
System.Diagnostics.ProcessStartInfo objProcessInf = new System.Diagnostics.ProcessStartInfo();
objProcessInf.FileName = "cmd.exe";
objProcessInf.CreateNoWindow = false;
objProcessInf.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
string sStartState = "boot";
switch (iStartType)
{
case 1:
{
sStartState = "system";
break;
}
case 2:
{
sStartState = "auto";
break;
}
case 3:
{
sStartState = "demand";
break;
}
case 4:
{
sStartState = "disabled";
break;
}
default:
{
break;
}
}
objProcessInf.Arguments = "/c sc config " + sServiceName + " start= " + sStartState;
System.Diagnostics.Process.Start(objProcessInf);
return true;
}
catch
{
return false;
}
}

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.ServiceProcess;
using Microsoft.Win32;
namespace Service
{
public class ClassService
{
private string ServiceName; //服務名稱
private ServiceController sc;
/// <summary>
/// 服務操作
/// </summary>
/// <param name="ServiceName">服務名稱</param>
public ClassService(string ServiceName)
{
this.ServiceName = ServiceName;
this.sc = new ServiceController(ServiceName);
}
/// <summary>
/// 啟動服務
/// </summary>
/// <returns></returns>
public bool StartService()
{
try
{
if (sc.Status != ServiceControllerStatus.Running)
sc.Start();
else
return false;
}
catch (Exception)
{
return false;
}
return true;
}
/// <summary>
/// 停止服務
/// </summary>
/// <returns></returns>
public bool StopService()
{
try
{
if (sc.Status != ServiceControllerStatus.Stopped)
sc.Stop();
else
return false;
}
catch (Exception)
{
return false;
}
return true;
}
/// <summary>
/// 重啟服務
/// </summary>
/// <returns></returns>
public bool RestartService()
{
if (StopService())
{
if (StartService())
return true;
else
return false;
}
else
return false;
}
/// <summary>
/// 獲取服務啟動類型
/// </summary>
/// <returns>2:自動 3:手動 4:禁用 0:獲取失敗</returns>
public int GetServiceStartMode()
{
int Mode = 0;
try
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM/CurrentControlSet/services/" + ServiceName);
Mode = Convert.ToInt32(key.GetValue("Start"));
key.Close();
}
catch (Exception)
{
return 0;
}
return Mode;
}
/// <summary>
/// 設置服務啟動類型
/// </summary>
/// <param name="Mode">2:自動 3:手動 4:禁用</param>
/// <returns></returns>
public bool SetServiceStartMode(int Mode)
{
try
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM/CurrentControlSet/services/" + ServiceName, true);
key.SetValue("Start", Mode);
key.Close();
}
catch (Exception)
{
return false;
}
return true;
}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北碚区| 江源县| 盱眙县| 临泉县| 施甸县| 辽源市| 天津市| 白城市| 长武县| 兰西县| 扶余县| 通江县| 邻水| 百色市| 英德市| 灌云县| 正定县| 通海县| 林口县| 嘉禾县| 龙南县| 武胜县| 定结县| 通道| 桃园市| 彩票| 托克托县| 华安县| 阿拉善右旗| 元朗区| 灵丘县| 桦川县| 台南县| 元江| 罗山县| 日土县| 宜宾县| 武定县| 图片| 日土县| 济源市|