Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Sobre la ruta completa de un EXE (https://www.clubdelphi.com/foros/showthread.php?t=33956)

oscjae 21-07-2006 16:09:51

Sobre la ruta completa de un EXE
 
Wenas, no se si es aqui donde debo preguntar esto, creo que si.
La cuestion es que tengo un acceso directo de un EXE que esta en otro equipo, en el escritorio, la direccion que me sale con ExtracFilePath es "//Servidor/Programa/programa.exe", el problema viene cuando el ejecutable esta en una unidad que no es la del sistema operativo, por ejemplo, D:\Principal\Programa\programa.exe, como puedo saber a partir de la direccion de antes "//Servidor/Programa/programa.exe" o "//Servidor/Principal/Programa/programa.exe", la unidad en la que esta el ejecutable, y la ruta completa, ya que puede estar compartido el directorio final en el ejemplo "Programa"

Mick 21-07-2006 19:42:48

No se puede saber, por lo menos desde el ordenador cliente.

El ordenador cliente solo conoce la ruta de red, pero la letra de unidad en el ordenador servidor no se puede saber, podria hasta
no existir (si por ejemplo el servidor que comparte los archivos usa un sistema operativo distinto a windows como unix o linux en los
que no existen letras de unidad).

Lo unico que se me ocurre para que necesites saber la ruta real es que quieras conectar con una base de datos como interbase o firebird
a las que se le debe indicar la ruta fisica de la base de datos. Pero desgraciadamente por lo que he explicado antes no se puede deducir,
asi que la opcion que tienes es escribir en algun archivo .ini o de configuracion la ruta fisica a la base de datos, y que desde el cliente el programa lea ese
archivo de configuracion para saber ese dato. Otra opcion es que crees un ALIAS a la base de datos en el servidor (en el caso de que uses firebird),
de modo que de ese modo no necesitas saber la ruta para conectar con la base de datos, basta saber el nombre del ALIAS que
le hayas dado.

Saludos

oscjae 23-07-2006 21:40:00

Gracias por responder, imaginaba lo que me has comentado, que no se puede saber, es como tu dices para conectar una base de datos firebird, lo del fichero ini ya lo he probado, pero tampoco puedo leerlo por el mismo problema de antes, y sobre el alias, no puedo leer en el registro de windows del supuesto servidor, que es donde se crea el alias, el alias se crea en el equipo donde estes ejecutando la aplicacion, en un principio no hay alias en el terminal desde donde estoy ejecutando la aplicacion, y lo que yo queria era precisamente crear ese alias a partir de la ruta del acceso directo, pero vamos, que por lo que veo, a no ser que el programa este en la unidad donde esta el sistema operativo, que en ese caso va bien, pues tendre que preguntar al usuario que introduzca la ruta de la base de datos, no veo otra solucion, gracias por responderme

Mick 24-07-2006 13:38:05

Un fichero de configuracion se puede leer sin problemas a traves de la red,
a windows le da igual acceder a un archivo poniendo
d:\loquesea\archivo
o
\\servidor\loquesea\archivo

Si no te funciona tienes que estar haciendo algo de forma incorrecta, postea el codigo de lectura del archivo de configuracion y podremos
ver cual es el problema.

Saludos

dec 24-07-2006 13:51:11

Hola,

Cita:

Empezado por Mick
a windows le da igual acceder a un archivo poniendo

d:\loquesea\archivo

o

\\servidor\loquesea\archivo

Parece raro... si todavía el archivo INI (por ejemplo) estuviera en la carpeta de Windows o en la del sistema,... pero, si no, me extraña. Ojo, que no digo que no se pueda, que de esto y de otras cosas sabemos tú mucho más que yo. :D

Lepe 24-07-2006 17:18:08

Comprobado lo dicho por Mick

He abierto archivos ini a través de una red local.
Borrado archivos con DeleteFile.
Crear Archivos con un simple SaveToFile del TStringList.
Y por supuesto comprobar si existe (FileExists).

Saludos

oscjae 25-07-2006 12:36:15

Si, teneis razon, puedo leer el fichero INI, de configuracion, lo estaba haciendo mal.
Pues tendre que hacerlo de esa forma, ya que veo que es la unica, gracias por las respuestas
Salu2 a to2


La franja horaria es GMT +2. Ahora son las 00:59:25.

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