使用wmi方式來獲取移動磁碟序列號僅支援vista及以上系統。網上有些資料顯示,在xp系統下能夠使用wmi獲取序列號,我反正試過了都不行。後來在證實了這一點!廢話少說,直接上**:
#include #include #pragma comment(lib,"wbemuuid.lib")
hresult getserialnumber(void)
hres = coinitializesecurity(
null,
-1, // com authentication
null, // authentication services
null, // reserved
rpc_c_authn_level_default, // default authentication
rpc_c_imp_level_impersonate, // default impersonation
null, // authentication info
eoac_none, // additional capabilities
null // reserved
);if (failed(hres) && rpc_e_too_late != hres)
hres = cocreateinstance(clsid_wbemlocator, 0, \
clsctx_inproc_server, iid_iwbemlocator, (lpvoid *) &pwbemloc);
if (failed(hres))
hres = pwbemloc->connectserver(
_bstr_t(l"root\\cimv2"), // object path of wmi namespace
null, // user name. null = current user
null, // user password. null = current
0, // locale. null indicates current
null, // security flags.
0, // authority (e.g. kerberos)
0, // context object
&pwbemsvc // pointer to iwbemservices proxy
);if (failed(hres))
hres = cosetproxyblanket(
pwbemsvc, // indicates the proxy to set
rpc_c_authn_winnt, // rpc_c_authn_***
rpc_c_authz_none, // rpc_c_authz_***
null, // server principal name
rpc_c_authn_level_call, // rpc_c_authn_level_***
rpc_c_imp_level_impersonate, // rpc_c_imp_level_***
null, // client identity
eoac_none // proxy capabilities
);if (failed(hres))
uses_conversion;
variant vtprop;
ulong uret = 0;
ienumwbemclassobject* penumclsobj = null;
iwbemclassobject* pwbemclsobj = null;
ccombstr strquery("select * from win32_diskdrive where inte***cetype='usb'");
hres = pwbemsvc->execquery(ccombstr("wql"), strquery, \
wbem_flag_forward_only | wbem_flag_return_immediately, \
0, &penumclsobj);
if (failed(hres))
pwbemsvc->release();
pwbemloc->release();
couninitialize();
return hres;
} variantinit(&vtprop);
cstringarray strarray1;
cstringarray strarray2;
cstringarray strarray3;
while (succeeded(penumclsobj->next(wbem_infinite, 1, &pwbemclsobj, &uret)))
//獲取物理磁碟號:\\.\physicaldrive0
hres = pwbemclsobj->get(ccombstr(_t("deviceid")), 0, &vtprop, 0, 0);
strarray1.add(analizevariant(&vtprop));
variantclear(&vtprop);
//獲取磁碟名稱
hres = pwbemclsobj->get(ccombstr(_t("model")), 0, &vtprop, 0, 0);
strarray2.add(analizevariant(&vtprop));
variantclear(&vtprop);
//獲取磁碟序列號
hres = pwbemclsobj->get(ccombstr(_t("serialnumber")), 0, &vtprop, 0, 0);
strarray3.add(analizevariant(&vtprop));
variantclear(&vtprop);
} variantclear(&vtprop);
if (penumclsobj != null)
if (pwbemclsobj != null)
pwbemsvc->release();
pwbemloc->release();
couninitialize();
return s_ok;
}
以上**已在win7 + vs 2008上測試通過。 win7 下git初級使用
今天來了解下git的基本使用 之前已經搭建好git服務,現在就來學習下git的使用.1.檔案修改與提交 計算機開始選單欄開啟git bash 切換到版本庫目錄 例如 cd g www gitserverrepository 建立乙個新目錄最為第乙個專案目錄 mkdir mylove 然後切換到改目錄...
Win7 下安裝與使用Curl
這是在我學nodejs時看到書上乙個例項用到了curl,所以就學習一下。curl是利用url語法在命令列方式下工作的開源檔案傳輸工具 curl 是乙個強大的命令列http客戶端,可以用來向目標伺服器傳送請求。所以可以使用curl代替web瀏覽器跟web服務互動。2 官網 2 為了測試curl命令,我...
Win7下安裝與使用Qwt
windows 7 專業版 64bit qt opensource windows x86 mingw530 5.7.0 qwt 6.1.3.zip qwt 6.1.3.qch 搭建好qt環境 把qwt 6.1.3.qch移動到 c qt qt5.7.0 docs qt 5.7 中 找到並開啟qt ...