我认为谁知道 C 是一个简单的问题,(我不是)
我有检查代理是否启用的代码。
从注册表:
来自cmd
:
C:\Users\Max>reg 查询“HKEY_CURRENT_USER\Software\Microsoft\Windows\当前版本\Internet 设置”| 查找 /i "proxyenable" ProxyEnable REG_DWORD 0x1
以下是相关的代码片段:
#define POLICY_KEY TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings")
...
HKEY hKey;
LONG lResult;
LONG lResultServer;
DWORD dwValue, dwType, dwSize = sizeof(dwValue);
DWORD szType = REG_SZ;
char rgValue [1024];
DWORD BufSize = sizeof(rgValue);
const char *defaultVal = "0";
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, POLICY_KEY, 0, KEY_READ, &hKey);
if(lResult == ERROR_SUCCESS)
{
lResult = RegQueryValueEx(hKey, "ProxyEnable", 0, &dwType, (LPBYTE)&dwValue, &dwSize);
RegCloseKey(hKey);
}
// Exit if a policy value was found.
if(lResult == ERROR_SUCCESS)
{
if((int)lResult == 1) // <- problematic place
{
...
...
我不知道为什么,但if((int)lResult == 1)
返回false。
我需要做些什么来比较它lResult = 0x00000001
。
谢谢,