gpt4 book ai didi

c# - 查找哪个服务已在 C# 中运行可执行文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:11 25 4
gpt4 key购买 nike

我想知道是否有可能找出哪个 Windows 服务运行了可执行文件?

我有两个不同的服务从同一个 exe 运行,做不同的事情。该程序的主要方法检测命令行参数,并将启动控制台应用程序(如果在 Environment.UserInteractive 中运行),或启动两种可能的服务之一。我找不到辨别哪个服务正在运行的好方法,所以我可以在代码中选择正确的服务来启动。在windows服务的图片路径中传入.exe参数好像不行。这些服务在服务器上运行并自动启动,因此手动执行并不是真正的选择。

我真的很想避免必须有两个不同的项目和不同的可执行文件,所以我可以通知程序运行哪个服务的任何方式都很棒。

最佳答案

您可以在 ImagePath 中传递参数。我知道我曾使用 .net Windows 服务完成过此操作,但我记得,我必须使用标准 .Net 安装程序以外的其他东西来安装该服务。

.Net 安装程序会在您传递的任何内容周围添加引号,这使得 ImagePath 从 C:\test\test.exe -arguments 变为 "C:\test\test.exe - arguments" 应该是 "C:\test\test.exe"-arguments

查看 WiX , sc.exeCreateService获取正确的注册表值。

要进行测试,请照常安装您的服务并在注册表编辑器中浏览至 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\yourServiceName 并编辑 ImagePath。有关其外观的示例,请查看 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\seclogon

关于c# - 查找哪个服务已在 C# 中运行可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com