下面的这些代码应该是Delphi写的吧,本来想自己翻译成C#,但是试了半天,还是无能为力我,所以大家帮帮我.procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Locator: OleVariant;
  WMI: OleVariant;
  RET: OleVariant;
  Enum: IEnumVariant;
  Tmp: OleVariant;
  Value: Cardinal;  s: string;
begin
  Memo1.Lines.Clear;
  
  Locator := CreateOleObject(''WbemScripting.SWbemLocator'');
  WMI := Locator.ConnectServer(''.'', '''', '''', '''');
  Ret := WMI.ExecQuery(''SELECT * FROM Win32_Product'');
  Enum := IUnknown(RET._NewEnum) as IEnumVariant;
  while (Enum.Next(1, Tmp, Value) = S_OK) do
  begin
    s := Tmp.Name + ''('' + Tmp.Version + '')'';
    Memo1.Lines.Add(s);
  end;
end; 

解决方案 »

  1.   

    //项目->添加引用->.NET->System.Management
    using System.Management;private void button1_Click(object sender, EventArgs e)
    {
    ManagementClass win32_product = new ManagementClass("Win32_Product");
    ManagementObjectCollection products = win32_product.GetInstances();
    foreach (ManagementObject product in products)
    {
    textBox1.AppendText(string.Format("{0}({1})\r\n", 
    product.Properties["Name"].Value,
    product.Properties["Version"].Value));
    }
    }
      

  2.   

    给你一个工具由Microsoft提供  自动生成通过WMI操作的代码包括(C# vb.net等)http://mail.foxmail.com/cgi-bin/exs_download?uin=1014241&svrid=203&fid=7fb5d6a58e8d26a70f3d0d715a272fa6acf6b1cfba38326d&code=a798d3f2