导航:首页 > 安装管理 > vc遍历设备管理器

vc遍历设备管理器

发布时间:2021-08-19 16:23:40

『壹』 如何获取设备管理器中串口列表

在做上位机开发的时抄候,一般都袭会用到串口,这是写给新手看的。用串口通讯,例如,51单片机,物联网等硬件通讯,都会用到串口。 右键→我的电脑→点击 “管理” 在“设备管理器”中,会出现图下图所示,点解,端口。你会看到,计算机有哪些端口(前提,...

『贰』 vc++如何获取主板芯片组信息(已经试过api、wmi、注册表,紧急~)

wmi、注册表、shell等编程方法,可以获取到和windows设备管理器相同的信息,如果设备管理器没有,标准编程方法是获取不到的。

鲁大师的检测获取,可不是简单代码可以完成的,如果不是商业应用,建议放弃,太麻烦了。这个首先,需要做一个r0级别的驱动程序,才可以直接获取硬件信息,然后窗口程序和驱动程序进行信息交互。(对未识别硬件的简单识别或SSD这样的简单判断,这样做就可以)
但获取后,实际只是一组标识数据,是无法直接确定品牌和版本的,也无法直接判断ssd的参数和品牌。要像鲁大师那样详细的驱动信息,实际是需要一个非常详细的硬件信息对比库,将r0获取的硬件标识数据和数据库中每个产品的信息作对比,尤其是山寨产品,数据标识混乱,还需要一个智能匹配逻辑,根据周边信息作综合判定。这可不是一个简单的事情,可以说是鲁大师的“发家”根本。

『叁』 VB获取设备管理器的列表 本人刚接触Microsoft Visual.Basic.6.0.with.SP6

根据设备的Vid和Pid查找指定设备的过程如下:
调用HidD_GetHidGuid获得设备类回型GUID
调用SetupDiGetClassDevs获得设备类型GUID的全部信息答
调用SetupDiEnumDeviceInterfaces获得特定设备识别信息
调用获得特定设备路径名
调用CreateFile获得特定设备句柄
调用HidD_GetAttributes获得特定设备的Vid和Pid
完成之后
调用SetupDiDestroyDeviceInfoList销毁一个设备信息集合,并且释放所有关联的内存

『肆』 C#如何获取设备管理器中设备的详细信息(如图)

我的电脑Win10不是你那样显示,见图。所以你还是试试有没有稳定的步骤指出手工查看的步骤:

另外下面的资料你也可以参考一下:

http://stackoverflow.com/questions/3331043/get-list-of-connected-usb-devices

https://msdn.microsoft.com/en-us/library/aa394506.aspx

『伍』 vc 2010 如何自动获取系统的com口

VC/MFC 如何获取系统中已有的COM口
VC/MFC 如何获取系统中已有的COM口
VC/MFC 如何获取系统中已有的COM口
int CUtil::GetSystemPorts(CString *pNameList, CString *pPortList)
{
CRegKey RegKey;
int nCount = 0;

if(RegKey.Open(HKEY_LOCAL_MACHINE, "Hardware\\DeviceMap\\SerialComm") == ERROR_SUCCESS)
{
while(true)
{
char ValueName[_MAX_PATH];
unsigned char ValueData[_MAX_PATH];
DWORD nValueSize = _MAX_PATH;
DWORD nDataSize = _MAX_PATH;
DWORD nType;

if(::RegEnumValue(HKEY(RegKey), nCount, ValueName, &nValueSize, NULL, &nType, ValueData, &nDataSize) == ERROR_NO_MORE_ITEMS)
{
break;
}

if(pNameList)
pNameList[nCount] = ValueName;

if(pPortList)
pPortList[nCount] = ValueData;

nCount++;
}
}

return nCount;
}

void CSyst_Setting::CheckComPort()
{
HKEY hKey;
DWORD dwCount=0;//保存检索项的结果,即COM端口总数
DWORD dwBufLen=_MAX_PATH;//缓存大小

DWORD dwBufLen1[_MAX_PATH];//缓存大小
::FillMemory((LPVOID)dwBufLen1,_MAX_PATH*2,0xFF);
DWORD dwBufLen2[_MAX_PATH];//缓存大小
::FillMemory((LPVOID)dwBufLen2,_MAX_PATH*2,0xFF);

DWORD dwTp=REG_DWORD;//待检索项的数据类型

CString subKey=_T("SYSTEM\\CurrentControlSet\\Services\\serenum\\Enum");

if(ERROR_SUCCESS!=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey,
NULL,KEY_QUERY_VALUE,&hKey))
return;//打开注册表失败,退出程序

//注册表打开成功,进一步检索设备管理器的设备树显示的端口节点里COM口的个数
if(ERROR_SUCCESS!=::RegQueryValueEx(hKey, _T("Count"), NULL, &dwTp,
(LPBYTE)&dwCount, &dwBufLen))
{
::RegCloseKey( hKey );
return;//检索失败,退出
}

HKEY hKey1;
CString subKey1=_T("SYSTEM\\CurrentControlSet\\Enum\\");//的COM设备名字检索路径
CString strReg;
CString strACPI(_T('\0'),_MAX_PATH);
LPSTR lpstrACPI=strACPI.GetBuffer(_MAX_PATH);

CString strACPI1(_T('\0'),_MAX_PATH);
LPSTR lpstrACPI1=strACPI1.GetBuffer(_MAX_PATH);

for(unsigned int i=0;i<dwCount;i++)//COM端口数检索成功,进一步检索在设备管理器里出现的文字
{

strReg.Format("%d",i);

if(::RegQueryValueEx(hKey,(LPCSTR)strReg,NULL,
&dwTp,(LPBYTE)lpstrACPI,&dwBufLen1[i])
!=ERROR_SUCCESS)
break;//检索失败,退出

subKey1=subKey1+lpstrACPI;

if(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,subKey1,
NULL,KEY_QUERY_VALUE,&hKey1)!=ERROR_SUCCESS)
break;//打开注册表失败,退出程序

DWORD dwTp1=REG_SZ;//此处即为COM的说明文字项数据类型
if(ERROR_SUCCESS!=::RegQueryValueEx(hKey1, _T("FriendlyName"), NULL, &dwTp1,
(LPBYTE)lpstrACPI1, &dwBufLen2[i]))//检索COM口具体说明文字,即FriendlyName的值
break;//检索失败,退出

//-------------------------------
CString strNum;
// strNum =GetStr(lpstrACPI1);
strNum.Format(_T( "%s "), lpstrACPI1);
int i;
CString shuzi;

for(i=0;i< strNum.GetLength();i++)
{
int unicode = (int)strNum.GetAt(i);
if (unicode <= '9' && unicode >= '0')
{
shuzi += strNum.GetAt(i);
}

}
shuzi="COM"+shuzi;
m_intPort.AddString(shuzi);//添加检索的值添加到组合列表框
m_intPort2.AddString(shuzi);//添加检索的值添加到组合列表框

//---------------------------

// m_Com1.AddString(lpstrACPI1);//添加检索的值添加到组合列表框

strReg.Empty();//重新对变量赋值,避免前后冲突
subKey1.Empty();
subKey1=_T("SYSTEM\\CurrentControlSet\\Enum\\");
strACPI.Empty();
strACPI1.Empty();
strACPI=CString(_T('\0'),_MAX_PATH);
strACPI1=CString(_T('\0'),_MAX_PATH);

}

