我尝试使用注册表静默安装Chrome扩展。当我手动将键推到ComputerHKEY_CURRENT_USERSOFTWAREPoliciesGoogleChromeExtensionInstallForcelist
键值:gighmmpiobklfepjocnamgkkbiglidom;https://clients2.google.com/service/update2/crx
时,它确实有效。这是个广告拦截器。
当我对我的C程序做同样的事情时,它不会将新键推到所需的位置。当我搜索整个注册表时,键被推到一个非常不同的地方。键被推送到注册表中的这个位置:ComputerHKEY_USERSS-1-5-21-2801756348-263109946-2004673029-1002ComputerHKEY_CURRENT_USERSOFTWAREPoliciesGoogleChromeExtensionInstallForcelist
.
我怎样才能成功地推我的注册表项,而不把它推到不同的位置?
#include <stdio.h>
#include <Windows.h>
int main()
{
HKEY key;
int r = RegCreateKeyExA(HKEY_CURRENT_USER, "Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist",
0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, NULL);
if (r != ERROR_SUCCESS)
{
printf("errorn");
}
r = RegSetKeyValueA(key, NULL, "1", REG_SZ, "gighmmpiobklfepjocnamgkkbiglidom;https://clients2.google.com/service/update2/crx", 100);
if (r != ERROR_SUCCESS)
{
printf("error 2n");
}
RegCloseKey(key);
}
当您创建键时,您将HKEY_CURRENT_USER
传递给hKey
参数,但也将HKEY_CURRENT_USER放在路径中,该路径期望HKEY_CURRENT_USER的子键。试着用"SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist"
代替。