Dot-Net
如何使用.net 獲取 Windows 服務的物理路徑?
我必須在 .Net Admin 應用程序中獲取 Windows 服務的絕對路徑。我正在使用 .Net 的 ServiceController,如下所示。
ServiceController serviceController = new ServiceController(serviceName);但是我在這裡看不到任何屬性來獲取服務的 .exe 的絕對路徑。反正有沒有以程式方式得到這個。
您可以使用 WMI 獲得此資訊,這需要對 System.Management 的程序集引用:
using System.Management; class Program { static void Main(string[] args) { Console.WriteLine(GetPathOfService("eventlog")); Console.ReadLine(); } public static string GetPathOfService(string serviceName) { WqlObjectQuery wqlObjectQuery = new WqlObjectQuery(string.Format("SELECT * FROM Win32_Service WHERE Name = '{0}'", serviceName)); ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(wqlObjectQuery); ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get(); foreach (ManagementObject managementObject in managementObjectCollection) { return managementObject.GetPropertyValue("PathName").ToString(); } return null; } }