ServiceController msg=new ServiceController();
msg.MachineName="your computer name";
msg.ServiceName="Messenger";……
msg.Start(); //启动msg.Stop(); //关闭
msg.MachineName="your computer name";
msg.ServiceName="Messenger";……
msg.Start(); //启动msg.Stop(); //关闭
serviceController1.Start();
serviceController1.Stop();
用Visual C#创建Windows服务程序
http://developer.ccidnet.com/pub/disp/Article?columnID=340&articleID=45618&pageNO=1hope it helps
要到注册表里改了:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
下找到服务名字,start=2是自动,还有其它设置可以研究一下这几个注册字段.
using System;
using System.Management;namespace ArLi.CommonPrj {
public class PLMM007_WMI { public static readonly System.Version myVersion = new System.Version(1,1); private ManagementBaseObject iObj = null;
private ManagementBaseObject oObj = null;
private ManagementClass mc = new ManagementClass("Win32_Service");
private readonly ManagementObjectCollection moc; public PLMM007_WMI(){
moc = mc.GetInstances();
}
/// <summary>
/// 查询服务模式
/// </summary>
/// <param name="serviceName">要查询的服务,为null 表示返回所有已禁用服务</param>
public string GetDisabled(string serviceName) {
string s="";
foreach(ManagementObject mo in moc) { if (serviceName != null) { //服务如果不为null
if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) {
return (string)mo["StartMode"];
}
}
if ((string) mo["StartMode"] == "Disabled") {
s += mo["Name"].ToString() + "\r\n"; //自己改成想要的格式
//你可以用displayname,上面的是ServiceName,下面这个是DisplayName
//s += mo["DisplayName"].ToString() + "\r\n";
};
}
return s;
}
/// <summary>
/// 设置模式
/// </summary>
/// <param name="ServiceName">服务名</param>
/// <param name="startMode">模式,比如:Boot/System/Automatic/Manual/Disabled</param>
/// <returns>操作完成 1,否则 0</returns>
public int ChangeTo(string serviceName, string startMode) {
foreach(ManagementObject mo in moc) { //服务名存在
if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) {
// 如果服务已经是指定模式则返回
if ((string) mo["StartMode"] == startMode) return 0; // 设置服务模式
iObj = mo.GetMethodParameters("ChangeStartMode");
iObj["StartMode"] = startMode;
oObj = mo.InvokeMethod("ChangeStartMode", iObj, null); return 1;
}
} return 0;
}
}
}
o.ChangeTo("ClipSrv","Automatic");
using System.Management;namespace ArLi.CommonPrj {
public class Service_WMI { public static readonly System.Version myVersion = new System.Version(1,1); private ManagementBaseObject iObj = null;
private ManagementBaseObject oObj = null;
private ManagementClass mc = new ManagementClass(@"\\arli\Win32\Service");
private readonly ManagementObjectCollection moc; public Service_WMI(){
moc = mc.GetInstances();
} /// <summary>
/// 远程WMI 构造
/// </summary>
/// <param name="remoteComputerName">计算机名</param>
/// <param name="userName">用户名,域用户可用 username@domain</param>
/// <param name="passWord">密码</param>
public Service_WMI(string remoteComputerName, string userName, string passWord) {
moc = GetServiceCollection(remoteComputerName, userName, passWord);
} private ManagementObjectCollection GetServiceCollection(string remoteComputerName, string userName, string passWord) {
ManagementObjectCollection returnWMIcollection = null;
ConnectionOptions co = new ConnectionOptions(); co.Username = userName;
co.Password = passWord; System.Management.ManagementScope ms = new System.Management.ManagementScope("\\\\" + remoteComputerName + "\\root\\cimv2", co); System.Management.ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_Service");
ManagementObjectSearcher query = new ManagementObjectSearcher(ms,oq); returnWMIcollection = query.Get(); return returnWMIcollection;
}
/// <summary>
/// 查询服务模式
/// </summary>
/// <param name="serviceName">要查询的服务,为null 表示返回所有已禁用服务</param>
public string GetStartMode(string serviceName) {
string s="";
foreach(ManagementObject mo in moc) {
if (serviceName != null) { //服务如果不为null
if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) {
return (string)mo["StartMode"];
}
}
if ((string) mo["StartMode"] == "Disabled") {
s += mo["Name"].ToString() + "\r\n"; //自己改成想要的格式
//你可以用displayname,上面的是ServiceName,下面这个是DisplayName
//s += mo["DisplayName"].ToString() + "\r\n";
};
}
return s;
}
/// <summary>
/// 设置模式
/// </summary>
/// <param name="ServiceName">服务名</param>
/// <param name="startMode">模式,比如:Boot/System/Automatic/Manual/Disabled</param>
/// <returns>操作完成 1,否则 0</returns>
public int ChangeTo(string serviceName, string startMode) {
foreach(ManagementObject mo in moc) { //服务名存在
if (((string)mo["Name"]).ToUpper() == serviceName.ToUpper()) {
// 如果服务已经是指定模式则返回
if ((string) mo["StartMode"] == startMode) return 0; // 设置服务模式
iObj = mo.GetMethodParameters("ChangeStartMode");
iObj["StartMode"] = startMode;
oObj = mo.InvokeMethod("ChangeStartMode", iObj, null); return 1;
}
} return 0;
}
}
}