windows检索注册表
2022/6/24 5:22:20
本文主要是介绍windows检索注册表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
检索注册表函数: SHGetValue
函数原型
LSTATUS SHGetValue( [in] HKEY hkey, [in, optional] LPCSTR pszSubKey, [in, optional] LPCSTR pszValue, [out, optional] DWORD *pdwType, [out, optional] void *pvData, [in, out, optional] DWORD *pcbData );
hkey
当前打开的密钥的句柄,或以下任何预定义值。
HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA HKEY_USERS
实际上对应注册表地位置是这里,用户自己定义的注册表一般都会放在HKEY_LOCAL_MACHINE下,根据需要自己放置和检索。
pszSubKey
null 结尾的字符串的地址,它指定要从中检索值的子键的名称。
key开始向下查找具体的键,这个表示的就是键的目录。
例如ARE\Microsoft\Windows\CurrentVersion\App Paths就是现有安装在C盘的软件存放的对应路径。(个人判断)
pszValue
值得地址
pdwType
值的类型,一般使用的都是二进制数字标注一个bool类型或者字符串指定需要的路径位置。
微软官方定义:https://docs.microsoft.com/en-us/windows/win32/shell/hkey-type
pvData
这个是取出数据用的承载(数组),预先设置好它的大小,防止取值的时候溢出
LPDWORD
承载内存的大小
返回值
微软定义:如果成功则返回 ERROR_SUCCESS,否则返回 Winerror.h 中定义的非零错误代码。您可以使用带有 FORMAT_MESSAGE_FROM_SYSTEM 标志的FormatMessage函数来检索错误的一般描述。
但是其实只要判定他是不是返回了ERROR_SUCCESS就可以知道他是陈耕桑露出失败了。
实例
WCHAR m_wszPath[1024] = { 0 }; DWORD dwType = REG_SZ; DWORD dwSize = sizeof(m_wszPath) - 2; if (!(ERROR_SUCCESS == SHGetValue(HKEY_LOCAL_MACHINE, L"ARE\Microsoft\Windows\CurrentVersion\App Paths", L"Path", &dwType, m_wszPath, &dwSize) && dwType == REG_SZ && dwSize > 0 && PathIsDirectory(m_wszPath))) { return L""; }
这篇关于windows检索注册表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?