设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2578|回复: 9
打印 上一主题 下一主题

[与其它组件] [求助]如何实现控制双网卡的启用或禁用?

[复制链接]
跳转到指定楼层
1#
发表于 2006-5-18 19:12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的电脑上有两块网卡,能否用Access控制启用网卡1禁用网卡2或者禁用网卡1而启用网卡2?请高手赐教!谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-5-18 19:14:00 | 只看该作者
用iphlpapi系列的函数。   
  先用GetIfTable()获得所有的网卡列表,然后用SetIfEntry()将指定的网卡启用或禁用。   
   
   
  GetIfTable   
  The   GetIfTable   function   retrieves   the   MIB-II   interface   table.   
   
  DWORD   GetIfTable(   
      PMIB_IFTABLE   pIfTable,     //   buffer   for   interface   table     
      PULONG   pdwSize,                   //   size   of   buffer   
      BOOL   bOrder                           //   sort   the   table   by   index?   
  );   
   
  SetIfEntry   
  Use   the   SetIfEntry   function   to   set   the   administrative   status   of   an   interface.   
   
  DWORD   SetIfEntry(     
      PMIB_IFROW   pIfRow     //   specifies   interface   and   status   
  );   


[此贴子已经被作者于2006-5-18 11:15:45编辑过]

3#
发表于 2006-5-18 19:20:00 | 只看该作者
引用的库为iphlpapi.dll
4#
 楼主| 发表于 2006-5-18 19:20:00 | 只看该作者
我是新手,这段代码对我来说很复杂,需要慢慢研究。能否再说详细点呢?谢谢版主这么快赐教!
5#
发表于 2006-5-18 19:21:00 | 只看该作者
以下是引用aone在2006-5-18 11:20:00的发言:
我是新手,这段代码对我来说很复杂,需要慢慢研究。能否再说详细点呢?谢谢版主这么快赐教!





首先要使用VBA,在VBA中调用Windows API,接下去就是Windows API的编程了。





6#
 楼主| 发表于 2006-5-18 19:29:00 | 只看该作者
那么要在VBA设置引用什么库吗?
7#
发表于 2006-5-18 19:32:00 | 只看该作者
以下是引用aone在2006-5-18 11:29:00的发言:
那么要在VBA设置引用什么库吗?





不需要,但是需要在VBA代码中进行声明。具体方法请查询VB API调用的相关资料。






8#
 楼主| 发表于 2006-5-18 19:36:00 | 只看该作者
谢谢版主!这就去试。
9#
发表于 2006-5-18 19:41:00 | 只看该作者
以下是引用aone在2006-5-18 11:36:00的发言:
谢谢版主!这就去试。



需要用到的文档:

typedef struct _MIB_IFROW
{
WCHAR wszName[MAX_INTERFACE_NAME_LEN];
DWORD dwIndex;
DWORD dwType;
DWORD dwMtu;
DWORD dwSpeed;
DWORD dwPhysAddrLen;
BYTE bPhysAddr[MAXLEN_PHYSADDR];
DWORD dwAdminStatus;
DWORD dwOperStatus;
DWORD dwLastChange;
DWORD dwInOctets;
DWORD dwInUcastPkts;
DWORD dwInNUcastPkts;
DWORD dwInDiscards;
DWORD dwInErrors;
DWORD dwInUnknownProtos;
DWORD dwOutOctets;
DWORD dwOutUcastPkts;
DWORD dwOutNUcastPkts;
DWORD dwOutDiscards;
DWORD dwOutErrors;
DWORD dwOutQLen;
DWORD dwDescrLen;
BYTE bDescr[MAXLEN_IFDESCR];
} MIB_IFROW,*PMIB_IFROW;

typedef struct _MIB_IFTABLE
{
DWORD dwNumEntries;
MIB_IFROW table[ANY_SIZE];
} MIB_IFTABLE, *PMIB_IFTABLE;
10#
发表于 2006-5-18 19:44:00 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 16:57 , Processed in 0.100274 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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