<div class="blogpost-body" id="cnblogs_post_body">
<p>最近在公司实习,有个应用需要获取windows主机的一些硬件信息,在网上查阅了一些资料,大部分都是使用WMI编程来实现的。</p>
<p>因此小菜鸟自己也用WMI实现了一下,封装为函数GetUserInfo(),具体代码如下:</p>
<p>头文件UserInfo.h:</p>
<div class="cnblogs_code">
<img alt="" class="code_img_closed" id="code_img_closed_d5b388c8-45c5-4f7f-9019-d90fc0ba9ca5" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8f900a89c6347c561fdf2122f13be562.gif">
<img alt="" class="code_img_opened" id="code_img_opened_d5b388c8-45c5-4f7f-9019-d90fc0ba9ca5" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-961ddebeb323a10fe0623af514929fc1.gif">
<div class="cnblogs_code_hide" id="cnblogs_code_open_d5b388c8-45c5-4f7f-9019-d90fc0ba9ca5">
<pre class="blockcode"><span style="color:#008080;"> 1</span> <span style="color:#0000ff;">#pragma</span> once
<span style="color:#008080;"> 2</span> #include <span style="color:#800000;">"</span><span style="color:#800000;">stdafx.h</span><span style="color:#800000;">"</span>
<span style="color:#008080;"> 3</span> <span style="color:#0000ff;">#define</span> _WIN32_DCOM
<span style="color:#008080;"> 4</span> #include <comdef.h>
<span style="color:#008080;"> 5</span> #include <Wbemidl.h>
<span style="color:#008080;"> 6</span> # pragma comment(lib, <span style="color:#800000;">"</span><span style="color:#800000;">wbemuuid.lib</span><span style="color:#800000;">"</span><span style="color:#000000;">)
</span><span style="color:#008080;"> 7</span> <span style="color:#0000ff;">using</span> <span style="color:#0000ff;">namespace</span><span style="color:#000000;"> std;
</span><span style="color:#008080;"> 8</span>
<span style="color:#008080;"> 9</span> typedef <span style="color:#0000ff;">struct</span><span style="color:#000000;"> UserInfo_t
</span><span style="color:#008080;">10</span> <span style="color:#000000;">{
</span><span style="color:#008080;">11</span> <span style="color:#0000ff;">char</span> CpuID[<span style="color:#800080;">20</span>]; <span style="color:#008000;">//</span><span style="color:#008000;">CPU序列号</span>
<span style="color:#008080;">12</span> <span style="color:#0000ff;">char</span> BaseBoardID[<span style="color:#800080;">256</span>]; <span style="color:#008000;">//</span><span style="color:#008000;">主板ID</span>
<span style="color:#008080;">13</span> <span style="color:#0000ff;">char</span> SystemDiskID[<span style="color:#800080;">256</span>]; <span style="color:#008000;">//</span><span style="color:#008000;">系统所在硬盘的序列号</span>
<span style="color:#008080;">14</span> <span style="color:#0000ff;">char</span> BIOSID[<span style="color:#800080;">20</span>]; <span style="color:#008000;">//</span><span style="color:#008000;">BIOS序列号</span>
<span style="color:#008080;">15</span> <span style="color:#0000ff;">char</span> MacAddress[<span style="color:#800080;">20</span>]; <span style="color:#008000;">//</span><span style="color:#008000;">MAC地址</span>
<span style="color:#008080;">16</span> <span style="color:#000000;">}UserInfo;
</span><span style="color:#008080;">17</span>
<span style="color:#008080;">18</span> <span style="color:#0000ff;">int</span> GetUserInfo(UserInfo &info);</pre>
</div>
<span class="cnblogs_code_collapse">View Code</span>
</div>
<p>源代码GetUerInfo.cpp:</p>
<div class="cnblogs_code">
<img alt="" class="code_img_closed" id="code_img_closed_8f066c1d-a0a5-4871-bc38-631a54274974" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8f900a89c6347c561fdf2122f13be562.gif">
<img alt="" class="code_img_opened" id="code_img_opened_8f066c1d-a0a5-4871-bc38-631a54274974" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-961ddebeb323a10fe0623af514929fc1.gif">
<div class="cnblogs_code_hide" id="cnblogs_code_open_8f066c1d-a0a5-4871-bc38-631a54274974">
<pre class="blockcode"><span style="color:#008080;"> 1</span> #include <span style="color:#800000;">"</span><span style="color:#800000;">UserInfo.h</span><span style="color:#800000;">"</span>
<span style="color:#008080;"> 2</span> #include <windows.h>
<span style="color:#008080;"> 3</span>
<span style="color:#008080;"> 4</span> <span style="color:#0000ff;">void</span> Trims(<span style="color:#0000ff;">char</span>* data) <span style="color:#008000;">//</span><span style="color:#008000;">去掉字符串中的空格</span>
<span style="color:#008080;"> 5</span> <span style="color:#000000;">{
</span><span style="color:#008080;"> 6</span> <span style="color:#0000ff;">int</span> i=-<span style="color:#800080;">1</span>,j=<span style="color:#800080;">0</span><span style="color:#000000;">;
</span><span style="color:#008080;"> 7</span> <span style="color:#0000ff;">int</span> ch = <span style="color:#800000;">'</span> <span style="color:#800000;">'</span><span style="color:#000000;">;
</span><span style="color:#008080;"> 8</span>
<span style="color:#008080;"> 9</span> <span style="color:#0000ff;">while</span>(data[++i] != <span style="color:#800000;">'</span><span style="color:#800000;">\0</span> |
|