首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断进程是否由服务控制管理器运行

如何判断进程是否由服务控制管理器运行
EN

Stack Overflow用户
提问于 2009-05-05 21:49:14
回答 3查看 1.5K关注 0票数 5

我有几个用C#编写的Windows Services,如果传递了特定的参数,我可以设置它们以支持从命令行作为控制台应用程序运行。工作很棒,但我希望能够检测到应用程序是由服务控制管理器还是从命令行运行的。

有没有办法在运行时判断我的应用程序是否是由SCM启动的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-05 22:34:22

如果进程在配置管理下运行,则Environment.UserInteractive将返回false。

票数 2
EN

Stack Overflow用户

发布于 2009-05-05 21:56:49

SCM将调用您OnStart方法,因此您可以标记该事件,并确保从命令行运行时不会调用OnStart。或者,您可以检查启动参数以查看应用程序是如何启动的。

票数 1
EN

Stack Overflow用户

发布于 2011-12-01 05:25:11

在C中,由于ERROR_FAILED_SERVICE_CONTROLLER_CONNECT,函数StartServiceCtrlDispatcher()将失败。这是C语言中最好的方法,不知道C#是否公开了这些内容?

ERROR_FAILED_SERVICE_CONTROLLER_CONNECT

如果程序作为控制台应用程序而不是服务运行,则会返回此错误。如果出于调试目的将程序作为控制台应用程序运行,则将其构造为在返回此错误时不调用特定于服务的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/827067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档