Matlab中注册表项的读取

Matlab中注册表项的读取,matlab,registry,registrykey,Matlab,Registry,Registrykey,我试图在matlab中读取以下注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42 我正在使用这个函数 winqueryreg('HKEY_LOCAL_MACHINE','SOFTWARE','\Microsoft\Windows\CurrentVersion\Install

我试图在matlab中读取以下注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42
我正在使用这个函数

winqueryreg('HKEY_LOCAL_MACHINE','SOFTWARE','\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42')
但是我得到了这个错误

Error using winqueryreg
Cannot query value of type REG_NONE.

谁能告诉我哪里出了问题,以及如何读取此密钥???

如果运行regedit,您将看到您现在处于“地图级别”,您需要添加密钥标识符

请尝试:

yourVal = winqueryreg('HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42', YOUR_EXPLICIT_REG);
或者,如果您事先不知道该密钥标识符:

yourKeys = winqueryreg('name', 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42')

yourVal = winqueryreg('HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4D8041334C8956A4240A50360E36FD42', yourKeys{1})

等等……

嗯,我想我面临另一个问题。我无法读取“HKEY_LOCAL_MACHINE”下的任何子项。每当我给出一个路径作为子键参数时(就像你在回答中建议的那样),我都会得到错误“指定的键无效”。如果我只将“SOFTWARE”作为子键,则得到“cannotqueryvalue of type REG\u NONE”。任何见解??我认为您需要添加'name'作为第一个参数,Matlab将生成然后生成此级别上可用的密钥列表。yourKeys=winqueryreg('name','HKEY_LOCAL_MACHINE','SOFTWARE…')问题基本上是,我用我的32位Matlab来读取64位程序的注册表。这是可以解释的。也许你会对此感兴趣。答案实际上并不准确,至少在MATLAB 2015b中是这样。yourKeys=winqueryreg('name','HKEY_LOCAL_MACHINE',…)只返回给定键下的值列表,而不返回子键。这是明确记录的(),如果语义在不同版本之间发生变化,我会感到惊讶。