Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema shellExecute cuando no hay aplicacion "ejecuto

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema shellExecute cuando no hay aplicacion "ejecuto Responder citando

Buenas..

Mi problema es que al ejecutar un fichero pdf de la forma...
Código:

ShellExecute(NULL,"open","miArchivo.pdf",0,0,SW_SHOWDEFAULT);


Si no existe ninguna aplicacion que ejecute archivos pdf, el programa se bloquea y muestra la ventama "cpu" del IDE de c++ builder 6 (ningun mensaje de error) ...

Si existe no hay problema la ejecuta...

Podria solucionarlo si pudiera comprobar antes del ShellExecute si en el pc hay alguna aplicacion que ejecute PDF... pero no se hacerlo..

Alguna Idea...
Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:

int nRet= (int) ShellExecute(NULL,"open","miArchivo.pdf",0,0,SW_SHOWDEFAULT);
if ( nRet <= 32 ) {
        DWORD dw= GetLastError();
        char szMsg[250];
        FormatMessage(
            FORMAT_MESSAGE_FROM_SYSTEM,
            0, dw, 0,
            szMsg, sizeof(szMsg),
            NULL
        );
        ShowMessage(szMsg);
        return;
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues no logro reproducir tu error, al tratar de abrir un archivo sin aplicación asociada, Windows me pide que busque una...


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias a los dos por contestar.....

probare el codigo de felip y a escafandra le pondre un pantallazo del "error" ...

Gracias otra vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Buenas...

He probado el codigo de Felip y me sigue dando el mismo problema, ya que el conflicto surge al ejecutar la instruccion Shell

Envio Pantallazo de la ventana que se me abre en el ide de c6++ sobre windows XP

[img]
https://s22.postimg.org/b2xtx7n2p/Interrupcion.jpg[/img]

y el codigo es

Código:
AnsiString PathApp = ExtractFilePath(Aplication->Exename);
AnsiString PatFich =  PathApp+"Inf\\Manual.pdf";
ShellExecute(NULL,"open",PatFich.c_str(),0,0,SW_SHOWDEFAULT);


No veo cual es el problema (solo como idea...no tengo apenas espacio en el disco duro (104MB)... ¿puede haber algun problema con la memoria virtual?)

Como solucion se podria accediendo al registro de windows saber si hay alguna aplicacion que ejecute archivos pdf :

Garcias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Código:

AnsiString PathApp = ExtractFilePath(Application->ExeName);
AnsiString PatFich =  PathApp+"Inf\\p.ttx";
ShellExecute(NULL,"open",PatFich.c_str(),0,0,SW_SHOWDEFAULT);


Un archivo desconocido ttx...

Win10 me pide que busque una aplicación para abrirlo. Algo hay en ese PC tuyo que provoca tu error.


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

ejemplo:

https://cppbuilder.es/viewtopic.php?t=8576
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por contestar...

Al fina solucionado (o eso creo).. al conocer que en el registro HKEY_CLASSES_ROOT se asignan las extensiones que abren aplicaciones instaladas en en s.o , opto por comprobar si existe la extension pdf (gracias felip) y si existe ejecuto el archivo y si no mando un mensaje "no existe aplicacion necesaria".
Respecto al "error" que se producia... debido a una mala desinstalacion en mi pc, sin tener el programa que ejecute archivos pdf si exis la key .pdf en el registro, al eliminarla dejo de saltar la ventana cpu al intentar ejecutar el archivo, simplemente no hace nada.

Gracias Otra vez.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

De todas formas, si puedes no dejes el Handle como nulo, eso puede dar errores en ocasiones.


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.