Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5721|回复: 55

枚举系统中所有硬件设备

  [复制链接]

该用户从未签到

10

主题

177

帖子

364

积分

普通会员

Rank: 2

积分
364
发表于 2022-7-20 23:06:01 | 显示全部楼层 |阅读模式
虽然简单,但是实用
4 M9 s# K- G* s( g( o/ g, CHDEVINFO hDevInfo;7 x7 s* M/ u% \7 I
SP_DEVINFO_DATA DeviceInfoData;; r- u9 S$ [4 a8 S) T; L
DWORD i,j;
7 |2 g0 H3 W5 X, d8 n int ret=0;* f' V7 b# x3 S3 W9 t- V+ W
$ J3 ]1 I- Z6 @2 }$ U. P4 ]9 I
  hDevInfo = SetupDiGetClassDevs((LPGUID) &GUID;_DEVCLASS_MOUSE, 0, 0,DIGCF_PRESENT);//DIGCF_PROFILE);//
( @7 `! [9 G' L6 a' z* K" m/*6 C5 n" M1 `/ T+ ^
  GUID_DEVCLASS_FDC软盘控制器' K5 Q2 b  B9 T) h! f( _; x
  GUID_DEVCLASS_DISPLAY显示卡$ v, E- J1 [& Q$ S
  GUID_DEVCLASS_CDROM光驱& ^6 T9 R5 n$ j9 e3 \/ v9 W; d) @
  GUID_DEVCLASS_KEYBOARD键盘
! t; ]2 C% R% Z$ J- M  GUID_DEVCLASS_COMPUTER计算机0 ^8 K: a. ~2 [( T7 T3 h* R* Q0 S' G+ v7 J
  GUID_DEVCLASS_SYSTEM系统
: C3 E3 R  w1 e( q! A/ f$ P. b9 I  GUID_DEVCLASS_DISKDRIVE磁盘驱动器5 k, i( d# C3 {/ h0 o# z' q
  GUID_DEVCLASS_MEDIA声音、视频和游戏控制器
( `* ~1 y$ a9 M  GUID_DEVCLASS_MODEMMODEM
( u* c5 Y" {" Y  GUID_DEVCLASS_MOUSE鼠标和其他指针设备0 c! {3 E" m, E9 A4 Y  C
  GUID_DEVCLASS_NET网络设备器
" ^8 z/ w4 K' x0 p2 e  GUID_DEVCLASS_USB通用串行总线控制器, N2 q0 x! C6 \" ~7 J
  GUID_DEVCLASS_FLOPPYDISK软盘驱动器( W+ A7 E" N3 B4 Y$ u# `
  GUID_DEVCLASS_UNKNOWN未知设备; Y6 x9 b2 u+ x& v
  GUID_DEVCLASS_SCSIADAPTERSCSI 和 RAID 控制器
% Y* }8 l/ s' ?6 d& h5 E  GUID_DEVCLASS_HDCIDE ATA/ATAPI 控制器
  j) n/ H, F2 x% Z  GUID_DEVCLASS_PORTS端口(COM 和 LPT)
3 c$ q: k! \' T" W: s4 S  GUID_DEVCLASS_MONITOR监视器
# D/ m+ y' v5 Z) R  */
( U/ D* N) J% {3 E5 o6 h        if (hDevInfo == INVALID_HANDLE_VALUE){
0 i: `" n( N7 Z% V" g                // Insert error handling here.1 J0 x! j. C* V, W% T
               // return ;8 w1 v; J6 l  z" C
        }7 @' n' Q3 E% a: @9 u
// Enumerate through all devices in Set.
1 V; |) D( Q% b+ M# I6 p" t; f# k        DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);' d( u0 w6 v  E
        for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData;);i++) {, p, ]1 t! ~& z2 `
8 {$ ^7 K) ~7 I+ K1 Z0 w
        DWORD DataT;
% ~$ O; a' N8 u2 O; J  l: k; |: Y        //LPTSTR buffer = NULL;
  ]- `* ^% `" s5 G* e        char buffer[2048];" y* h4 E) n5 N+ k! [0 ~% H4 O
        DWORD buffersize =sizeof(buffer);# e" Y& }( h; U* u
        while (!SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData;, SPDRP_FRIENDLYNAME, &DataT;, (PBYTE)buffer,  buffersize,  &buffersize;))6 E0 l  C  C$ Z) F; [+ {
        {
8 V, B: `' `1 O$ D                if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)& |, `6 P6 ^# P
                {2 I6 m' i( `- G( @
                // Change the buffer size.
8 {5 S, h1 z; e" l& M                //if (buffer) LocalFree(buffer);: p7 v( R  I/ S$ E  M$ U* ~4 ^
                //buffer = (PSP_INF_INFORMATION)LocalAlloc(LPTR,buffersize);/ U4 i1 k7 {- n0 i" k  l
               // <!--[if !supportEmptyParas]--><!--[endif]-->2 b0 X4 \* p5 C0 Z; ]
                }0 X! ]* E1 F2 N" d4 P
                else {0 [# r( O2 p- u" T

; `1 |% i6 h; r6 D. B  J        // Insert error handling here.5 Q( O" t8 T9 Q3 ?" B/ R
                break;
0 q* I* ?2 O* p* ^% a                }
3 M$ h& Y0 t- |  P, d        }
) \+ I. a* n; S) R' D8 s        if (buffer != NULL && i == 0)
4 Q5 B4 W9 g6 U: B) z' ?+ M: O) e, c        {
* J% g+ F/ O4 p: L$ E//            temp.Format(&quot;&quot;);
* l# {6 ^& F6 u) J" Q5 N//            str += temp;
2 J+ Z4 J. l, a! F* |- K        }
4 F: T' u. f8 G6 e) w; V//        temp.Format(&quot;%s&quot;,buffer);
& |% _# M* n7 Y: x" q( e% ~//        str += temp;9 K7 e8 n) i& z) X
        if (buffer) Lo& q. x( G% d/ f3 ]7 r( |; P9 C
0 Q5 F& A3 Q, s2 L1 n3 G$ B

/ t2 J6 ^7 z1 |' }& F5 Q  v8 R( M8 N资源下载地址和密码(百度云盘):
游客,如果您要查看本帖隐藏内容请回复
[/hide] 百度网盘信息回帖可见& n" g$ y/ j# ^9 R
: Z+ \. e" ?1 g$ e2 ]! w
3 L* D3 r4 ]1 M; ~% V/ M& U

# H) f, P0 i4 q9 L' c* A7 D本资源由Java自学网收集整理【www.javazx.com】
回复

使用道具 举报

该用户从未签到

0

主题

4503

帖子

9008

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4508

帖子

9018

积分

普通会员

Rank: 2

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

使用道具 举报

该用户从未签到

0

主题

4496

帖子

8992

积分

普通会员

Rank: 2

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

使用道具 举报

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

    [LV.2]登堂入室

    0

    主题

    4484

    帖子

    8999

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4460

    帖子

    8922

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    [LV.3]初窥堂奥

    0

    主题

    4529

    帖子

    9164

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    [LV.2]登堂入室

    0

    主题

    4428

    帖子

    8939

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4523

    帖子

    9056

    积分

    禁止发言

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

    使用道具 举报

    该用户从未签到

    0

    主题

    4436

    帖子

    8874

    积分

    普通会员

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-2-23 11:23 , Processed in 0.126537 second(s), 25 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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