VC中通过查询注册表判断是否无线网卡
2012-12-28 14:07
218 查看
设备的一些信息存储在注册表里,可以通过查询注册表,得到设备的一些信息。
关键:查询,HKEY_LOCAL_MACHINE//System//CurrentControlSet//Control//Network//{4D36E972-E325-11CE-BFC1-08002BE10318}下的MediaSubType的值来进行判断,为1则是PCI网卡,为2则是无线网卡。
用到的函数:无非就是一些查询注册表的函数了
RegOpenKeyEx:该函数负责打开指定的键或子键,如果不存在他不建立,成功返回ERROR_SUCCESS
RegCloseKey:关闭指定的主册表键,释放句柄,成功返回ERROR_SUCCESS
RegCreateKeyEx:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。当在创建或打开注册表的键时,需要指定访问权限,函数成功返回ERROR_SUCCESS
RegDeleteKey:该函数用来删除注册表中的一个键值的,成功返回ERROR_SUCCESS
RegQueryValueEx:读取某子键下特定名称的值,成功返回ERROR_SUCCESS
RegSetValueEx:设置某子键下特定名称的值,成功返回ERROR_SUCCESS
RegEnumKeyEx:列出某Key的所有名称的值,变化索引即可遍历整个键下的名称和数据,成功返回ERROR_SUCCESS
RegQueryInfoKey:返回注册表键的信息,包括类名、子键数量、最长子键名、值的数量、最长值数据、安全描述
符的长度以及上一次写入的时间等,成功返回ERROR_SUCCESS
RegLoadKey:从指定的文件恢复注册表键的子键信息到注册表,成功返回ERROR_SUCCESS
RegReplaceKey:从指定的文件恢复注册表键的子键信息到注册表并替换原有的值,并生成新的备份文件,成功返回ERROR_SUCCESS
RegSaveKey:保存键及其子键信息到指定的文件,成功返回ERROR_SUCCESS
RegConnectRegistry:连接到远程系统的注册表,成功返回ERROR_SUCCESS
RegUnloadKey:删除注册表键及其所有的子键,成功返回ERROR_SUCCESS
在判断到存在无线网卡后,查询它的GUID(全局统一标识符),也就是设备真实的名字,
HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Class{4D36E972-E325-11CE-BFC1-08002BE10318}/下相对应的CLASS项目然后再得到键NetCfgInstanceId 的值,即GUID,然后可以使用CreateFile打开这个设备,获得这个设备的句柄,从而进行相应的操作。
本文章在:http://blog.csdn.net/liaoming321/article/details/4594679基础上完善了注册表操作的说明!
此文章来自于【http://hi.baidu.com/zhaozhong1989/item/5fb6c203507d34c92e4c6b94】
关键:查询,HKEY_LOCAL_MACHINE//System//CurrentControlSet//Control//Network//{4D36E972-E325-11CE-BFC1-08002BE10318}下的MediaSubType的值来进行判断,为1则是PCI网卡,为2则是无线网卡。
用到的函数:无非就是一些查询注册表的函数了
RegOpenKeyEx:该函数负责打开指定的键或子键,如果不存在他不建立,成功返回ERROR_SUCCESS
RegCloseKey:关闭指定的主册表键,释放句柄,成功返回ERROR_SUCCESS
RegCreateKeyEx:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。当在创建或打开注册表的键时,需要指定访问权限,函数成功返回ERROR_SUCCESS
RegDeleteKey:该函数用来删除注册表中的一个键值的,成功返回ERROR_SUCCESS
RegQueryValueEx:读取某子键下特定名称的值,成功返回ERROR_SUCCESS
RegSetValueEx:设置某子键下特定名称的值,成功返回ERROR_SUCCESS
RegEnumKeyEx:列出某Key的所有名称的值,变化索引即可遍历整个键下的名称和数据,成功返回ERROR_SUCCESS
RegQueryInfoKey:返回注册表键的信息,包括类名、子键数量、最长子键名、值的数量、最长值数据、安全描述
符的长度以及上一次写入的时间等,成功返回ERROR_SUCCESS
RegLoadKey:从指定的文件恢复注册表键的子键信息到注册表,成功返回ERROR_SUCCESS
RegReplaceKey:从指定的文件恢复注册表键的子键信息到注册表并替换原有的值,并生成新的备份文件,成功返回ERROR_SUCCESS
RegSaveKey:保存键及其子键信息到指定的文件,成功返回ERROR_SUCCESS
RegConnectRegistry:连接到远程系统的注册表,成功返回ERROR_SUCCESS
RegUnloadKey:删除注册表键及其所有的子键,成功返回ERROR_SUCCESS
在判断到存在无线网卡后,查询它的GUID(全局统一标识符),也就是设备真实的名字,
HKEY_LOCAL_MACHINE//SYSTEM//CurrentControlSet//Control//Class{4D36E972-E325-11CE-BFC1-08002BE10318}/下相对应的CLASS项目然后再得到键NetCfgInstanceId 的值,即GUID,然后可以使用CreateFile打开这个设备,获得这个设备的句柄,从而进行相应的操作。
本文章在:http://blog.csdn.net/liaoming321/article/details/4594679基础上完善了注册表操作的说明!
此文章来自于【http://hi.baidu.com/zhaozhong1989/item/5fb6c203507d34c92e4c6b94】
相关文章推荐
- VC中通过查询注册表判断是否为无线网卡
- 查询注册表判断是否使用无线网卡
- 通过注册表检测是否安装了VC++ 2008 SP1 redistributable。
- 通过注册表查询Visual C++ Redistributable Package是否安装
- 为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了
- 通过注册表查询无线网络名称及mac地址
- 时分查询增加和减少的部分多查:也许可以通过判断面积是否相等来去除多查询的
- 【转】判断无线网卡是否支持“无线承载网络”的方法
- 判断无线网卡是否支持“无线承载网络”的方法
- 通过查询数据库中的sysobjects来判断数据库中是否已有该表
- struts2中通过<s:if></s:if>标签来判断session是否为空并作出相应处理
- VC 判断 多Frame 网页是否加载完毕
- linux:C语言通过ICMP协议判断局域网内部主机是否存活
- vc++通过执行特权指令来检测是否是虚拟机
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- VC++ 判断文件是否存在
- python通过字典dict判断指定键值是否存在的方法
- VC++ 使用 _access函数判断文件或文件夹是否存在
- 通过宏定义判断是否引入的是framework,反之则使用双引号,实用!