a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 47|回复: 0

[C++] 2011年计算机等级考试二级C++辅导实例编程(21)

[复制链接]
发表于 2012-7-31 21:56:58 | 显示全部楼层 |阅读模式
  用C语言实现禁用网卡的代码  m8 @" r6 S4 Z4 {- q7 x
  #include
) I" D! F0 ^- E& p" U7 z" ^: Q  #include * G% t! d7 B# M0 x
  #include 4 Z) A2 e& A" c% `" O
  #include ) @& a+ F9 |# E# Y
  void EnumDevices(HDEVINFO hDevInfo); [/ f  E/ r4 G( P- X
  {
/ m. r1 |: T$ P  SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};: s0 N8 m7 c* @! t9 H
  LPOLESTR guid;6 O. I7 ]( Q! L5 r4 A
  char devName[128];0 g$ e) L+ r* F! \* C; d! J
  char instanceId[128];
! z; x0 ~: ?+ k0 {* G  for (int i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)* h: \$ `: l; F( M. m7 s" g
  {
/ s0 d% ?; [$ R; y( l, n7 s4 S8 m  StringFromCLSID(DeviceInfoData.ClassGuid,&guid);. O8 X7 Y; t3 g# w* I1 }( n% {
  SetupDiClassNameFromGuid(&DeviceInfoData.ClassGuid,devName,128,NULL);2 A' L! Z( a, y0 e
  if(!strcmp(devName,"Net")); C" Q3 l- B& T9 S8 e+ l
  {
/ o$ _: T& ~9 @  SetupDiGetDeviceInstanceId(hDevInfo,&DeviceInfoData,instanceId,128,NULL);
5 U# A2 j+ ^/ ?* W9 g  if(!strncmp(instanceId,"PCI",3))
" _& B" U6 m  I: D  {9 C) Q+ \' v- d* H
  wprintf(L"%s\n",guid);" w. T" J. N+ Z
  printf("%s\n",devName);
( |" p4 u, N/ I3 ?  printf("%s\n",instanceId);7 \2 f& w  r" J( R& y) B5 B
  SP_PROPCHANGE_PARAMS params = {sizeof(SP_CLASSINSTALL_HEADER )};- P( y6 l. c- ~1 }2 v: h* I
  params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
' k3 I' Z: g5 x2 R9 Z  params.Scope = DICS_FLAG_CONFIGSPECIFIC;
* O& R: _3 ^2 `9 E; s; s0 Z' y  params.StateChange = DICS_DISABLE;9 A, e( n8 D6 J* w4 N+ h
  params.HwProfile = 0;
8 ?* j" d! d9 v; O1 ^  SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER*)¶ms, sizeof(SP_PROPCHANGE_PARAMS));
4 b; Y- p3 H$ ]( K: n8 [! [  SetupDiChangeState(hDevInfo, &DeviceInfoData);
: _. Q- f6 o! e: H  }
$ R8 s4 V: V! e6 f+ h. V/ j6 ]6 d0 I  }  e5 F! m! Q% M4 g7 `, Z
  CoTaskMemFree(guid);% a1 H/ i% a2 v4 [
  }
4 a) }% B! z' r* ~' _9 a  }# j2 I9 t0 w3 n- d8 c. H3 b* ~
  int main(int argc, char* argv[])
  |8 Y1 g9 S+ y6 d  {
  x" R- Z0 N. z" ^. j4 A  o4 b  HDEVINFO hDevInfo = INVALID_HANDLE_VALUE;
5 J1 k1 v3 {+ B* [  hDevInfo = SetupDiGetClassDevs(NULL,NULL,NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES);
5 ^6 A- I; x8 W/ m  b% [  if(INVALID_HANDLE_VALUE == hDevInfo)
; f$ e7 o  z# p  return GetLastError();; \' P7 Z, E6 Q- x% l- ~
  EnumDevices(hDevInfo);
- m% \( ]/ r( z  SetupDiDestroyDeviceInfoList(hDevInfo);
8 d& E# I+ u+ F7 |( z4 L  return 0;5 W# R/ H( @- q5 i9 o
  }
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 13:32 , Processed in 0.344658 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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