使用WMI编程获取主机硬件信息(CPU_ID,硬盘、主板、BIOS序列号,Mac地址)

论坛 期权论坛     
选择匿名的用户   2021-5-30 11:17   181   0
<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;">&#34;</span><span style="color:#800000;">stdafx.h</span><span style="color:#800000;">&#34;</span>
<span style="color:#008080;"> 3</span> <span style="color:#0000ff;">#define</span> _WIN32_DCOM
<span style="color:#008080;"> 4</span> #include &lt;comdef.h&gt;
<span style="color:#008080;"> 5</span> #include &lt;Wbemidl.h&gt;
<span style="color:#008080;"> 6</span> # pragma comment(lib, <span style="color:#800000;">&#34;</span><span style="color:#800000;">wbemuuid.lib</span><span style="color:#800000;">&#34;</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 &amp;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;">&#34;</span><span style="color:#800000;">UserInfo.h</span><span style="color:#800000;">&#34;</span>
<span style="color:#008080;">  2</span> #include &lt;windows.h&gt;
<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&#61;-<span style="color:#800080;">1</span>,j&#61;<span style="color:#800080;">0</span><span style="color:#000000;">;
</span><span style="color:#008080;">  7</span>     <span style="color:#0000ff;">int</span> ch &#61; <span style="color:#800000;">&#39;</span> <span style="color:#800000;">&#39;</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[&#43;&#43;i] !&#61; <span style="color:#800000;">&#39;</span><span style="color:#800000;">\0</span>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP