用VS2003部署,让服务程序安装完后立即启动服务并且选中“允许服务与桌面交互”及添加服务描述的方法

时间:2021-12-07 16:40:17
-----------立即启动--------------
private   void   serviceInstaller1_AfterInstall(object   sender,   System.Configuration.Install.InstallEventArgs   e)
{
ServiceController   myService   =   new   ServiceController( "XJOAPigeonholeServer ");
myService.Start();
myService.Dispose();
}


添加描述:1.1没有直接方法,2.0里有直接的方法   ServiceInstaller.Description
//----------------------------添加服务描述信息   开始   ------------
public   override   void   Install(IDictionary   stateServer)
{
Microsoft.Win32.RegistryKey   system,
//HKEY_LOCAL_MACHINE/Services/CurrentControlSet
currentControlSet,
//.../Services
services,
//.../ <Service   Name>
service,
//.../Parameters   -   this   is   where   you   can   put   service-specific   configuration
config;  
try
{
//Let   the   project   installer   do   its   job
base.Install(stateServer);

//Open   the   HKEY_LOCAL_MACHINE/SYSTEM   key
system   =   Microsoft.Win32.Registry.LocalMachine.OpenSubKey( "System ");
//Open   CurrentControlSet
currentControlSet   =   system.OpenSubKey( "CurrentControlSet ");
//Go   to   the   services   key
services   =   currentControlSet.OpenSubKey( "Services ");
//Open   the   key   for   your   service,   and   allow   writing
service   =   services.OpenSubKey(this.serviceInstaller1.ServiceName,   true);
//Add   your   service 's   description   as   a   REG_SZ   value   named   "Description "
service.SetValue( "Description ", "XJOA系统自动归档服务(BeijiOffice) ");
//(Optional)   Add   some   custom   information   your   service   will   use...
//允许服务与桌面交互
service.SetValue( "Type ",0x00000110);
config   =   service.CreateSubKey( "Parameters ");
}
catch(Exception   e)
{
Console.WriteLine( "An   exception   was   thrown   during   service   installation:/n "   +   e.ToString());
}
}

public   override   void   Uninstall(IDictionary   stateServer)
{
Microsoft.Win32.RegistryKey   system,
currentControlSet,
services,
service;

try
{
//Drill   down   to   the   service   key   and   open   it   with   write   permission
system   =   Microsoft.Win32.Registry.LocalMachine.OpenSubKey( "System ");
currentControlSet   =   system.OpenSubKey( "CurrentControlSet ");
services   =   currentControlSet.OpenSubKey( "Services ");
service   =   services.OpenSubKey(this.serviceInstaller1.ServiceName,   true);
//Delete   any   keys   you   created   during   installation   (or   that   your   service   created)
service.DeleteSubKeyTree( "Parameters ");
//...
}
catch(Exception   e)
{
Console.WriteLine( "Exception   encountered   while   uninstalling   service:/n "   +   e.ToString());
}
finally
{
//Let   the   project   installer   do   its   job
base.Uninstall(stateServer);
}
}
//----------------------------   结束   ----------------------------