我有一些问题(c#)。
我可以从win32-baseboard中检索一些主板信息,但是当我想获得Model时 但是累积了错误。
如何在Windows上获取已安装软件的列表(如xp)。
我们如何在Windows上获取已安装的外围设备列表(详细信息)(如扫描仪,网络摄像头)。
如何直接获得总的ram(just)数量。
答案 0 :(得分:1)
使用WMI(我怀疑你已经在使用它):
型号为空白。试试Manufacturer
财产。同时获取Product
属性以获取模型。
已安装的软件:获取Win32_Product
课程。
尝试Win32_PnPSignedDriver
课程并进行迭代。
使用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的一些屏幕: