Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5474|回复: 55

枚举系统中所有硬件设备

  [复制链接]

该用户从未签到

5

主题

168

帖子

335

积分

普通会员

Rank: 2

积分
335
发表于 2022-7-20 23:06:01 | 显示全部楼层 |阅读模式
虽然简单,但是实用
( x! c9 z. L5 c0 Y2 I+ i, xHDEVINFO hDevInfo;
* C6 b& m' L. E) N! \% F2 z9 ?" n SP_DEVINFO_DATA DeviceInfoData;/ j! c3 x- r+ f# {3 m
DWORD i,j;
& w3 |5 |+ i1 w4 V. } int ret=0;2 I5 N; A) t2 _2 W

* i7 M! B1 u" H) y( E) d9 A, @  hDevInfo = SetupDiGetClassDevs((LPGUID) &GUID;_DEVCLASS_MOUSE, 0, 0,DIGCF_PRESENT);//DIGCF_PROFILE);//
* G8 o2 F" A( u% c& z; ^  N; L/*
, }: Z9 h- P8 d' i2 Q- Q' ~$ r  GUID_DEVCLASS_FDC软盘控制器
+ M# Q+ T6 ]% N+ A4 r  GUID_DEVCLASS_DISPLAY显示卡
: x/ m8 ]9 d! ]- W9 @0 e  GUID_DEVCLASS_CDROM光驱$ R& G1 U. Q" R  A$ s
  GUID_DEVCLASS_KEYBOARD键盘
' x# D0 R1 B* A6 M$ c/ h/ s  GUID_DEVCLASS_COMPUTER计算机  P1 O0 @! l" J% l1 l- }+ n
  GUID_DEVCLASS_SYSTEM系统
