微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测进程是否作为服务进行安装

我创build了一个应该作为服务和应用程序运行的win32应用程序。 当我点击并运行它时,它应该作为应用程序运行。 当从服务控制器调用时,应该检测到它和分支作为服务运行。 我如何检测这个,而不通过参数? mr.abzadeh

如何将控制台应用程序更改为Windows窗体应用程序?

C#和部分工作的SendMessage?

有没有什么简单的方法来确定popup菜单被解雇?

Pip不会在Windows上安装Twisted

Python _自动截图taker_with成绩单

传统的(最简单的)方法调用StartServiceCtrldispatcher() ,如果失败,则假定您没有作为服务运行。 这在实践中效果很好,虽然技术上我不相信微软保证它会这样做。

如果您想要更健壮的方法,您可以检查您的安全令牌 ,看它是否包含服务SID ,S-1-5-6。 但是,为了使其发挥作用,您必须确保服务配置为非零SID类型 ,即使用SERVICE_SID_TYPE_UNRESTRICTED或SERVICE_SID_TYPE_RESTRICTED 。

注意:我试图按照书面的方式来回答这个问题,但是更好的解决方案是按照注释中的讨论设置一个命令行参数。 您可以在CreateService()的lpBinaryPathName参数中包含命令行参数。 您的main()函数将以与普通命令行应用程序相同的方式接收这些参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