4898|25

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

JAGUARSDN1网络的开机自动启动 禁用,WIFI模块的启动关闭控制。 [复制链接]

项目需求:
    开机后JAGUARSDN不要自动运行,此时wifi模块关闭。需要用时,手动启用。
昨天找了一下这测表,HKEY_LOCAL_MACHINE\init下也没有找到合适的修改选项。project.reg的内容很少没找到可以对这项进行修改的地方。common.reg下只找到device.dll等内容。

不知道说清楚没有,多谢大侠们指点。

最新回复

强列关注... 因为要读mac作为注册码. 不知这样是否较有效...  详情 回复 发表于 2010-2-13 02:09
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶的兄弟也会给分的。
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
的确Wifi一直开着,很浪费电,对于手持式设备简直不可接受,恳请大侠尽快指导指导,我好学习下。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
找到wifi驱动里的开关部分,做一个自启动程序,程序里调用wifi驱动关闭WIFI
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
具体部分你要看你的WIFI驱动里是怎么控制WIFI的开关了
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 hudaweikevin 的回复:
找到wifi驱动里的开关部分,做一个自启动程序,程序里调用wifi驱动关闭WIFI

这个方法也是可以的,但是我想不增加用户操作界面的情况下完成这个功能,就是PDA启动是wifi是关闭的,用户需要时执行JAGUARSDN,然后wifi模块自动打开。另外我的wifi模块是SDIO接入的。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
可以用开关电源来控制功耗啊
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 jeanszu 的回复:
可以用开关电源来控制功耗啊


试过了,但从新复位wifi模块以后连接网络就出了问题。无线设置变的很慢,获得的IP也很不对劲,它连接的无线路由器也不能给其它计算机分配IP了。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

9
 
wifi驱动是包括电源管理的,不用时让其进入低功耗模式就可以了,接口好像是DevicePowerNotify
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
试试这种代码,注意修改 98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1  為你自己的wifi设备

void WifiOn()   
{   
    DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D0, POWER_NAME);   
    SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D0);   
}   
   
void WifiOff()   
{   
    DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D4, POWER_NAME);   
    SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D4);   
}   
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

11
 
把wifi驱动弄成动态加载
执行JAGUARSDN时,给wifi供电,然后加载wifi驱动
退出JAGUARSDN时,给wifi断电,然后卸载wifi驱动
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 9 楼 linhanlao 的回复:
试试这种代码,注意修改 98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1? 為你自己的wifi设备

void WifiOn()?
{?
? ? DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D0, POWER_NAME);?
? ? SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D0);?
}?
?
void WifiOff()?
{?
? ? DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D4, POWER_NAME);?
? ? SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D4);?
}?



这位大哥的法子比我的好
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 9 楼 linhanlao 的回复:
试试这种代码,注意修改 98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1? 為你自己的wifi设备

void WifiOn()?
{?
? ? DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D0, POWER_NAME);?
? ? SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D0);?
}?
?
void WifiOff()?
{?
? ? DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D4, POWER_NAME);?
? ? SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D4);?
}?



感谢这位大侠的指点,我我的wifi模块是SDIO接入的,我发现SDIO驱动中的SDH_IOControl实现了电源管理。所以我就用DeviceIoControl直接调用了,当我把能量设为D3的时候驱动好像就卸载了,那个网络图标就没了。不知道这两种方法的主要区别,SDIO的能量管理好像确实没对WIFI产生什么影响,只是卸载了驱动。再次感谢两位大侠,我再试一下。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

14
 
各位大侠给出的方法应该是正确的,但现在仍然有个问题。
当我wifioff的时候任务栏上可以看到网络图标显示断开,但wifion的时候网络图标仍然是断开的,无法恢复。而且显示信号很好。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

15
 
万能的BBS呀。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 13 楼 sailorlyq 的回复:
各位大侠给出的方法应该是正确的,但现在仍然有个问题。
当我wifioff的时候任务栏上可以看到网络图标显示断开,但wifion的时候网络图标仍然是断开的,无法恢复。而且显示信号很好。


貌似没有DevicePowerNotify 所以GWES不更新图标状态
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 sniper167 的回复:
引用 13 楼 sailorlyq 的回复:
各位大侠给出的方法应该是正确的,但现在仍然有个问题。
当我wifioff的时候任务栏上可以看到网络图标显示断开,但wifion的时候网络图标仍然是断开的,无法恢复。而且显示信号很好。


