C#读取电脑硬件品牌信息

C#读取电脑硬件品牌信息,第1张

希望对你有用。另外读取品牌信息,只需要读取bios里的信息就可以了,codeproject里有这方面代码

using System;

using SystemManagement;

using SystemCollections;

using SystemCollectionsSpecialized;

using SystemText;

namespace RainsoftManagement

{

#region WMIPath

public enum WMIPath

{

// 硬件

Win32_Processor, // CPU 处理器

Win32_PhysicalMemory, // 物理内存条

Win32_Keyboard, // 键盘

Win32_PointingDevice, // 点输入设备,包括鼠标。

Win32_FloppyDrive, // 软盘驱动器

Win32_DiskDrive, // 硬盘驱动器

Win32_CDROMDrive, // 光盘驱动器

Win32_BaseBoard, // 主板

Win32_BIOS, // BIOS 芯片

Win32_ParallelPort, // 并口

Win32_SerialPort, // 串口

Win32_SerialPortConfiguration, // 串口配置

Win32_SoundDevice, // 多媒体设置,一般指声卡。

Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)

Win32_USBController, // USB 控制器

Win32_NetworkAdapter, // 网络适配器

Win32_NetworkAdapterConfiguration, // 网络适配器设置

Win32_Printer, // 打印机

Win32_PrinterConfiguration, // 打印机设置

Win32_PrintJob, // 打印机任务

Win32_TCPIPPrinterPort, // 打印机端口

Win32_POTSModem, // MODEM

Win32_POTSModemToSerialPort, // MODEM 端口

Win32_DesktopMonitor, // 显示器

Win32_DisplayConfiguration, // 显卡

Win32_DisplayControllerConfiguration, // 显卡设置

Win32_VideoController, // 显卡细节。

Win32_VideoSettings, // 显卡支持的显示模式。

// *** 作系统

Win32_TimeZone, // 时区

Win32_SystemDriver, // 驱动程序

Win32_DiskPartition, // 磁盘分区

Win32_LogicalDisk, // 逻辑磁盘

Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。

Win32_LogicalMemoryConfiguration, // 逻辑内存配置

Win32_PageFile, // 系统页文件信息

Win32_PageFileSetting, // 页文件设置

Win32_BootConfiguration, // 系统启动配置

Win32_ComputerSystem, // 计算机信息简要

Win32_OperatingSystem, // *** 作系统信息

Win32_StartupCommand, // 系统自动启动程序

Win32_Service, // 系统安装的服务

Win32_Group, // 系统管理组

Win32_GroupUser, // 系统组帐号

Win32_UserAccount, // 用户帐号

Win32_Process, // 系统进程

Win32_Thread, // 系统线程

Win32_Share, // 共享

Win32_NetworkClient, // 已安装的网络客户端

Win32_NetworkProtocol, // 已安装的网络协议

}

#endregion

/// <summary>

/// 获取系统信息

/// </summary>

/// <example>

/// <code>

/// WMI w = new WMI(WMIPathWin32_NetworkAdapterConfiguration);

/// for (int i = 0; i < wCount; i ++)

/// {

/// if ((bool)w[i, "IPEnabled"])

/// {

/// ConsoleWriteLine("Caption:{0}", w[i, "Caption"]);

/// ConsoleWriteLine("MAC Address:{0}", w[i, "MACAddress"]);

/// }

/// }

/// </code>

/// </example>

public sealed class WMI

{

private ArrayList mocs;

private StringDictionary names; // 用来存储属性名,便于忽略大小写查询正确名称。

/// <summary>

/// 信息集合数量

/// </summary>

public int Count

{

get { return mocsCount; }

}

/// <summary>

/// 获取指定属性值,注意某些结果可能是数组。

/// </summary>

public object this[int index, string propertyName]

{

get

{

try

{

string trueName = names[propertyNameTrim()]; // 以此可不区分大小写获得正确的属性名称。

Hashtable h = (Hashtable)mocs[index];

return h[trueName];

}

catch

{

return null;

}

}

}

/// <summary>

/// 返回所有属性名称。

/// </summary>

/// <param name="index"></param>

/// <returns></returns>

public string[] PropertyNames(int index)

{

try

{

Hashtable h = (Hashtable)mocs[index];

string[] result = new string[hKeysCount];

hKeysCopyTo(result, 0);

ArraySort(result);

return result;

}

catch

{

return null;

}

}

/// <summary>

/// 返回测试信息。

/// </summary>

/// <returns></returns>

public string Test()

{

try

{

StringBuilder result = new StringBuilder(1000);

for (int i = 0; i < Count; i++)

{

int j = 0;

foreach(string s in PropertyNames(i))

{

resultAppend(stringFormat("{0}:{1}={2}\n", ++j, s, this[i, s]));

if (this[i, s] is Array)

{

Array v1 = this[i, s] as Array;

for (int x = 0; x < v1Length; x++)

{

resultAppend("\t" + v1GetValue(x) + "\n");

}

}

}

resultAppend("======WMI=======\n");

}

return resultToString();

}

catch

{

return stringEmpty;

}

}

/// <summary>

/// 构造函数

/// </summary>

/// <param name="path"></param>

public WMI(string path)

{

names = new StringDictionary();

mocs = new ArrayList();

try

{

ManagementClass cimobject = new ManagementClass(path);

ManagementObjectCollection moc = cimobjectGetInstances();

bool ok = false;

foreach(ManagementObject mo in moc)

{

Hashtable o = new Hashtable();

mocsAdd(o);

foreach (PropertyData p in moProperties)

{

oAdd(pName, pValue);

if (!ok) namesAdd(pName, pName);

}

ok = true;

moDispose();

}

mocDispose();

}

catch(Exception e)

{

throw new Exception(eMessage);

}

}

/// <summary>

/// 构造函数

/// </summary>

/// <param name="path"></param>

public WMI(WMIPath path): this(pathToString())

{

}

}

}

python比较底层的鼠标键盘 *** 作使用 win32api 包,使用这个包需要 win32con 配合,后者封装了几乎所有windos *** 作定义的宏,比如:

第一个参数dwflags

第二个参数是x坐标

第三个参数是y坐标

第四个参数是一般是配合 MOUSEEVENTF_WHEEL使用,默认值是120代表一滚多少距离,负数值是反向滚

第五个参数一般不需要用到,代表一下扩展信息,32位,十分不常用

一般教程会告诉你鼠标 *** 作包括按下和放开,然后后面的那四个参数不重要,记住这样用就可以了(-_-不重要~)。强迫症的人会纠结x,y的值为什么0是代表当前鼠标的位置,而不是绝对值(0,0);后面那两位0,0又是不是某个win32con定义的常量?但是如果他们这样举例可能就比较清晰明白了。

没错包括后面要讲到的keybd_event但不仅限于它,很多常量仅仅是代表布尔值False,代表不要求这参数(这才是一堆0的意义,它一般是取默认值或者当前值的意思)

第一个参数是vk_code是按键映射的编码

>

以上就是关于C#读取电脑硬件品牌信息全部的内容,包括:C#读取电脑硬件品牌信息、win *** 作(1)-键盘鼠标输入、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9633307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存