2012-01-28 5 views

답변

6

는 빠른 Google 검색 this page에서 다음 코드를 설정 :

strComputer = "." 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colItems = objWMIService.ExecQuery _ 
    ("Select * From Win32_Product Where Name = 'QuickTime'") 

If colItems.Count = 0 Then 
    Wscript.Echo "QuickTime is not installed on this computer." 
Else 
    For Each objItem in colItems 
     Wscript.Echo "QuickTime version: " & objItem.Version 
    Next 
End If 

"하지만 잠깐!" 당신은 "VBScript가 아니라 C#입니다!"라고 말합니다. 사실이지만 WMI 쿼리를 수행하는 VBScript입니다. 또 다른 빠른 Google 검색은 how to do WMI queries from C#입니다.

+0

영리한을, 참. VBScript를 모를지라도 C# 버전에서는 괜찮은 의사 코드입니다. –

+0

고마워, 내가이 일을 할 수 있는지 알 겠어. – Zarxrax

2

이 시도 :

using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall")) 
{ 
    if (key != null) 
    { 
     foreach (string subKeyName in key.GetSubKeyNames()) 
     { 
      using (RegistryKey subKey = key.OpenSubKey(subKeyName)) 
      { 
       if (subKey == null) continue; 

       var displayName = subKey.GetValue("DisplayName") as string; 

       if (displayName == null || !displayName.Equals("QuickTime")) continue; 

       var version = subKey.GetValue("DisplayVersion"); 

       Console.WriteLine(displayName); 
       Console.WriteLine(version); 
      } 
     } 
    } 
}