FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problema con el ShellExecute
Hola,
necesito que alguien me heche una mano con un problemilla que tengo. Hice una aplicación y tengo creado un boton de ayuda. Lo que quiero es que al pulsar en él pueda visualizar un pdf de ayuda (un manual). Este es el código que tengo escrito, pero al pulsar en el icono de ayuda simplemente no hace nada, ni da ningún tipo de error.... void __fastcall TForm1::IconoAyudaClick(TObject *Sender) { ShellExecute(GetActiveWindow(), "open", "E:\proxecto\ULTIMO\ayuda\ayuda.pdf" , NULL, NULL, SW_SHOWNORMAL); } ¿alguien tiene idea de porque, o sabe alguna otra manera que pueda funcionar? gracias |
#2
|
||||
|
||||
Hola,
Primero que nada (aunque parezca simple) comprueba que existe el archivo en cuestión. Por otro lado comprueba el resultado de la función "ShellExecute", y llegado el caso comprueba también el último error con la función "GetLastError()".
Edito: Tal vez me pasé de listo. Mirando la ayuda no veo referencia a que pueda usarse "GetLastError()"... y sí a que la función puede retornar un entero menor o igual que 32 en caso de éxito, o uno de los siguientes enteros/constantes en caso de error: Código:
0 The operating system is out of memory or resources. ERROR_FILE_NOT_FOUND The specified file was not found. ERROR_PATH_NOT_FOUND The specified path was not found. ERROR_BAD_FORMAT The .exe file is invalid (non-Microsoft Win32 .exe or error in .exe image). SE_ERR_ACCESSDENIED The operating system denied access to the specified file. SE_ERR_ASSOCINCOMPLETE The file name association is incomplete or invalid. SE_ERR_DDEBUSY The Dynamic Data Exchange (DDE) transaction could not be completed because other DDE transactions were being processed. SE_ERR_DDEFAIL The DDE transaction failed. SE_ERR_DDETIMEOUT The DDE transaction could not be completed because the request timed out. SE_ERR_DLLNOTFOUND The specified DLL was not found. SE_ERR_FNF The specified file was not found. SE_ERR_NOASSOC There is no application associated with the given file name extension. This error will also be returned if you attempt to print a file that is not printable. SE_ERR_OOM There was not enough memory to complete the operation. SE_ERR_PNF The specified path was not found. SE_ERR_SHARE A sharing violation occurred. Última edición por dec fecha: 09-07-2007 a las 22:40:18. |
#3
|
|||
|
|||
Gracias por la ayuda, ya he solucionado el problema gracias a la función que me pasaste para ver el último error.
No encontraba el archivo especificado! Lo raro es que era porque ponía una barra para los directorios en vez de 2, así funciona: "E:\\proxecto\\ULTIMO\\ayuda\\ayuda.pdf" no tenía ni idea de que tenía que indicar así los subdirectorios!!! Gracias de nuevo |
#4
|
||||
|
||||
Hola,
Pues es verdad... yo no había caído tampoco. |
#5
|
|||
|
|||
Buenas, la verdad es que yo utilizo el siguiente procedimiento:
y la cadena que le paso como argumento no tiene porque llevar doble contrabarra, es decir yo llamo al procedimiento tal que asi:
En mi caso le digo que lo imprima directamente sin mostrarlo por pantalla, pero vamos pienso yo que será lo mismo print que open. De todas formas yo uso windows 2000 server y delphi 6 por si puede influir en algo. |
#6
|
||||
|
||||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema con shellexecute | ebeltete | API de Windows | 4 | 21-10-2006 01:23:12 |
Problema con ShellExecute | Walterdf | Varios | 9 | 18-11-2005 21:44:19 |
shellexecute. | REHome | API de Windows | 2 | 26-09-2005 12:23:25 |
Problema con ShellExecute | hector_etv | Varios | 1 | 07-08-2005 05:11:47 |
ShellExecute | arantzal | Varios | 0 | 04-05-2005 12:31:03 |
|