strACPI.ReleaseBuffer();
strACPI1.ReleaseBuffer();
::RegCloseKey( hKey1 );
::RegCloseKey( hKey );
m_intPort.SetCurSel(0);
m_intPort2.SetCurSel(0);

}

『陆』 vc获得usb设备名称

如果抄是动态监测,即监测U盘插入可以通过监听WM_DEVICECHANGE消息来实现,并从WM_DEVICECHANGE消息的lParam里获取盘符。

如果是静态检测,即U盘已经插入,可以通过WinAPI GetDriveType 获得驱动器类型。用一个循环判断所有当前驱动器(结合GetLogicalDriveStrings),如果类型为DRIVE_REMOVABLE,则该驱动器为U盘。

具体代码例子网上都可以搜索到的,google一下吧,祝你成功。

『柒』 在桌面状态下设备管理器中CPU使用总是100%,另外有时还出现蓝屏重启现象,请帮忙解决.

经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:
CPU占用率高的九种可能
1、防杀毒软件造成故障
由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,或者,升级你的硬件配备。
2、驱动没有经过认证,造成CPU资源占用100%
大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。
3、病毒、木马造成
大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。
4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。
5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。
6、查看“svchost”进程。
svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。
7、查看网络连接。主要是网卡。
8、查看网络连接
当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。
要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出:
如果计算机有512MB以上的内存,键入“1024”;如果计算机内存小于512 MB,键入“256”。
9、看看是不是Windows XP使用鼠标右键引起CPU占用100%
前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,

『捌』 如何获取硬件信息,象windows的设备管理器一样

计算机硬件信息可通过windows自带设备管理器,或其他硬件信息检测工具来快速获取。
设备管理器:桌面“我的电脑”图标点右键,选择“设备管理器”(或“管理”,在“计算机管理”窗口左侧选择“设备管理器”)

鲁大师:

其他软件,如驱动精灵、驱动人生等也可快速、正确的获取本机内硬件信息。

『玖』 怎样用delphi获得计算机设备管理器中的COM号

如果是获取复计算机设备中制的 COM 端口列表,可以通过 windows 系统的注册表中相关信息来完成,有关计算机设备中的 COM 端口列表数据,保存在注册表的 HKEY_LOCAL_MACHINE
HardwareDevicemapSerialComm 节点。

以下是示例代码:

usesSystem.Win.Registry;

{$R*.dfm}

procereTForm1.Button1Click(Sender:TObject);
var
reg:TRegistry;
ts:TStrings;
i:Integer;
begin
reg:=TRegistry.Create;

reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('HardwareDevicemapSerialComm',False);

ts:=TStringList.Create;
reg.GetValueNames(ts);

reg.CloseKey;
reg.Free;

ts.Free;
end;
阅读全文

与vc遍历设备管理器相关的资料

热点内容
黑龙江特种设备检验研究院 浏览:210
机械化养护中心 浏览:838
上海特种设备管理 浏览:48
机械师改枪 浏览:181
机械化剪纸 浏览:757
美燃环保设备 浏览:809
济南北斗星数控设备有限公司 浏览:838
自动喷涂机械手 浏览:457
中小型农业机械加工项目建议书 浏览:251
不锈钢加工设备市转让 浏览:441
水稻生产全程机械化 浏览:110
扳手机械原理 浏览:61
凯格精密机械有限公司 浏览:61
广毅机电设备 浏览:805
重庆三阳办公设备有限公司 浏览:494
华技达自动化设备 浏览:631
东莞石碣自动化设备厂 浏览:131
机械制图陈列柜 浏览:246
郑州奥鑫游乐设备公司 浏览:733
美邦环保设备有限公司 浏览:386