【问题标题】:Windows service pass parametersWindows 服务传递参数
【发布时间】:2011-12-19 16:35:25
【问题描述】:
【问题讨论】:
标签:
c#
windows-services
windows-installer
【解决方案1】:
来自http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onstart.aspx...
args 参数数组中的参数可以在
服务控制台中服务的属性窗口。这
在控制台中输入的参数不会被保存;它们被传递给
当服务从
控制面板。服务运行时必须存在的参数
自动启动可以放在ImagePath字符串值中
服务的注册表项
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\)。
您可以使用以下方法从注册表中获取参数
GetCommandLineArgs 方法,例如:string[] imagePathArgs =
Environment.GetCommandLineArgs();.
使用您的示例,您希望将 -install path="c:/bla bla" 放在服务控制台中,但这并不令人满意,因为它不会被保存,也就是说,您必须在每次服务启动时都这样做。你可以走注册路线,但你说你不想那样做。唯一想到的其他选项是某种服务配置文件。
【解决方案2】:
您将传递应用程序名称
myapp.exe /i 然后在您的参数检查中检查 /i 是否在该代码中的命令行参数中您分配的应用程序路径您可能会传递路径以及由“”包围的路径 在传递参数时进行谷歌搜索控制台应用程序.. 同样的理论适用..