a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 60|回复: 0

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

[复制链接]
发表于 2012-7-31 21:56:58 | 显示全部楼层 |阅读模式
  用C语言实现禁用网卡的代码
4 Y0 g, b, ^6 e2 f) q% C7 K  #include $ I9 w6 K5 y0 Y5 [8 Z( k5 z6 t
  #include " \4 |/ t, G: k8 l# x
  #include : y: t' ]+ I+ c- S) P! \8 N$ q0 V
  #include 4 [; ?6 |  L7 U3 i+ ]
  void EnumDevices(HDEVINFO hDevInfo)
5 d, N: l, W, `- l  {
, b  J, a( V- x# Q  SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};* b, A0 g9 d* O& f6 _  I4 g
  LPOLESTR guid;
( W: }" S5 V4 R6 q. ^5 L  char devName[128];
1 T6 M- q, D- [8 I3 H) h$ W1 ~  char instanceId[128];
( l! o4 J. `5 S; `- E" g! L; C1 v  for (int i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++); D  m* {% z: {' u2 I
  {
' a* V$ s+ z5 Q( ~0 P  StringFromCLSID(DeviceInfoData.ClassGuid,&guid);% a, y3 u; `, n
  SetupDiClassNameFromGuid(&DeviceInfoData.ClassGuid,devName,128,NULL);
  e7 J9 \$ p( T' n& K2 ^/ a& W5 F; ]  if(!strcmp(devName,"Net"))1 ]/ J5 I5 e9 J( P* K' j, |
  {" Q- W1 c6 C; E  p% _8 g. I+ d
  SetupDiGetDeviceInstanceId(hDevInfo,&DeviceInfoData,instanceId,128,NULL);' v& ?, c2 X: D4 J4 @
  if(!strncmp(instanceId,"PCI",3))+ M4 s! b0 v' n9 c% p; Q1 g
  {
; L& i+ s% i& P  wprintf(L"%s\n",guid);# [( s# w$ ]. B5 Q. I6 l2 g
  printf("%s\n",devName);5 w7 N; w# a7 K1 U9 z2 j2 e
  printf("%s\n",instanceId);1 ~* f0 X1 e% d5 S& w2 ?, Q" }
  SP_PROPCHANGE_PARAMS params = {sizeof(SP_CLASSINSTALL_HEADER )};( \6 E7 X! ?& \* y: @
  params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
+ F8 x! o, b" P  params.Scope = DICS_FLAG_CONFIGSPECIFIC;6 ^# T" G% @8 s! [1 c0 F( L3 F$ i
  params.StateChange = DICS_DISABLE;, e+ R2 k% T5 w! @( n- P
  params.HwProfile = 0;
( r/ V" R  f5 N& h2 ~$ f  SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER*)¶ms, sizeof(SP_PROPCHANGE_PARAMS));4 S( j7 g, W/ Q8 z( k1 s4 j# N
  SetupDiChangeState(hDevInfo, &DeviceInfoData);8 A0 H7 ?: q) q4 N+ W
  }
. o7 K# C9 @3 {' m& k- @  }
2 _: }  G6 h2 }2 j! N, ]( J+ G  CoTaskMemFree(guid);
3 }1 k' k9 @& [5 K! f4 x0 J) r  }
: g0 X$ R# ^+ O7 d! S7 I  }
2 Z% W& L  p) N" O! Q  int main(int argc, char* argv[])8 S# ?" g% K9 e' g" P! [
  {
% p1 V: _$ t! h- U" q  HDEVINFO hDevInfo = INVALID_HANDLE_VALUE;, i+ O1 Y& ~- Y0 \+ U1 \5 h$ ?
  hDevInfo = SetupDiGetClassDevs(NULL,NULL,NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES);
2 t- y3 O2 T0 J2 f0 i' U# J% \  if(INVALID_HANDLE_VALUE == hDevInfo)
; e6 {, {& n- d, T  x- l( C3 d  return GetLastError();
: B: @! S% `$ l8 V5 @/ L, u. K  EnumDevices(hDevInfo);
" h% k, Z# @6 \3 |$ \1 G  SetupDiDestroyDeviceInfoList(hDevInfo);$ @6 ~0 k! `7 Y7 X& [4 r3 }
  return 0;
' q" R8 |" g0 S0 T) ^  }
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 14:21 , Processed in 0.235653 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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