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 |
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. |
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 |
Hola,
Pues es verdad... yo no había caído tampoco. :) |
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. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 03:54:36. |
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