您的位置:首页 > 其它

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

2007-11-11 11:29 871 查看
-----------立即启动--------------
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);
}
}
//---------------------------- 结束 ----------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: