又黄又www的网站_青青草.com_在线亚洲美日韩_九九九国产视频_√天堂8资源中文在线_一区二区三区免费网站_久久久久国产一区二区三区_人妻激情偷乱视频一区二区三区_一本到在线视频

計算機二級C技巧:VC里實現WMI編程

發布時間:2011-08-29 共1頁

  實現代碼如下:
  #include "stdafx.h"
  #define _WIN32_DCOM
  #include <iostream>
  using namespace std;
  #include <comdef.h>
  #include <Wbemidl.h>
  #include <conio.h>
  # pragma comment(lib, "wbemuuid.lib")
  BOOL ManageWMI();
  int _tmain(int argc, _TCHAR* argv[])
  {
  if(!ManageWMI()) printf("%WMI Error!");
  _getch();
  return 0;
  }
  BOOL ManageWMI()
  {
  HRESULT hres;
  // Step 1: --------------------------------------------------
  // Initialize COM. ------------------------------------------
  hres = CoInitializeEx(0, COINIT_MULTITHREADED);
  if (FAILED(hres))
  {
  cout << "Failed to initialize COM library. Error code = 0x"
  << hex << hres << endl;
  return 1; // Program has failed.
  }
  // Step 2: --------------------------------------------------
  // Set general COM security levels --------------------------
  // Note: If you are using Windows 2000, you need to specify -
  // the default authentication credentials for a user by using
  // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ----
  // parameter of CoInitializeSecurity ------------------------
  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))
  {
  cout << "Failed to initialize security. Error code = 0x"
  << hex << hres << endl;
  CoUninitialize();
  return 1; // Program has failed.
  }
  // Step 3: ---------------------------------------------------
  // Obtain the initial locator to WMI -------------------------
  IWbemLocator *pLoc = NULL;
  hres = CoCreateInstance(
  CLSID_WbemLocator,
  0,
  CLSCTX_INPROC_SERVER,
  IID_IWbemLocator, (LPVOID *) &pLoc);
  if (FAILED(hres))
  {
  cout << "Failed to create IWbemLocator object."
  << " Err code = 0x"
  << hex << hres << endl;
  CoUninitialize();
  return 1; // Program has failed.
  }
  // Step 4: -----------------------------------------------------
  // Connect to WMI through the IWbemLocator::ConnectServer method
  IWbemServices *pSvc = NULL;
  // Connect to the root\cimv2 namespace with
  // the current user and obtain pointer pSvc
  // to make IWbemServices calls.
  hres = pLoc->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
  &pSvc // pointer to IWbemServices proxy
  );
  if (FAILED(hres))
  {
  cout << "Could not connect. Error code = 0x"
  << hex << hres << endl;
  pLoc->Release();
  CoUninitialize();
  return 1; // Program has failed.
  }
  cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl;
  // Step 5: --------------------------------------------------
  // Set security levels on the proxy -------------------------
  hres = CoSetProxyBlanket(
  pSvc, // Indicates the proxy to set
  RPC_C_AUTHN_WINNT, // RPC_C_AUTHN_xxx
  RPC_C_AUTHZ_NONE, // RPC_C_AUTHZ_xxx
  NULL, // Server principal name
  RPC_C_AUTHN_LEVEL_CALL, // RPC_C_AUTHN_LEVEL_xxx
  RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
  NULL, // client identity
  EOAC_NONE // proxy capabilities
  );
  if (FAILED(hres))
  {
  cout << "Could not set proxy blanket. Error code = 0x"
  << hex << hres << endl;
  pSvc->Release();
  pLoc->Release();
  CoUninitialize();
  return 1; // Program has failed.
  }
  // Step 6: --------------------------------------------------
  // Use the IWbemServices pointer to make requests of WMI ----
  // For example, get the name of the operating system
  IEnumWbemClassObject* pEnumerator = NULL;
  hres = pSvc->ExecQuery(
  bstr_t("WQL"),
  bstr_t("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = ’TRUE’"),
  WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
  NULL,
  &pEnumerator);
  if (FAILED(hres))
  {
  cout << "Query for Network Adapter Configuration failed."
  << " Error code = 0x"
  << hex << hres << endl;
  pSvc->Release();
  pLoc->Release();
  CoUninitialize();
  return 1; // Program has failed.
  }
  // Step 7: -------------------------------------------------
  // Get the data from the query in step 6 -------------------
  IWbemClassObject *pclsObj;
  ULONG uReturn = 0;
  while (pEnumerator)
  {
  HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
  &pclsObj, &uReturn);
  if(0 == uReturn)
  {
  break;
  }
  VARIANT vtProp;
  VariantInit(&vtProp);
  //hr = pclsObj->Get(L"IPSubnet", 0, &vtProp, 0, 0);
  // Get the value of the Enable property
  hr = pclsObj->Get(L"IPEnabled", 0, &vtProp, 0, 0);
  // Get the value of the MacAddress property
  if(vtProp.boolVal)
  {
  hr = pclsObj->Get(L"MacAddress", 0, &vtProp, 0, 0);
  wcout << " MacAddress : " << vtProp.bstrVal << endl;
  }
  hr = pclsObj->Get(L"IPEnabled", 0, &vtProp, 0, 0);
  if(vtProp.boolVal)
  {
  LONG lstart, lend;
  LONG idx = -1;
  BSTR* pbstr;
  SAFEARRAY *sa;
  hr = pclsObj->Get(L"Description", 0, &vtProp, 0, 0);
  if(!FAILED(hr))
  {
  wcout << "Description: " << vtProp.bstrVal << endl;
  }
  hr = pclsObj->Get(L"DNSHostName", 0, &vtProp, 0, 0);
  if(!FAILED(hr))
  {
  cout << "DNS:" << vtProp.bstrVal << endl;
  }
  hr = pclsObj->Get(L"IPAddress", 0, &vtProp, 0, 0);
  if(!FAILED(hr))
  {
  SAFEARRAY *psa = vtProp.parray;
  cout << "IP Address::" << psa << endl;
  }
  }
  VariantClear(&vtProp);
  }
  // Cleanup
  // ========
  pSvc->Release();
  pLoc->Release();
  pEnumerator->Release();
  pclsObj->Release();
  CoUninitialize();
  return 0; // Program successfully completed.
  }

百分百考試網 考試寶典

立即免費試用
免费在线日韩av| 国产精品男女视频| 欧美激情久久久久久久久久久| 日韩电影免费观看高清完整| 国产精品一级片在线观看| 欧美4khd| 欧美日韩国产91| 国产精品超碰| 亚洲日本韩国在线| 国产日韩亚洲| 九九九免费视频| 亚洲图片欧洲图片av| 久久精品黄色| 精品国产99久久久久久宅男i | 久久久三级国产网站| 午夜亚洲成人| 特一级黄色录像| 日韩精品视频在线观看免费| a√中文在线观看| 中文字幕一区二区三区乱码| 一区在线观看免费| 美女污污网站| 丁香六月激情网| 欧美久久一区| 亚洲一区二区自偷自拍| 亚洲免费伊人电影| 国产亚洲一区二区手机在线观看| www五月天com| 91极品女神在线| 国产免费成人| 丰满湿润大白屁股bbw按摩| 日韩欧美一区在线| 日本美女高清在线观看免费| 亚洲av无一区二区三区久久| 永久免费精品视频| 精品久久久久久久久久久国产字幕| 性欧美激情精品| 国产精品tv| 日韩精品在线免费看| 91精品蜜臀在线一区尤物| 久久bbxx| 91视频啊啊啊| 亚洲国产视频一区| 青青青草视频| 中文一区一区三区免费| 一区二区三区四区五区视频在线观看| 成人日韩欧美| 精品一区二区视频在线观看| 精品黑人一区二区三区久久| 精品国产91乱码一区二区三区四区| 丝袜 亚洲 另类 欧美 重口| 亚洲一区二区欧美日韩| 欧美久久一区二区三区| 亚洲国产成人在人网站天堂| 久久免费视频2| 97国产在线视频| 色综合久久99| av网站一区二区三区| 三级精品视频| 噼里啪啦在线中文观看| 亚洲va在线va天堂va偷拍| 一区二区亚洲精品国产| 午夜av成人| 久久精品五月天| 蜜桃导航-精品导航| 亚洲天堂日韩在线| 欧美另类bbbxxxxx另类| 成人黄色片网站| 国产美女精品一区二区三区| 最新精品视频在线| 97国产成人无码精品久久久| 国产日韩三区| 亚洲高清在线视频| 精品精品国产毛片在线看| 亲爱的老师6电影韩剧| 91精品国产91久久久久| 国产精品久久久久久一区二区三区| gay欧美网站| 夜色av.com| 亚洲精品网站在线| 久草视频免费在线| 久久精品aⅴ无码中文字字幕重口| 五月天丁香综合久久国产| 精品精品国产国产自在线| 精品国产31久久久久久| 欧美一区电影| 黄色免费看片| 性の欲びの女javhd| 91精品久久久久久久久久久| 欧美在线免费视屏| 影视亚洲一区二区三区| 中文字幕在线免费专区| 人妻 丝袜美腿 中文字幕| 中文字幕欧美日韩在线| 国产一区二区调教| 精品国产成人| 久久精品女人天堂av免费观看 | 91亚洲欧美激情| 久激情内射婷内射蜜桃| 欧美精品性视频| 成人免费在线视频| 亚洲国产二区| 国产精品极品在线观看| 污视频网站在线观看| 国产精品xxxxxx| 视频一区三区| 欧美午夜精品久久久久久孕妇| 一本色道久久精品| 婷婷在线播放| 性xxxxx| 中文字幕亚洲乱码| 久久精品国产2020观看福利| 国产成人综合在线观看| 日韩区一区二| brazzers在线观看| aaa免费看大片| 91精品中文字幕| 性活交片大全免费看| 亚洲国产一二三精品无码| 欧洲在线/亚洲| 国产欧美三级电影| 天堂√8在线中文| 在线国产1区| 一二三四在线观看免费高清中文在线观看 | 亚洲一区精品在线观看| 欧美男女爱爱视频| 午夜精品久久久久久久久久久久久 | 久久久www成人免费精品| 国产精品麻豆久久久| 久草成人资源| 毛片在线看网站| 久热国产视频| 国产精品久久久久毛片| 国产在线综合视频| 国产免费内射又粗又爽密桃视频| 97超级碰在线看视频免费在线看 | 国产精品入口尤物| 日韩成人av网址| 日韩免费电影网站| 亚洲欧美日韩在线播放| 亚洲国产激情av| 婷婷一区二区三区| 8x福利精品第一导航| 亚洲国产精品久久久久秋霞蜜臀| 在线观看成人黄色| 欧美激情第一页xxx| 亚洲一区二区日本| 77777亚洲午夜久久多人| 欧美成人久久久| 日韩三级在线观看| 夜夜精品视频一区二区| 日韩一区欧美小说| 99国产欧美久久久精品| 福利一区在线观看| 麻豆精品久久久| 妖精一区二区三区精品视频| 成年人在线观看| 老鸭窝av在线| 男人插女人欧美| 激情小视频在线| 精品国产第一福利网站| 欧美一区二区视频| 国产永久免费| 国产乱人视频免费播放| 日韩视频www| 欧美色图综合网| 国产精品一区二区人妻喷水| 一区二区三区在线观看www| 亚洲春色在线| 色一情一区二区三区四区| 国产99在线免费| 黑森林精品导航| 久久精品国产成人av| 国产中文字幕网| 超碰中文在线| 日韩av黄色在线| 紧缚奴在线一区二区三区| 成人av在线资源| 久久精品一区四区| 国产精品天干天干在线综合| 一区二区三区在线影院| 粉嫩欧美一区二区三区高清影视 | 探花国产精品| 免费av在线电影| 日本免费视频www| 国产一区二区影视| 午夜视频成人| 四虎国产精品永久在线国在线| 久草成人在线| 99精品视频一区| 中文字幕欧美一| 一区二区日韩av| 日韩一区二区三区三四区视频在线观看 | 亚洲精品人成电影网| 青青草娱乐视频| 日本韩国一区| 国产精品亲子伦av一区二区三区| 老司机久久99久久精品播放免费| 一级日本不卡的影视| 欧美精品日韩三级|