2011-12-19 86 views
1

我用这个方法:How to make a .NET Windows Service start right after the installation?Windows服务传递参数

差价开始用“贴了一步一步的过程”。如何在不使用注册表的情况下将参数传递给OnStart函数?

我可以通过这个方法的参数Main(string[] args)。我打电话给myapp.exe -install。 我想打电话给myapp.exe -install path="c:/bla bla"

并且还将路径参数移动到“OnStart”。我的OnStart存在于示例中的YourService对象中。

回答

0

你会传递应用程序名称 myapp.exe /我然后在你的params检查检查,看看/我是否在命令行中的代码你分配的应用程序路径你可能可能通过路径以及包围通过“上传递PARAMS到一个控制台应用程序”做了谷歌搜索..同样的理论适用..

1

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onstart.aspx ...

的参数在ARGS参数数组可以手动设置服务的 属性窗口在服务控制台中。在控制台中输入的参数 未保存;当服务从 控制面板启动时,它们将一次性传递到 服务。在 服务自动启动时必须存在的参数可以放置在 服务的注册表项 (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \)的ImagePath字符串值中。 您可以使用GetCommandLineArgs方法使用 方法从注册表中获取参数,例如:string [] imagePathArgs = Environment.GetCommandLineArgs();.

使用你的榜样,你会希望把-install path="c:/bla bla"在服务控制台,但是这是很难令人满意的,因为它不会被保存,即,你必须每次你的服务开始时间去做。你可以去注册表路线,但你说你不想这样做。唯一想到的另一个选项是某种服务配置文件。