我一直在阅读如何通过命令提示符执行此操作。我试过了。有效。然后我尝试用C++来做,但失败了。我希望这对过去的某人来说是一个问题,但我在其他地方没有找到这个问题和有效的答案。请指出以前在 C++ 中曾问过这个问题并得到有效回答的地方。不适用于 Visual C++。不适用于 C。我在 MS Windows 系统上使用 CodeBlocks。
谢谢你。
以下代码似乎可以使用代码块 20.03 使用 MINGW 4.3.5 gcc 7.3.0(2018 版本)工作
#include <Windows.h>
#include <iostream>
int main() {
HKEY hKey;
LPCTSTR subKey = TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers");
if (RegCreateKeyEx(HKEY_CURRENT_USER, subKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL) == ERROR_SUCCESS) {
LPCTSTR valueName = TEXT("C:\\Program Files\\MyApp\\Test.exe");
LPCTSTR valueData = TEXT("WIN7RTM");
if (RegSetValueEx(hKey, valueName, 0, REG_SZ, (LPBYTE)valueData, (lstrlen(valueData) + 1) * sizeof(TCHAR)) == ERROR_SUCCESS) {
std::cout << "String value added successfully.\n";
} else {
std::cout << "Failed to set the string value.\n";
}
RegCloseKey(hKey);
} else {
std::cout << "Failed to create the registry key.\n";
}
return 0;
}
您可以将
HKEY_CURRENT_USER
更改为HKEY_LOCAL_MACHINE
以将其强制作用于整个系统而不是当前用户,然后只能使用注册表修改来删除,来源:程序兼容性助手 - 第二部分