7 h2 d8 ^" R0 q. `' Y4 ]  GUID_DEVCLASS_DISKDRIVE磁盘驱动器
% h8 ~1 e2 o) ~5 [  GUID_DEVCLASS_MEDIA声音、视频和游戏控制器
. E/ d. A2 [9 u! v4 V! Y9 U, {+ v  GUID_DEVCLASS_MODEMMODEM+ J4 L. n7 {3 H  m
  GUID_DEVCLASS_MOUSE鼠标和其他指针设备
+ Y: ~+ p7 R- r( f& I/ m  GUID_DEVCLASS_NET网络设备器3 i6 g- g' C  V' D5 r2 ?5 `
  GUID_DEVCLASS_USB通用串行总线控制器
2 I3 x/ V- s' [! [4 \9 c  GUID_DEVCLASS_FLOPPYDISK软盘驱动器$ z- T* _* e0 @* c. U9 ?
  GUID_DEVCLASS_UNKNOWN未知设备" y4 h# J/ r. }3 |5 M
  GUID_DEVCLASS_SCSIADAPTERSCSI 和 RAID 控制器" `9 ]$ H3 p" I& T. \8 ?- g, [. K
  GUID_DEVCLASS_HDCIDE ATA/ATAPI 控制器
. n6 j( W- ?3 `  \! V  GUID_DEVCLASS_PORTS端口(COM 和 LPT)
; D1 X  L+ d3 n6 r+ ^& w4 E* s  GUID_DEVCLASS_MONITOR监视器/ h* {/ c+ W% n' t& Z$ ]" R2 f% i* X/ V
  */+ Q( A0 v. g( G4 r2 \, V
        if (hDevInfo == INVALID_HANDLE_VALUE){
; M7 z: D# F; S                // Insert error handling here.
* N9 L5 x& @' c* i4 L8 \1 z               // return ;
: M8 s1 W( k8 a8 t1 ]! y        }
& c& k$ g' G( k: z) M2 B// Enumerate through all devices in Set.
. N* d6 D- [, R. T9 a        DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
' m, O+ p% D; F8 Q  u3 Y        for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData;);i++) {
- {! T: \  x  n  F  K( s
* L. E  F( ~2 @7 H- u        DWORD DataT;2 i  h. G( J( b  k: r% Z) q
        //LPTSTR buffer = NULL;: c0 }3 N6 P! Q; [0 |
        char buffer[2048];' _0 e+ s/ `! K4 m# y" C
        DWORD buffersize =sizeof(buffer);
! ?  H: _7 k8 j# i1 N3 U+ I( |. ^        while (!SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData;, SPDRP_FRIENDLYNAME, &DataT;, (PBYTE)buffer,  buffersize,  &buffersize;))) ~& l- U: h2 Y
        {
! |# R; h$ |+ z) E# [                if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)3 A/ ?& w0 \* D4 ?* R% v
                {
$ m0 k( `& A: [+ d. a9 t9 U                // Change the buffer size.
6 ]5 p6 h$ W+ W: b. ^9 r                //if (buffer) LocalFree(buffer);; S* j* B* L1 k& E! _/ Z
                //buffer = (PSP_INF_INFORMATION)LocalAlloc(LPTR,buffersize);0 ~: t6 m, H! y: U- S# f5 ~$ M
               // <!--[if !supportEmptyParas]--><!--[endif]-->
2 [( T$ P+ A- y                }% K( k! c  M5 H
                else {
5 ^: w& Y9 Q2 L8 t: m  f% F+ B, m6 x7 @, e9 j" p
        // Insert error handling here.5 R  I% f1 M' Q
                break;. l1 I, X6 Z6 }1 w5 t2 T, V
                }7 {: Z) Q# L* s$ x
        }9 r" F! V5 h& E$ Y* r
        if (buffer != NULL && i == 0)2 L: Z5 q& W  |: P- Q' L* Y' A" u1 x
        {
( D$ M/ t; N2 v//            temp.Format(&quot;&quot;);
9 @$ B- _8 k5 W' S; i//            str += temp;
8 ~  G5 L; c+ |- }        }/ N2 u% E4 Z8 X4 F1 D6 K: |( X' i
//        temp.Format(&quot;%s&quot;,buffer);
' ]1 B6 ~  k& r3 A6 ^  C//        str += temp;
& X5 L0 _: n- M. S1 i  W, c% h        if (buffer) Lo' F) G; V  P/ `6 Q! F
4 v! K( j, P7 D) R
( E; q- M5 H2 [8 u: ^; u
资源下载地址和密码(百度云盘):
游客,如果您要查看本帖隐藏内容请回复
[/hide] 百度网盘信息回帖可见
6 Y+ D. Q0 j  x. ^( ^7 X. Z
& [+ X+ v$ x9 D+ }, y
) K2 C6 a2 J/ R# P3 J  j4 U, M$ f
$ R8 T2 i$ R- f" B' K) j本资源由Java自学网收集整理【www.javazx.com】
回复

使用道具 举报

该用户从未签到

0

主题

4162

帖子

8326

积分

普通会员

Rank: 2

积分
8326
发表于 2022-7-20 23:16:09 | 显示全部楼层
学习下
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4150

帖子

8302

积分

普通会员

Rank: 2

积分
8302
发表于 2022-8-11 21:35:00 | 显示全部楼层
多谢楼主 收下了
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

4133

帖子

8266

积分

普通会员

Rank: 2

积分
8266
发表于 2022-8-29 23:30:27 | 显示全部楼层
不错哟 谢谢楼主
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-5-29 22:24
  • 签到天数: 3 天

    [LV.2]登堂入室

    0

    主题

    4131

    帖子

    8293

    积分

    普通会员

    Rank: 2

    积分
    8293
    发表于 2022-9-19 13:00:16 | 显示全部楼层
    像看看 内容
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4121

    帖子

    8244

    积分

    普通会员

    Rank: 2

    积分
    8244
    发表于 2022-9-22 11:45:09 | 显示全部楼层
    佩服佩服!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-27 10:48
  • 签到天数: 9 天

    [LV.3]初窥堂奥

    0

    主题

    4195

    帖子

    8496

    积分

    普通会员

    Rank: 2

    积分
    8496
    发表于 2022-10-5 19:24:02 | 显示全部楼层
    呵呵。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-10 10:38
  • 签到天数: 5 天

    [LV.2]登堂入室

    0

    主题

    4088

    帖子

    8259

    积分

    普通会员

    Rank: 2

    积分
    8259
    发表于 2022-10-22 17:49:48 | 显示全部楼层
    大佬  厉害呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4144

    帖子

    8298

    积分

    禁止发言

    积分
    8298
    发表于 2022-11-13 09:26:10 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4080

    帖子

    8162

    积分

    普通会员

    Rank: 2

    积分
    8162
    发表于 2022-11-26 08:26:01 | 显示全部楼层
    VERY GOOOOOOD
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-11-25 20:54 , Processed in 0.109646 second(s), 25 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表