貌似没有DevicePowerNotify 所以GWES不更新图标状态


void WifiOn()  
{  
    DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D0, POWER_NAME);  
    SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D0);  
}  
  
void WifiOff()  
{  
    DevicePowerNotify(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), D4, POWER_NAME);  
    SetDevicePower(_T("{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\WLAGS46F1"), POWER_NAME, D4);  
}  

我是按这个来的呀。顺序还需要换一下吗?
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

18
 
LZ先确认下系统中有没有加载NDISPWR.DLL,如果没有的话,把这个组件加上

WIFI在默认情况下,是开机自动打开的,如果要开机禁用,在HKEY_LOCAL_MACHINE\Comm\NdisPower创建一个键值

name = 4

name是你用的WIFI的名字

如果想开机自动打开,把这个键值删掉


打开关闭WIFI时,想网络图标正常,除了用setdevicepower外

还要用到NDIS的IOCTL_NDIS_BIND_ADAPTER或者IOCTL_NDIS_UNBIND_ADAPTER

绑定或者解除绑定
 
 
 

回复

105

帖子

0

TA的资源

一粒金砂(中级)

19
 
引用 17 楼 suwyhoho 的回复:
LZ先确认下系统中有没有加载NDISPWR.DLL,如果没有的话,把这个组件加上

WIFI在默认情况下,是开机自动打开的,如果要开机禁用,在HKEY_LOCAL_MACHINE\Comm\NdisPower创建一个键值

name = 4

name是你用的WIFI的名字

如果想开机自动打开,把这个键值删掉


打开关闭WIFI时,想网络图标正常,除了用setdevicepower外

还要用到NDIS的IOCTL_NDIS_BIND_ADAPTER或者IOCTL_NDIS_UNBIND_ADAPTER

绑定或者解除绑定



这位大侠好像说的很靠谱,能不能详细一些呀?
我看wifi厂商提供的注册表里有这些东西
  [HKEY_LOCAL_MACHINE\Comm\JaguarSDN1]
"DisplayName"="SyChip JaguarSDN Wireless Card"
"Group"="NDIS"
"ImagePath"="JaguarSDN.dll"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Custom\MANF-02DF-CARDID-9103-FUNC-1]
"Prefix"="SDN"
"Dll"="JaguarSDN.dll"
"Instance0"="JaguarSDN:JaguarSDN1"

这样的话我写成"JaguarSDN1" = 4 可以吗?

IOCTL_NDIS_BIND_ADAPTER是用deviceiocontrol控制吗?可不可以弄个小例子,多谢指点。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 sailorlyq 的回复:
引用 17 楼 suwyhoho 的回复:
LZ先确认下系统中有没有加载NDISPWR.DLL,如果没有的话,把这个组件加上

WIFI在默认情况下,是开机自动打开的,如果要开机禁用,在HKEY_LOCAL_MACHINE\Comm\NdisPower创建一个键值

name = 4

name是你用的WIFI的名字

如果想开机自动打开,把这个键值删掉


打开关闭WIFI时,想网络图标正常,除了用setdevicepower外

还要用到NDIS的IOCTL_NDIS_BIND_ADAPTER或者IOCTL_NDIS_UNBIND_ADAPTER

绑定或者解除绑定



这位大侠好像说的很靠谱,能不能详细一些呀?
我看wifi厂商提供的注册表里有这些东西
? [HKEY_LOCAL_MACHINE\Comm\JaguarSDN1]
"DisplayName"="SyChip JaguarSDN Wireless Card"
"Group"="NDIS"
"ImagePath"="JaguarSDN.dll"
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Custom\MANF-02DF-CARDID-9103-FUNC-1]
"Prefix"="SDN"
"Dll"="JaguarSDN.dll"
"Instance0"="JaguarSDN:JaguarSDN1"

这样的话我写成"JaguarSDN1" = 4 可以吗?

IOCTL_NDIS_BIND_ADAPTER是用deviceiocontrol控制吗?可不可以弄个小例子,多谢指点。


在HKEY_LOCAL_MACHINE\Comm\NdisPower下面加"JaguarSDN1" = 4 就OK了

IOCTL_NDIS_BIND_ADAPTER是用DeviceIoControl操作的,打开的设备是NDS0,bufferin里写你要bind的网卡名字,因为网卡是NDIS设备,网卡名字应该是NDIS的ClassID+JaguarSDN1

具体代码去PUBLIC下找NDISPWR的代码看看
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表