我有一个C#/ .NET程序,可以作为控制台应用程序和服务运行.目前我给它一个命令行选项来启动作为控制台应用程序,但我想避免这种情况.
是否有可能以编程方式检测我的程序是否作为服务启动?
如果它是纯Win32,我可以尝试使用StartServiceCtrlDispatcher作为服务启动并返回到控制台,如果它返回ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,但System.ServiceProcess.ServiceBase.Run()弹出一个errordialog如果它失败然后只返回没有发出错误信号到该计划.
有任何想法吗?
小智 30
Environment.UserInteractive将发挥魔力.