![]() |
Saber ruta de un exe
Buenas, he creado una simple aplicación para que abra un fichero dwg con edrawings.
Todos los usuarios tienen instalado este programa, pero por los motivos que sean, no todos están en la misma ruta. Existe la manera de saber la ruta de un programa, no sé cómo lo hace cortana, o bien tengo que leer el registro? Muchas gracias |
Si tienes asociado en windows el archivo con el programa que lo abre solo tienes que usar la función "ShellExecute" para abrir el archivo con el programa predeterminado esté donde esté.
p.e.
Saludos |
Ohhh!!! muchas gracias Newton, cuando llegue a casa lo pruebo y te digo qué tal!!!
|
Gracias Newton, no siempre el visualizador es el programa predeterminado, en algunos usuarios sí, en otros no. Y no es por capricho, los diseñadores les interesa ir al explorador de archivos y con doble click abrir directamente el Autocad. Abren muchos ficheros al día y sería fastidiarles si cada vez tuvieran que ir botón derecho - abrir con
Por lo tanto, si alguien sabe cómo buscar el programa en el pc y ejecutarlo. |
Lo que has preguntado es lo que te han respondido.
Lo que dices del explorador de windows no tiene nada que ver con el programa que tú has hecho. Así que tendrás que aclararnos exactamente qué es lo que quieres. |
![]() |
Buenas, quizás no me he explicado, pero la respuesta no responde a mi pregunta.
Yo quiero que mi programita Delphi abra el fichero dwg con el programa edrawings, y no con otro Este código: [delphi] ShellExecute(Handle, 'open', PChar(Archivo), '', '', SW_SHOW);/DELPHI] abre el archivo dwg con el programa predeterminado, y yo necesito que sea el edrawings. Antes, he intentado explicar porqué unos usuarios tienen edrawings como visualizador predeterminado y otros no. La explicación que he dado antes, es que los diseñadores de la empresa, abren muchos ficheros dwg durante la jornada, y lo hacen desde el explorador de las Windows, con doble clic, y se abre Autocad, que lo tiebe como predeterminado. Por lo tanto, como puedo ejecutar edrawings, desde Delphi, sin saber la ruta exacta donde se encuentra (dependiendo de los programas que tengas instalados, se encuentra en una ruta o otra) Espero haberme explicado bien Muchas gracias |
Cita:
|
Cita:
HKEY_CURRENT_USER\Software\eDrawings\e2019\InstallDir Así obtienes la ruta de eDrawings.exe y EModelViewer.exe, la cual puedes usar con ShellExecute. O ejecutar eDrawings.exe + "ruta\nombre.dwg" |
Gracias por la respuesta, y parece que vaya buscando los problemas, pero eDrawings, dependiendo de la versión tiene una o otra entrada en el registro.
Se me ha ocurrido, como solución rápida y no tener que ir cambiando el programa según las versiones de Delphi, de crear un acceso directo a la C:\ de cada pc, y desde delphi, si se puede, intentar ejecutar este acceso directo. Informaré del resultado. Muchas gracias de nuevo |
Buenas, existe alguna diferencia entre ejecutar un programa o un acceso directo?
Este código abre eDrawings:
He creado un acceso directo en la c:\ que abre eDrawings, lo he probado. Y cuando lo intento ejecutar en Delphi no: procedure TForm1.FormActivate(Sender: TObject); var ruta: string; begin edit1.text := ''; edit1.PasteFromClipboard; ruta := 'C:\eDrawings.lnk'; if fileexists(edit1.text) then ShellExecute(Handle, 'open', PAnsichar(ruta), PAnsichar(edit1.text), nil, SW_SHOW) else Showmessage('No existe fichero'); Application.Terminate; end; Alguien sabe por qué?? Muchas gracias |
;)
![]() |
Perdón, el primero lo he hecho, el segundo no, es un poco difícil con el móvil. I
|
Cita:
|
Sigo con el problema y no consigo ejecutar el acceso directo:
He añadido que ShellExecute devuelva error. Devuelve el 31: No existe aplicación asociada con esta extensión, es decir, no sabe ejecutar el accesso directo. Buscando por Internet, veo posts de que es posible poder ejecutar un acceso directo, pero no sé como resolverlo. Alguna idea. Gracias |
La franja horaria es GMT +2. Ahora son las 04:44:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi