| 订阅 | 在线投稿
分享
 
 
 

给windows服务添加描述

来源:互联网  宽屏版  评论
2006-01-09 20:56:54

最近写了个Windows服务(Windows Services),安装了以后,觉得和已有的Windows服务不一样。为什么?我的缺少描述,中间一栏是空的。

再看.NET的ServiceBase类没有添加描述的属性。

public class ProjectInstaller : System.Configuration.Install.Installer中也没有什么属性来添加。从网搜了后才知道要重载ProjectInstaller 的Install和UnInstall虚方法。其实重写这些虚方法就是为了在注册表相应服务中加一个鍵值"Description",其值填为相应的描述就可以了。

public override void Install(IDictionary stateServer)

{

Microsoft.Win32.RegistryKey system,

service,

config;

try

{

//Let the project installer do its job

base.Install(stateServer);

system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System").OpenSubKey("CurrentControlSet").OpenSubKey("Services");

service = system.OpenSubKey(this.serviceInstaller1.ServiceName, true);

service.SetValue("Description", "服务描述");

//添加额外的鍵

config = service.CreateSubKey("AdditionalInformation");

}

catch(Exception e)

{

}

}

public override void Uninstall(IDictionary stateServer)

{

Microsoft.Win32.RegistryKey system,

currentControlSet,

services,

service;

try

{

system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System");

currentControlSet = system.OpenSubKey("CurrentControlSet");

services = currentControlSet.OpenSubKey("Services");

service = services.OpenSubKey(this.serviceInstaller1.ServiceName, true);

//删除额外的鍵

service.DeleteSubKeyTree("AdditionalInformation");

//...

}

catch(Exception e)

{

}

finally

{

base.Uninstall(stateServer);

}

}

注意这些代码是在ProjectInstaller 文件中的。

也许有更好的办法,望大家指教。

 
 最近写了个Windows服务(Windows Services),安装了以后,觉得和已有的Windows服务不一样。为什么?我的缺少描述,中间一栏是空的。   再看.NET的ServiceBase类没有添加描述的属性。   public class ProjectInstaller : System.Configuration.Install.Installer中也没有什么属性来添加。从网搜了后才知道要重载ProjectInstaller 的Install和UnInstall虚方法。其实重写这些虚方法就是为了在注册表相应服务中加一个鍵值"Description",其值填为相应的描述就可以了。  public override void Install(IDictionary stateServer) { Microsoft.Win32.RegistryKey system, service, config; try { //Let the project installer do its job base.Install(stateServer); system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System").OpenSubKey("CurrentControlSet").OpenSubKey("Services"); service = system.OpenSubKey(this.serviceInstaller1.ServiceName, true); service.SetValue("Description", "服务描述"); //添加额外的鍵 config = service.CreateSubKey("AdditionalInformation"); } catch(Exception e) { } } public override void Uninstall(IDictionary stateServer) { Microsoft.Win32.RegistryKey system, currentControlSet, services, service; try { system = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("System"); currentControlSet = system.OpenSubKey("CurrentControlSet"); services = currentControlSet.OpenSubKey("Services"); service = services.OpenSubKey(this.serviceInstaller1.ServiceName, true); //删除额外的鍵 service.DeleteSubKeyTree("AdditionalInformation"); //... } catch(Exception e) { } finally { base.Uninstall(stateServer); } } 注意这些代码是在ProjectInstaller 文件中的。 也许有更好的办法,望大家指教。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有