2016-06-30 6 views
-1

私は成功せずC#サービスでランタイムにWindowsサービス名を取得するには?

public static string getServiceName(int pid = 0)  
    { 
     string result = ""; 

     System.Management.ManagementObjectSearcher mos = new System.Management.ManagementObjectSearcher("root\\CIMV2", string.Format("SELECT * FROM Win32_Service where ProcessId={0}", pid)); 

     System.Management.ManagementObjectCollection moc = mos.Get(); 
     foreach (System.Management.ManagementObject mo in moc) 
     { 
      result = Convert.ToString(mo["Name"]); 
     } 

     return result; 
    } 

    getServiceName(System.Diagnostics.Process.GetCurrentProcess().Id) 

を試してみました、実行時にサービス名を知っておく必要がありますので、私は

sc <server> [command] [service name] <option1> <option2>... 

で複数のインスタンスを開始しています。

答えて

-2

Process.GetCurrentProcess()はどうですか?

+0

問題のコードは既にそのメソッドを呼び出しています。だから、別のやり方をしているのはどういうことですか? –

+0

Process.GetCurrentProcess()。ProcessName – tjhazel

+0

Process.GetCurrentProcess()。ProcessNameはWindowsサービス名ですか? –

関連する問題