2014-11-02 171 views
-2

我有一些問題(c#)。使用c獲取系統信息#

  1. 我可以檢索從Win32的踢腳線一些主板的信息,但是當我想型號 但累積的錯誤。

  2. 我們如何獲得Windows上安裝的軟件列表(如xp)。

  3. 我們如何獲得Windows上安裝的外圍設備列表(包括詳細信息)(如掃描儀,網絡攝像頭)。

  4. 如何獲得總數直接數量的公羊(剛)。

+3

你可以找到所有這些問題的答案已經在SO。 – 2014-11-02 08:29:49

+0

雖然我回答了你應該讓你的問題更清楚你確實使用了WMI並提供了一個代碼示例。 – e4rthdog 2014-11-02 08:57:30

+0

我發現第一個問題的答案 - 「模型是空白的」-tnx到e4rthdog – 2014-11-02 10:56:07

回答

1

使用WMI(我懷疑你已經在使用它):

  1. 型號爲空白。嘗試Manufacturer屬性。同時獲取Product屬性以獲取模型。

  2. 安裝的軟件:獲取Win32_Product類。

  3. 嘗試Win32_PnPSignedDriver類並重復遍歷。

  4. 使用Win32_ComputerSystem類和得到TotalPhysicalMemory財產。

獲取WMIEXPLORER並與之一起玩。LINK

樣品爲C#:

如果您需要連接到使用證書的遠程計算機(strUserName中和strPassword變量):

private ManagementScope CreateNewManagementScope(string server) 
{ 
    string serverString = @"\\" + server + @"\root\cimv2"; 

    ManagementScope scope = new ManagementScope(serverString); 

    if (!chkUseCurrentUser.Checked) 
    { 
     ConnectionOptions options = new ConnectionOptions 
          { 
           Username = strUsername, 
           Password = strPassword, 
           Impersonation = ImpersonationLevel.Impersonate, 
           Authentication = AuthenticationLevel.PacketPrivacy 
          }; 
     scope.Options = options; 
    } 

    return scope; 
} 

獲取服務:

private void GetServicesForComputer(string computerName) 
{ 
    ManagementScope scope = CreateNewManagementScope(computerName); 

    SelectQuery query = new SelectQuery("select * from Win32_Service"); 

    try 
    { 
     using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query)) 
     { 
      ManagementObjectCollection services = searcher.Get(); 

      List<string> serviceNames = 
       (from ManagementObject service in services select service["Caption"].ToString()).ToList(); 

      lstServices.DataSource = serviceNames; 
     } 
    } 
    catch (Exception exception) 
    { 
     lstServices.DataSource = null; 
     lstServices.Items.Clear(); 
     lblErrors.Text = exception.Message; 
     Console.WriteLine(Resources.MainForm_GetServicesForServer_Error__ + exception.Message); 
    } 
} 

從wmiexplorer一些屏幕:

enter image description here enter image description here enter image description here enter image description here