Note : J'utilise Delphi XE2.
J'essaie d'ajouter une clé de registre. Voici mon code actuel :
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.
Ce qui donne les résultats suivants :
Il ajoute seulement les quatre premiers caractères
Mais lorsque je change le paramètre "Valeur" en :
123456789123456789
Elle ajoute ensuite :
123456789
Il semble donc que, pour une raison quelconque, il n'ajoute que la moitié de la valeur donnée. Comment dois-je m'y prendre pour résoudre ce problème ?
Est-ce que je passe le mauvais type de données pour le paramètre *lpData dans RegSetValueEx ?