Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Abrir archivo (https://www.clubdelphi.com/foros/showthread.php?t=26982)

Ivan_25 09-11-2005 08:50:43

Abrir archivo
 
Hola a tod@s!!!. ¿Como puedo hacer para que al abrir un archivo, por ejemplo un jpg, lo abra con la aplicacion que yo quiera?. La sentencia que yo ejecuto para abrir un archivo es esta, pero me lo abre con la aplicacion por defecto:

ShellExecute(NULL, "open", rutanombre1.c_str() ,NULL, NULL, SW_SHOWNORMAL);

Gracias

alt126 09-11-2005 09:29:39

No veo el problema...
 
he probado esto y funciona perfectamente:

Cita:

String aux;
aux = "c:\\escudo.jpg";
ShellExecute(NULL, "open","c:\\WINDOWS\\system32\\mspaint.exe", aux.c_str(), NULL, SW_SHOWNORMAL);
Y lo abre con el programa que esta puesto, es decir, el paint brush. Si solo pones open, lo abre con el por defecto, si le pones un programa, lo abre con el programa, y en parametros, el nombre del archivo.

Ivan_25 09-11-2005 10:00:50

Gracias Antoñicoooooooooo!!!!Y a ver si quedamos ya para lo de SI.

alt126 09-11-2005 10:12:40

pos esta tarde sin falta!!!

voy a mandar un email al "welcome" a ver si va a estar esta tarde...

Ivan_25 09-11-2005 10:24:32

Mejor mañana, que yo esta tarde no puedo.

Ivan_25 09-11-2005 10:28:42

Y otra cosa
 
El ShellExecute me falla con archivos xls y ppt, me dice que la ruta no es correcta, y sin embargo con todas las otras extensiones si me abre el archivo.

ShellExecute(NULL, "open", rutanombre1.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre2.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre3.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre4.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre5.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre6.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre7.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre8.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre9.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre10.c_str() ,NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, "open", rutanombre11.c_str() ,NULL, NULL, SW_SHOWNORMAL);

¿Podria hacer para que en lugar de hacer el shellexecute para todas las extensiones y la que sea se abra, buscar el nombre del archivo en un directorio, aunque no conozca la extension?Solo conozco el nombre.

alt126 09-11-2005 10:35:29

No entiendo la pregunta...pero si lo que quieres es que el usuario seleccione un archivo del disco duro y se abra automaticamente...posssss es muy facil...

Tienes que usar el componente TOpenDialog...con eso te permite abrir un dialogo de abrir archivo,imagen...cuando el usuario selecciona el archivo, en una variable tienes el nombre completo del archivo. Entonces solo tienes que hacer un shellexecute de ese archivo...y listo!!!

Que facil es la informatica!!

Ivan_25 09-11-2005 10:44:25

Nononono, no es eso. Veras, yo tengo un formulario con un dbgrid, donde muestro un monton de gente, entonces selecciono uno y me aparecen todos sus datos en otro formulario, donde tengo un boton que es 'Abrir curriculum'. El curriculum puede ser xls, ppt, doc, etc...pero se tiene que abrir automaticamente el asignado a esa persona sin buscarlo. ¿Me entiendes?. Yo hago eso con shellexecute de la manera que te he puesto antes, pero los xls y los ppt no se me abren, me dice que falla la ruta, y todos los demas si funcionan y son todos iguales. He copiado los xls y los ppt en la carpeta del ejecutable y entonces si me los abre, pero los he de tener en la carpeta expedientes. ¿Entiendes lo que digo?. ¿Sabes porque falla concretamente en esos dos?

alt126 09-11-2005 12:28:20

posssssss comprobado que funciona:

Cita:

ShellExecute(NULL, "open", "C:\\a.xls" ,NULL, NULL, SW_SHOWNORMAL);
Asi que comprueba que la ruta del excel y el power point y to eso es la correcta...pq tendria que funcionar!!!


La franja horaria es GMT +2. Ahora son las 07:48:07.

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