Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 07/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
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
Reply With Quote
  #2  
Old 07/02/2019
newtron's Avatar
[newtron] newtron is offline
Membrillo Premium
 
Join Date: Apr 2007
Location: Motril, Granada
Posts: 4,215
Poder: 24
newtron Va camino a la fama
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.


Código Delphi [-]
    ShellExecute(Handle, 'open', PChar(Archivo), '', '', SW_SHOW);


Saludos
__________________
Be water my friend.
Reply With Quote
  #3  
Old 07/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Ohhh!!! muchas gracias Newton, cuando llegue a casa lo pruebo y te digo qué tal!!!
Reply With Quote
  #4  
Old 09/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
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.
Reply With Quote
  #5  
Old 09/02/2019
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.
Reply With Quote
  #6  
Old 09/02/2019
MAXIUM's Avatar
MAXIUM MAXIUM is offline
Miembro
 
Join Date: May 2005
Posts: 1,503
Poder: 23
MAXIUM Va camino a la fama
Reply With Quote
  #7  
Old 09/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
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
Reply With Quote
  #8  
Old 09/02/2019
look's Avatar
look look is offline
Miembro
 
Join Date: Sep 2007
Location: The Shire
Posts: 656
Poder: 19
look Va camino a la fama
Quote:
Originally Posted by mblascog View Post
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

Código Delphi [-]

ShellExecute(Handle, nil, PChar('dwg.exe'),  PChar(Archivo) ,  nil, SW_SHOWNORMAL)
__________________
all your base are belong to us
Reply With Quote
  #9  
Old 09/02/2019
MAXIUM's Avatar
MAXIUM MAXIUM is offline
Miembro
 
Join Date: May 2005
Posts: 1,503
Poder: 23
MAXIUM Va camino a la fama
Quote:
Originally Posted by mblascog View Post
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
Quizás leyendo los valores de instalación en el registro de Windows

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"

Last edited by MAXIUM : 09/02/2019 at 19:54.
Reply With Quote
  #10  
Old 17/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
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
Reply With Quote
  #11  
Old 17/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Buenas, existe alguna diferencia entre ejecutar un programa o un acceso directo?

Este código abre eDrawings:
Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
  var ruta: string;
begin
  edit1.text := '';
  edit1.PasteFromClipboard;
  ruta := 'C:\Program Files\Common Files\eDrawings2019\eDrawings.exe';

  if fileexists(edit1.text) then
    ShellExecute(Handle, 'open', PAnsichar(ruta), PAnsichar(edit1.text), nil, SW_SHOW)
  else
    Showmessage('No existe fichero');
  Application.Terminate;
end;

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
Reply With Quote
  #12  
Old 17/02/2019
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular





Reply With Quote
  #13  
Old 17/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Perdón, el primero lo he hecho, el segundo no, es un poco difícil con el móvil. I
Reply With Quote
  #14  
Old 17/02/2019
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by mblascog View Post
Perdón, el primero lo he hecho, el segundo no, es un poco difícil con el móvil. I
Yo con el móvil no puedo ni teclear Bastante has podido hacer.
Reply With Quote
  #15  
Old 18/02/2019
mblascog mblascog is offline
Miembro
 
Join Date: May 2006
Posts: 131
Poder: 21
mblascog Va por buen camino
Sigo con el problema y no consigo ejecutar el acceso directo:

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
  var ruta: string;
      error: integer;
begin
  edit1.text := '';
  edit1.PasteFromClipboard;

  if fileexists(edit1.text) then
  begin
    error := ShellExecute(0, 'open', Pchar('C:\eDrawings.lnk'), Pchar(edit1.text), Pchar('C:\'), SW_SHOWNORMAL);
    showmessage(inttostr(error));
  end
  else
    Showmessage('No existe fichero');
  Application.Terminate;
end;

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
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
saber ruta al presionar Ctrl +C DOS994 C++ Builder 11 23/12/2012 22:55
Buscar ruta de BD vlanka24 Varios 6 06/08/2008 15:41
cambiar la ruta de la bd... lurad Conexión con bases de datos 1 30/11/2006 11:21
Fopen Como Saber Ruta Relativa? wakeup C++ Builder 3 05/04/2006 15:58
Ruta de instalación Eolo SQL 0 24/08/2004 16:06


All times are GMT +2. The time now is 02:16.


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
Copyright 1996-2007 Club Delphi