目前我们公司移动设备大量出现发热发烫和电池不够用的问题,严重影响正常使用.网上查询了一下发现网络设备是一个耗电大户,加上我们公司的设备在每次系统重启后都会自动打开WiFi功能.这样就存在耗电和发烫的隐患,如果设备在WiFi开启状态下在进入一个有无线网络的领域就会自动匹配连接,这个过程是比较耗电的.所以今天就实现了通过一个小工具去关闭WiFi.操作WiFi主要通过以下两个方法:DevicePowerNotify;SetDevicePower.
主 要代码实现:
HRESULT WifiOn()
{
TCHAR WstrDeviceClass[128];
BOOL ret = GetWIFIDeviceName(WstrDeviceClass);
if(!ret) return ERROR_INVALID_GETWIFIDEVICENAME;
DevicePowerNotify(WstrDeviceClass, D0, POWER_NAME);
return SetDevicePower( WstrDeviceClass, POWER_NAME, D0);
}
HRESULT WifiOff()
{
TCHAR WstrDeviceClass[128];
BOOL ret = GetWIFIDeviceName(WstrDeviceClass);
if(!ret) return ERROR_INVALID_GETWIFIDEVICENAME;
DevicePowerNotify(WstrDeviceClass, D4, POWER_NAME);
return SetDevicePower( WstrDeviceClass, POWER_NAME, D4);
} 其中的WstrDeviceClass参数就是下面其中<DEVICE_NAME>就是适配器的名称。
HKEY_LOCAL_MACHINE / System / CurrentControlSet / Control / POWER /
State / {98C5250D-C29A-4985-AE5F-AFE5367E5006}\<DEVICE_NAME>
注:{98C5250D-C29A-4985-AE5F-AFE5367E5006}\<DEVICE_NAME>是键的名称,不是子父路径的关系。
将这个键的名称直接传给SetDevicePower的pvDevice参数即可。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com