注意:我使用的是 Delphi XE2
我正在尝试添加一个注册表项。这是我当前的代码:
function AddRegKey(Key:HKEY;Keyname,Value:String):Boolean;
var
phkResult:HKEY;
begin
if RegOpenKeyEx(Key, PWideChar('SOFTWARE\Microsoft\Windows\CurrentVersion\Run'), 0, KEY_SET_VALUE, phkResult) = ERROR_SUCCESS then
begin
Result := (RegSetValueEx(phkResult, PWideChar(KeyName), 0, REG_SZ, PWideChar(Value), Length(Value)) = ERROR_SUCCESS);
RegCloseKey(phkResult);
end
else Result:=False;
end;
begin
If AddRegKey(HKEY_CURRENT_USER,'TestTest','123456789') Then
MessageBox(0,'Success','Test',0);
end.
这导致以下结果:
它只是添加前四个字符
但是当我将“值”参数更改为:
123456789123456789
然后它补充说:
123456789
因此,似乎出于某种原因它只增加了给定值的一半。我该如何解决这个问题?
我是否为 RegSetValueEx 中的 *lpData 参数传递了错误的数据类型?