给Windows 服务添加命令行参数

1. 首先,给服务的Main方法添加参数,判断如果参数为"-s"则运行服务。
static void Main(string[] args)
{
    
// 运行服务
    if (args[0].ToLower() == "/s" || args[0].ToLower() == "-s")
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun 
= new ServiceBase[] { new MyService1() };
        ServiceBase.Run(ServicesToRun);
    }
}

2. 然后,给 serviceInstaller1 添加 AfterInstall 事件,修改注册表给服务添加命令行参数。
private void ServiceInstaller1_AfterInstall(object sender, InstallEventArgs e)
{
    
// 给服务添加命令行参数 -s
    try
    {
        RegistryKey regKey 
= Registry.LocalMachine.OpenSubKey
                       (
@"SYSTEM\CurrentControlSet\Services\" + serviceInstaller1.ServiceName, true);
        
object value = regKey.GetValue("ImagePath");
        
if (value != null)
        {
            
string imagePath = value.ToString();
            regKey.SetValue(
"ImagePath", imagePath + " -s");
            regKey.Flush();
        }
        regKey.Close();
    }
    
catch
    {}
}


posted on 2008-05-21 12:56  大豆男生  阅读(3768)  评论(0编辑  收藏  举报

导航