【发布时间】:2008-10-16 09:16:11
【问题描述】:
我有一个可以作为控制台应用程序和服务运行的 C#/.NET 程序。 目前我给它一个命令行选项以作为控制台应用程序启动,但我想避免这种情况。
是否可以以编程方式检测我的程序是否作为服务启动?
如果它是纯 Win32,我可以尝试使用 StartServiceCtrlDispatcher 作为服务启动,如果返回 ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,则返回到控制台,但 System.ServiceProcess.ServiceBase.Run() 如果失败,则会弹出一个错误对话框,然后直接返回而没有向程序发出错误信号。
有什么想法吗?
【问题讨论】:
-
也许 OP 不知道这是一个骗局,因为已经回答的问题的名字很糟糕。