Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2023
JosepMLlort JosepMLlort is offline
Miembro
 
Registrado: abr 2012
Posts: 14
Poder: 0
JosepMLlort Va por buen camino
Deployment Manager para Windows. Remote Path

Hola.
He hecho una aplicación para windows que utiliza información de una base de datos mdb y estoy intentado publicarla en Microsoft Store. Si incluyo el fichero mdb en el directorio del programa, tras ser instalado en Program Files no se puede leer la base de datos (si se instala en un directorio normal sí se puede, pero los de Microsoft lo instalan en Program Files). Esto ocurre porque esta carpeta està protegida contra escritura.
He probado que el acceso a la base de datos sea de sólo lectura, pero sigue sin poder leerla.

En teoría, el Deployment Manager (menú Project) permite especificar una ruta remota (remote path) para el fichero mdb. Lo ideal sería c:\ProgramData\MiAplicación\, pero cuando introduzco esta ruta en Remote Path, simplemente la añade a la del directorio del programa y queda c:\ProgramFiles\MiAplicación\c:\ProgramData\MiAplicación, lo cual falla.

No he encontrado en ningún sitio documentación detallada sobre como introducir un remote path como el que necesito para Windows. Alguien sabe como hacerlo?

Gracias anticipadas.
Responder Con Cita
  #2  
Antiguo 22-02-2024
JosepMLlort JosepMLlort is offline
Miembro
 
Registrado: abr 2012
Posts: 14
Poder: 0
JosepMLlort Va por buen camino
Smile Mi solución

Hola.

He descubierto una solución. La comparto por si es útil a alguien más.

Microsoft Store no guarda los programas en ProgramFiles, sino en el directorio WindowsApps. Este directorio es de los más protegidos del sistema; es muy difícil escribir o modificar nada en él, y no es conveniente. Los datos, ficheros temporales, etc deben guardarse en un directorio específico de ProgramData, el cual es fácilmente accesible.

No he encontrado la manera de que el Deployment Manager de Delphi copie ficheros en ProgramData, pero he encontrado esta alternativa:
1. Con el Deployment Manager, instalo el fichero mdb (y cualquier otro fichero que deba escribirse durante la ejecución del programa) en el directorio del programa.
2. En el FormCreate de la primera ventana que se abre en el programa, leo el directorio del programa con ExtractFilePath(ParamStr(0)). Ojo: GetDir no funciona aquí.
3. Compruebo si existe el directorio c:\ProgramData\MiAplicacion (DirectoryExists). Si no existe, lo creo con ForceDirectories(c:\ProgramData\MiAplicacion)
4. Copio en este directorio (con CopyFile) el fichero mdb y los demás que deban escribirse durante la ejecución.
5. Leo y escribo estos ficheros en el directorio que he creado en ProgramData. Me olvido del original que está en el directorio del programa.

Y ya he conseguido que el programa funcione. Lo han aceptado y publicado en Microsoft Store!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ruta (Path) de dispositivo móvil desde Windows jhonalone Desarrollo en Delphi para Android 13 18-11-2016 12:21:35
Deployment con TLang jhonny FireMonkey 1 02-07-2014 21:54:56
Como funciona el tema de Remote Profiles para probar programas de OSX en Windows cocute FireMonkey 0 24-12-2012 11:16:19
Instalador tipo linux (package manager) para windows! mamcx Windows 4 15-11-2012 16:45:42
Obtener el Path de TEMP de windows sin ~ apicito OOP 5 09-04-2008 16:27:46


La franja horaria es GMT +2. Ahora son las 19:51:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi