注: 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.
その結果、次のようになります。
最初の4文字を追加するだけです
しかし、「値」パラメーターを次のように変更すると:
123456789123456789
次に、次のように追加します。
123456789
そのため、何らかの理由で指定された値の半分しか追加されていないように見えます。これを解決するにはどうすればよいですか?
RegSetValueEx の *lpData パラメータに間違ったデータ型を渡していますか?