PDA

Ver la Versión Completa : Escribiendo en el Registro de Windows


el-otro
04-09-2013, 21:03:18
Hola a todos y gracias por anticipado por vuestro interés.

Estoy escribiendo unas claves y líneas en el registro de windows, utilizando el siguiente código


RegKey := TRegistry.Create;
RegKey.RootKey := HKEY_LOCAL_MACHINE;

if RegKey.OpenKey(LineaClave,False) = False then
begin
RegKey.CreateKey(LineaClave);
RegKey.OpenKey(LineaClave,True);
end;


El caso es que hasta la fecha me ha funcionado correctamente en Windows XP, Vista y 7 (tanto de 32 como de 64 bits), sin embargo cuando trato de hacer esto en Windows8 de 64 bits, sin que pueda descubrir la causa el programa me devuelve un error de "Failed to create key \Sofware\Wow6432Node\MiAplicacion" que es la línea clave definida arriba.

¿Os ha ocurrido alguna vez? ¿ha cambiado algo en Windows para que me devuelva este error?

De nuevo gracias, y saludos a todos

Casimiro Notevi
04-09-2013, 23:04:53
No olvides liberar RegKey:RegKey.Free;

el-otro
04-09-2013, 23:56:13
Si eso lo hago después, es que básicamente he reducido un poco el código ya que el error lo tengo en la línea de CreateKey. De todas formas gracias por recordadmelo

dec
05-09-2013, 01:23:03
Hola,

Una aplicación no puede escribir en "HKLM" si no tiene "privilegios de administrador". Lo raro es que te funcionase en Windows 7. ¿Cómo solucionarlo? Habría que conseguir dichos permisos de administración, pero, lamento no poder ayudarte a hacer esto, ni sé siquiera si esto es posible ni cómo ni en qué circunstancias. Lo siento. :(

nlsgarcia
05-09-2013, 04:49:03
el-otro,


...cuando trato de hacer esto en Windows8 de 64 bits, sin que pueda descubrir la causa el programa me devuelve un error de "Failed to create key \Sofware\Wow6432Node\MiAplicacion" que es la línea clave definida arriba...


Revisa estos links:

Acceso Denegado Aplicación inicio de Windows : http://www.clubdelphi.com/foros/showthread.php?t=83816&highlight=registro+Windows+8

Acceder al Registro de Windows Vista : http://www.clubdelphi.com/foros/showthread.php?t=65506&highlight=registro+Windows+8

Accessing an Alternate Registry View : http://msdn.microsoft.com/en-gb/library/aa384129%28VS.85%29.aspx

Registry ReadString method is not working in Windows 7 in Delphi 7 : http://stackoverflow.com/questions/2666807/registry-readstring-method-is-not-working-in-windows-7-in-delphi-7

Delphi on 64 bit Windows 7 : http://www.desiderata.com.au/blog/?page_id=274
Pregunto: ¿El usuario con que se ejecuta la aplicación en cuestión tiene privilegios de administrador?.

Revisa el código del Msg #2 del siguiente link:

Ejecutar aplicacion como administrador en Windows 7 : http://www.clubdelphi.com/foros/showthread.php?t=83654&highlight=RunAsAdmin
Espero sea útil :)

Nelson.