CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

高分求一个禁止网卡的程序。

楼主java_xzy(savage)2003-09-02 21:42:41 在 C/C++ / C语言 提问

我有2块网卡,我想在机器自动启动时,自动禁止其中一块网卡。   断掉那个网卡连接的网络。  
  有什么办法可以禁止掉? 问题点数:0、回复次数:8Top

1 楼jussoo(cuteboy)回复于 2003-09-02 22:09:26 得分 0

UPTop

2 楼cnxiaohai(相声独一处(回归,为了编程,为了C,为了CSDN))回复于 2003-09-02 22:21:26 得分 0

win   XP里不是可以在“网络连接”里面禁用吗?  
   
  WIN   98   里在“设备管理”   里也可以禁用Top

3 楼scalps(悲伤的梦)回复于 2003-09-03 00:01:14 得分 0

 
  在设备管理器里把它的驱动给停用不就可以了。  
   
  没了驱动看它怎么办,我就是把握软驱给这样禁用的。  
   
  Top

4 楼fullsail(远航)回复于 2003-09-03 00:20:53 得分 0

断掉一块,在系统中禁用这块不就可以了。  
   
  如果想两块都不用,把DHCP客户端的服务停了。呵呵。Top

5 楼java_xzy(savage)回复于 2003-09-03 21:28:50 得分 0

我要程序自动控制。Top

6 楼qianmo(广袤)回复于 2003-09-04 08:51:07 得分 0

biosTop

7 楼Skt32(荒城之月)回复于 2003-09-04 19:23:47 得分 0

#include   "stdafx.h"  
  #include   <tchar.h>          
  #include   <windows.h>      
  #include   <setupapi.h>  
   
  #pragma   comment   (lib,"setupapi")  
   
  #define   UnknownDevice   TEXT("<Unknown   Device>")  
   
  HDEVINFO   hDevInfo   =   0;  
   
   
  BOOL   StateChange(DWORD   NewState,   DWORD   SelectedItem,HDEVINFO   hDevInfo)  
  {  
          SP_PROPCHANGE_PARAMS   PropChangeParams   =   {sizeof(SP_CLASSINSTALL_HEADER)};  
          SP_DEVINFO_DATA   DeviceInfoData   =   {sizeof(SP_DEVINFO_DATA)};  
          HCURSOR   hCursor;  
   
          //  
          //   This   may   take   a   while   :^(  
          //  
          hCursor   =   SetCursor(LoadCursor(NULL,   IDC_WAIT));  
   
          //  
          //   Get   a   handle   to   the   Selected   Item.  
          //  
          if   (!SetupDiEnumDeviceInfo(hDevInfo,SelectedItem,&DeviceInfoData))  
          {  
                  printf("EnumDeviceInfo");  
                  return   FALSE;  
          }  
   
          //  
          //   Set   the   PropChangeParams   structure.  
          //  
          PropChangeParams.ClassInstallHeader.InstallFunction   =   DIF_PROPERTYCHANGE;  
          PropChangeParams.Scope   =   DICS_FLAG_GLOBAL;  
          PropChangeParams.StateChange   =   NewState;    
   
          if   (!SetupDiSetClassInstallParams(hDevInfo,  
                  &DeviceInfoData,  
                  (SP_CLASSINSTALL_HEADER   *)&PropChangeParams,  
                  sizeof(PropChangeParams)))  
          {  
                  printf("SetClassInstallParams");  
                  SetCursor(hCursor);  
                  return   FALSE;  
          }  
   
          //  
          //   Call   the   ClassInstaller   and   perform   the   change.  
          //  
          if   (!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,  
                  hDevInfo,  
                  &DeviceInfoData))  
          {  
                  printf("SetClassInstallParams");  
                  SetCursor(hCursor);  
                  return   TRUE;  
          }  
   
          SetCursor(hCursor);  
          return   TRUE;  
  }  
   
   
  BOOL   IsClassNet(   GUID   *   ClassGuid   )  
  {  
          #define   MAX_NUM     50  
   
          HKEY   hKeyClass;  
          LONG   lRet;  
          char   ClassType[MAX_NUM];  
  char   NetClass[MAX_NUM]   =   "Net";  
  DWORD   dwLength   =   MAX_NUM,dwType   =   REG_SZ;  
           
          if   (hKeyClass   =   SetupDiOpenClassRegKey(ClassGuid,KEY_READ))  
          {  
                  lRet   =   RegQueryValueEx(hKeyClass,    
                          TEXT("Class"),    
                          NULL,   &dwType,   LPBYTE(ClassType),   &dwLength);  
                  RegCloseKey(hKeyClass);  
   
  if   (lRet   !=   ERROR_SUCCESS)  
  return   FALSE;  
   
  if   (!strcmp(ClassType,NetClass))  
  return   TRUE;  
          }                                                                    
   
          return   FALSE;  
  }  
   
  int   main(int   argc,   char*   argv[])  
  {  
  if   (INVALID_HANDLE_VALUE   ==   (hDevInfo   =    
                                  SetupDiGetClassDevs(NULL,NULL,0,  
                                  DIGCF_PRESENT|DIGCF_ALLCLASSES)))  
          {  
                    printf("GetClassDevs");  
                    return   0;  
          }  
   
          DWORD   i,   Status,   Problem;  
  SP_DEVINFO_DATA   DeviceInfoData   =   {sizeof(SP_DEVINFO_DATA)};  
   
  HKEY   hKeyClass;  
  char   DeviceName[200];  
  for   (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)  
          {  
  if   (IsClassNet(&DeviceInfoData.ClassGuid))  
  {  
  printf("   the   class's   index   is   %d\n",i);  
                                                        //  
  //DICS_DISABLE-->禁用网络  
  //DICS_ENABLE--->恢复网络  
  //  
  if   (StateChange(DICS_ENABLE,i,hDevInfo))  
  printf("NetWork   stopped");  
   
  }  
  }  
   
  return   0;  
  }  
   
  Top

8 楼java_xzy(savage)回复于 2003-09-06 20:05:41 得分 0

大哥,我不会C,上面那个程序能不能编译一下,发到我的信箱。   java_xzy@163.netTop

相关问题

  • 如何用程序禁止/启动网卡?
  • 网卡驱动程序
  • 禁止网卡,网卡禁止 高手请进
  • 怎么使程序在网卡加载好后启动。(开机后,等半分钟才加载好网卡)
  • 谁有Billionton网卡的驱动程序,65分送上!!!!!!!!急,急,急!!!!!!!
  • 寻找TFE-100TX(RTL8139B) 网卡驱动程序
  • 怎么通过程序来禁用某一块网卡??谢谢,请高手回答,送高分
  • 这段邦定网卡的程序在客户端98下运行错误,请帮忙解决。。。。。顶者有分
  • 安装驱动程序是,禁止弹出“数字签名”对话框。 100分
  • Win98下Network8139网卡的驱动程序是哪几个文件?请推荐两个驱动程序网站给20分。

关键词

  • propchangeparams
  • 网卡
  • hdevinfo
  • 禁用
  • 禁止
  • hcursor
  • deviceinfodata
  • sp
  • sizeof
  • include

得分解答快速导航

  • 帖主:java_xzy

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo