PDA

Ver la Versión Completa : Grabar en red


salvica
15-07-2013, 21:19:47
Hola a todos.
Tengo una aplicación en D7 bajo windows xp que lee y trata una serie de ficheros que estan en una unidad de red: unidad_a o unidad_b (ambas tienen los mismos datos por seguridad).

El directorio de trabajo lo tengo definido en un fichero ini mediante:
[PATHS]
DIR_DATOS=\\unidad_a\datos\AAAA\MM
Como podeis suponer AAAA es el año en curso y MM el mes que agrupa los datos. Hasta aquí todo bien.

Ahora necesito que si alguna vez se pierden datos, estos puedan introducirse manualmente.

Se trata de insertar el dato en un StringList y salvarlo, cosa que en mi ordenador funciona, pero al hacerlo en el ordenador real me da el cásico mensaje denegando la escritura en el disco.

¿Hay alguna forma de decirle por código que actúe como administrador?

marcoszorrilla
15-07-2013, 22:47:05
Prueba con botón derecho sobre el acceso directo y "ejecutar como administrador" en caso de que no te resulte comparte esa carpeta en el servidor dando permisos de Lectura y escritura a los usuarios que proceda.

Un Saludo.

salvica
15-07-2013, 23:13:30
Gracias por responder marcoszorrilla, pero no es la solución.

He estado mirando por internet y:
- En Como solicitar derechos de administrador de una aplicación Delphi (http://cgavidi.blogspot.com.es/2011/02/como-solicitar-derechos-de.html), dice como crear un fichero .RES pero no sé donde incluir la directiva {$R 'SolicitaAdmin.RES' 'SolicitaAdmin.RC'}, si en el form o en el .dpr del proyecto

- En Como ejecutar una aplicación con privilegios administrativos en perfiles limitados por Josh Sáenz G. (http://geeks.ms/blogs/vista-tecnica/archive/2008/07/21/como-ejecutar-una-aplicaci-243-n-con-privilegios-administrativos-en-perfiles-limitados.aspx), dice que se ejecute RunAs en el acceso directo del programa, pero al final da una serie de inconvenientes.

- Con tu solución, el ordenador donde se ejecuta el proceso y el de red deben tener los mismos administradores y contraseñas, y en este caso creo que no es así.

Veré si puedo dar derechos de escritura a la unidad de red, pero mi pregunta era por si habia alguna forma de ejecutar (por ejemplo) un ExecAndWait con derechos administrativos o cambiar los derechos al programa por código y solo para ese momento.

Gracias de todas formas y sigo esperando ideas
Salvica