c语言启用网络网络,c++ 以编程方式禁用/启用网络接口

我试图提出一个解决方案,以编程方式启用/禁用网卡 – 我做了大量的研究,在XP和Vista环境中似乎都不是一个可行的解决方案。我在说的是,如果您进入控制面板的“网络连接”,右键单击并选择启用或禁用。理想情况下,我想使用一个图书馆,但如果更糟糕的是,我可以打电话给一个命令行程序,但绝对是最坏的情况。这是我迄今为止所尝试过的,何处/为什么他们失败:

这个上一篇文章:

列出了几种方法 – 第一种是使用netsh,这似乎与使用IPHelper函数SetIfEntry()相同。这样做的问题是它将接口设置为管理启用或禁用,而不是正常启用/禁用,因此它实际上不会关闭NIC。

提出的另一个解决方案是使用WMI,特别是具有Enable和Disable方法的Win32_NetworkAdapter类:

好吗?在Vista中工作正常,这些方法在普通XP安装中不存在…

另一个建议是使用DevCon,它真正使用了SetupAPI,特别是具有DICS_ENABLE的SetupDiSetClassInstallParams()。在这个美好的课堂上花了无数小时,并尝试在全球一级以及特定的配置级别(和每个组合)中禁用/启用设备,它不会始终如一地工作 – 有时工作正常,但其他时间禁用设备管理器中的设备,但仍然将其置于网络连接中并运行。

然后我尝试使用INetConnection接口,特别是INetConnection->连接/断开连接:

但是我从来没有能够对Vista或XP测试盒上的连接产生任何影响。

最后,我发现这个C#脚本叫做ToggleNic:

看起来它通过壳牌以某种方式有效地导致右键单击行为。限制(至少这个实现)是在非英语系统上不起作用(不需要修改),我需要我的工作。为了公平起见,这个解决方案看起来是最可行的,但是我对C#的熟悉度很低,我找不到它所使用的API是否可用于C。

任何帮助或见解将不胜感激 – 或者关于如何完成C语言脚本的想法。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值