使用MQL读取注册表值

时间:2018-07-09 22:14:16

标签: registry mql4 advapi32

我正在尝试读取注册表项,但是遇到各种错误(2或87)。

string pvData = "";

Print(
  "RegLoadKeyW=",
  RegLoadKeyW(HKEY_CURRENT_USER, "Control Panel\\MenuShowDelay", pvData),
  " pvData=",pvData
);

返回

  

... RegLoadKeyA = 87 pvData =

此代码打开钥匙没有错误

uint lResult = RegOpenKeyW( HKEY_CURRENT_USER, KeyName, hkey);

但是我不能使用RegQueryValueW

Print("RegGetValueA=",
  RegGetValueA(
     HKEY_CURRENT_USER,
     inKeyName,
     "MaxMonitorDimension",
     0x000f003f | 0x0200 | 0x00020019,//flags: all | 32bit | read
     4, // REG_DWORD
     pvData,
     pcbData
  ),
  " pvData=",pvData
);
  

... RegGetValueA = 2 pvData =

我有这个导入代码

#import "Advapi32.dll"
int RegLoadKeyW(
  int    hKey,
  string lpSubKey,
  string& lpFile
);

int RegOpenKeyW(
      uint hKey,
      string lpSubKey,
      int& phkResult
);

uint RegCloseKey(int hKey);

int RegGetValueA(
  /*HKEY*/     int   hkey,
  /*LPCSTR*/   string  lpSubKey,
  /*LPCSTR*/   string  lpValue,
  /*DWORD*/    int   dwFlags,
  /*LPDWORD*/  int pdwType,
  /*PVOID*/    string&   pvData,
  /*LPDWORD*/  int& pcbData
);

#import
  • 我正在尝试读取'HKEY_CURRENT_USER \ Control Panel \ Desktop'中的各种键。
  • 我的系统是带有Windows 8.1的x64,并且我正在使用mql4读取注册表值。

0 个答案:

没有答案