FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
Registro
Hola de nuevo,
Estoy intentando crear una carpeta en archivos de programa mediante el registro de windows. Pus bien, como crearmela me la crea, pero no en C:\Archivos de programa\.... Si no en E:\.... ¿Sabeis a que se puede deber?, en mi disco tengo tres particiones, y de la aplicacion que quiero que cree la carpeta esta en esa particion, en E:\, el codigo que uso es este: Código:
Registro := TRegIniFile.Create; Registro.RootKey := HKEY_LOCAL_MACHINE; Registro.OpenKey('Software\Microsoft\Windows\' + 'CurrentVersion', False); MkDir(Registro.ReadString('CurrentVersion','ProgramFilesPath','') + '\' + NombreArchivo); Registro.Free; |
#2
|
|||
|
|||
Hola VolaRe.
¿Has probado el valor que estás leyendo del registro?. Lo digo porque tal vez tengas algún problema de permisos o algo así y el valor que te devuelve realmente sea una cadena vacía, con lo que grabas el archivo en "\NombreDeArchivo", es decir, en el directorio raiz de la unidad actual, le E. Comprueba eso, y si te falla, prueba a abrir la clave del registro en modo lectura. Espero que te sirva.
__________________
Guía de Estilo del Foro |
#3
|
||||
|
||||
Puedes tambien probar utilizando la variable %PROGRAMFILES% para obtener la ruta de dicha carpeta segun este configurada en windows.
__________________
Héctor Geraldino Software Engineer |
#4
|
||||
|
||||
gracias a los dos por vuestro interes, ya lo resolvi, hector ya porvé ese registro y me hace lo mismo, creo que tiene razon Jan, le paso una cadena vacia. Asi que lo he resuelto abriendo la clave, que supongo que es lo que queria decir Jan con lo de lectura, y despues he creado el directorio.
|
#5
|
||||
|
||||
Que bueno, pero siendo ese el caso, podrias evitarte tener que crear el objeto, y esas lineas que has escrito para obtener un valor que te lo da las mismas variables de ambiente de Windows. Veo mas simple conseguir el directorio de Program Files del sistema reconociendolo con un nombre generico estandar entre las diferentes versiones de Windows (%PROGRAMFILES%) que tener que ir al registro de windows (teniendo en cuenta problemas como los permisos, por ejemplo).
Tu diras,
__________________
Héctor Geraldino Software Engineer |
#6
|
||||
|
||||
¿Y eso como lo hago?, mis conocimientos en delphi no sontan profundos como los tuyo, yo soy mas bien un principiante, pero principiante principiante, que tengo esto como hobby, y hago chorradillas pa ir practicando codigo. Aunque me gustaria aprender mas cosas sobre delphi. Esa variable que dices que la declaro asi:
Código:
var Camino : %ProgramFilePath%; Ante todo gracias por tu interes Hector. |
|
|
|