Hola a otodos, yevo unos dias intentando crear una llave en el registro de windows.

Este es el code que pongo:

Código: Seleccionar todo

procedure TForm1.btnAplicarClick(Sender: TObject);

var
    Reg: TRegistry;

begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation', False) then begin
Reg.CreateKey('Manufacturer');
Reg.CloseKey;

end; //IF

end;
Ni me da error ni crea la llave en el registro, espero de su ayuda porfavor.
No se si podria ser porque uso Windows 7 64 Bits.

Salu2
El código funciona bien pero tienes que ejecutar el ejecutable como administrador porque la UAC del Vista/7 protege HKEY_LOCAL_MACHINE...

Imagen


Gracias a los 2 por responder, pero nada sigue sin funcionar el caso que en XP sique va sin problemas pero en mi Win 7 64Bit no funciona ni ejecutando como administrador.

salu2
Bueno parece que el problema esta en que mi Windows 7 no da permisos al soft para agregar la llave en HKEY_LOCAL_MACHINE,
Provando en otras zonas como HKEY_CURRENT_USER no hay problema, entonces lo hice usando a las apis de windows para ver si asi me dejaba pero sigue igual no permite crear la llave.

Aqui dejo el code haciendolo con apis:

Código: Seleccionar todo

Function SetClave(key:Hkey; subkey,name,value:string):boolean;

Var
    regKey:hKey;
begin
  result:=FALSE;
  RegCreateKey(key,PChar(subkey),regKey);
  If RegSetValueEx(regKey,Pchar(name),0,REG_SZ,Pchar(value),length(value)) = 0 then
    result:=TRUE;
  RegCloseKey(regKey);
end;

procedure TForm1.FormCreate(Sender: TObject);

begin

If SetClave(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation\', 'Manufacturer', 'Silent Thechnology') = True
  then
  ShowMessage('LLave agregada')
  else
  ShowMessage('No se Pudo agregar la llave!!!');
end;

end.
Si algien sabria la solucion porfavor.

Salu2
Responder

Volver a “Delphi”