WEB开发网
开发学院手机开发Windows Mobile 开发 也谈Windows Mobile中打开/关闭WIFI 阅读

也谈Windows Mobile中打开/关闭WIFI

 2010-08-22 12:57:00 来源:WEB开发网   
核心提示:也谈Windows Mobile中打开/关闭WIFI看到Yonsm兄写的“Windows Mobile 中开关 WIFI 的“通用”代码”一文,原文地址:http://www.yonsm.net/read.php?412在我机器(586W 6.1)测试无效,也谈Windows Mobile中打开/关闭WIFI,研究后发

也谈Windows Mobile中打开/关闭WIFI

看到Yonsm兄写的“Windows Mobile 中开关 WIFI 的“通用”代码”一文。

原文地址:http://www.yonsm.net/read.php?412

在我机器(586W 6.1)测试无效,研究后发现Yonsm兄的算法并不通用,至少在我机器上无效。

其实问题在于获取WIFI适配器的名称上。

搜索了遍注册表,终于找到了解决办法。

HKEY_LOCAL_MACHINE / System / CurrentControlSet / Control / POWER /

State / {98C5250D-C29A-4985-AE5F-AFE5367E5006}

其中就是适配器的名称。

注:{98C5250D-C29A-4985-AE5F-AFE5367E5006}是键的名称,不是子父路径的关系。

将这个键的名称直接传给SetDevicePower的pvDevice参数即可。

附:C#实现代码!

string[] sNames = null;

RegistryKey keyWlan = null;

try

{

keyWlan = Registry.LocalMachine.OpenSubKey(@"SystemCurrentControlSetControlPowerState");

sNames = keyWlan.GetValueNames();

}

catch { }

finally

{

if (keyWlan != null) keyWlan.Close();

}

foreach (string wl in sNames)

{

if (wl.StartsWith("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\"))

{

//POWER_NAME = 0x00000001

SetDevicePower(wl, 0x00000001, open ? DevicePowerState.D0 : DevicePowerState.D4);

break;

}

}

Tags:Windows Mobile 打开

编辑录入:coldstar [复制链接] [打 印]
赞助商链接