PDA

Ver la Versión Completa : problemas con VB y hlp


nicvera
11-10-2006, 06:30:47
Hola,

Tengo un un proyecto en VB al cual le hice una ayuda en .hlp, y este archivo de ayuda tiene unos enlaces a hojas electrónicas (excel), es decir, se abren esos archivos haciendo click sobre los links correspondientes en el hlp. Pero tengo un problema, la primer vez que accedo al hlp desde VB puedo abrir los enlaces, pero cuando vuelvo a abrir el hlp desde VB y trato de abrir los enlaces ya no puedo y me dice un mensaje:

"No se puede encontrar o ejecutar el archivo o programa (Nombre de la ruta del enlace)"

Según ví, al eliminar el .GID sí puedo volver a acceder a los links. Traté de eliminar el .GID desde VB pero no pude porque el .GID es oculto.

Por favor, si alguien sabe qué puedo hacer, espero su colaboración y respuesta.

Robert01
11-10-2006, 14:44:31
Una pregunta ¿Te da la posiblilidad de poner el camino o de buscar donde están los documentos?

Lepe
11-10-2006, 14:52:52
Pues mira en VB como quitar el atributo de oculto, aquí una web con ejemplos.
GetAttr: mirar los atributos:
http://vb-helper.com/howto_get_file_attributes_with_getattr.html

SetAttr: establecer los atributos:
http://vb-helper.com/howto_delete_directory_hierarchy.html

Saludos

nicvera
12-10-2006, 01:18:58
hola, primero que todo gracias a quienes respondieron. Sé que no era una pregunta común.:)

Vamos por partes:

Primero, la pregunta de que si me sale la opción de ingresar la ruta... no me sale esa opción, el mensaje de error es un típico mensaje de errores de windows:

(Título) Ayuda de windows

(Cuerpo del mensaje) No se puede encontrar o ejecutar programa (Ruta)

En Ruta es donde está la inquietud del amigo que preguntó que si me dejaba ingresarla. En Ruta simplemente sale la ruta que tiene el link que abre el archivo de excel, esa ruta sólo se puede ver originalemente en el .rtf desde donde se crea el .hlp . Específicamente en mi caso, esa ruta dice lo siguiente:

Aplicaciones\archivo.xls

Me explico: yo tengo el .hlp en un directorio el cual contiene a su vez tambien un directorio llamado Aplicaciones, dentro de ese directorio Aplicaciones está el archivo de excel archivo.xls, es decir, el archivo de ayuda .hlp tiene un link con una ruta "relativa" al archivo de excel que intento abrir.

Eso funciona perfectamente cuando ejecuto el .hlp haciendo doble clic sobre él ( o enter)... arranca el hlp y desde él puedo abrir el archivo de excel a través del link, cierro el hlp, luego lo vuelvo a abrir, y puedo volver a acceder al archivo de excel desde el hlp... hasta ahí todo funciona correctamente.

El problema aparece es cuando llamo el hlp desde mi proyecto de VB, si no existía el archivo .GID antes de llamar al hlp todo funciona correctamente, es decir, puedo abrir el .xls. Pero si existía el .GID antes de abrir el hlp desde VB entonces ya no me deja abrir el .xls, saliéndome el mensaje de error antes descrito; es como si no encontrara el directorio Aplicaciones, el cual está ahí!!!!!.

Según pude observar, hay dos cosas que pueden estar causando el conflicto:
1. La ruta "relativa" al archivo de excel
2. EL archvio .GID

Voy a intentar poner el archivo de excel en el mismo directorio del hlp para simplemente poner el link en el rtf con el nombre del archivo de excel (archivo.xls). Esa podría ser una solución ( aunque sigo sin ver el problema).

Pero al parecer no veo el problema porque no conozco mucho acerca del .GID, sólo sé de él los grandes rasgos: índice de ayuda, se crea automáticamente cuando se ejecuta el hlp, se reemplaza si existe,,,, pero no entiendo por qué cuando lo ejecuto desde VB una vez, ya no me permite abrir el link de excel nuevamente. Bueno, como sea,,,!!!

La otra solución que veo sería eliminar el .GID cada vez antes de ejecutar el hlp, lo cual lo hice manualmente y sí funcionó, pero no he podido programar eso desde vb porque soy novato en vb y no tengo ni idea cómo elimar archivos ocultos (ahí es donde agradezco al amigo que me envió los enlaces para ello, aún no los he visto, voy a intentar la otra solución que es menos destructiva (ya que no tengo qué eliminar archivos) y si no me sirve me pondré a leer los enlaces).

Bueno, escribo todo esto prque seguramente a alguien más le habrá pasado el mismo problema, entonces le voy dejando posibles soluciones....

Si alguien más sabe acerca de todo este problema le agradezco que conteste.

egostar
12-10-2006, 02:04:15
El problema aparece es cuando llamo el hlp desde mi proyecto de VB, si no existía el archivo .GID antes de llamar al hlp todo funciona correctamente, es decir, puedo abrir el .xls. Pero si existía el .GID antes de abrir el hlp desde VB entonces ya no me deja abrir el .xls, saliéndome el mensaje de error antes descrito; es como si no encontrara el directorio Aplicaciones, el cual está ahí!!!!!.


Por lo que veo el problema se relaciona con el archivo GID, así que deberías de borrar el archivo.

En Delphi esto es muy fácil, tendrías que leer la ayuda de VB para encontrar una función que te permita hacer eso.

Aqui te muestro en código delphi como se hace


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if fileexists('d:\desarrollo\starw\AYUDA.GID') then begin
deletefile('d:\desarrollo\starw\AYUDA.GID');
end;
Application.HelpFile := 'd:\desarrollo\starw\AYUDA.HLP';
Application.HelpJump('hlp_menu');
end;


Por ahi encontré una página (http://www.elguille.info/VB/vb_resumen.htm) donde te habla de eso mismo.

Saludos.

Robert01
12-10-2006, 03:32:12
Tenés que ir a proyecto --> propiedades (nombre del programa) del proyecto y en este poner en "nombre del archivo de ayuda" el camino completo. Por ej.
c:\miprograma\ayuda.hlp. Si no lo encuentra allí trata de buscar el archivo en "mis documentos" o "my documents" y sino da la posibilidad de buscarlo.
Por lo menos a mi visual basic 6 me da la posibilidad.
Yo pienso que los archivos de excel deberían estar también en esos directorios.

saludos

nicvera
12-10-2006, 13:15:53
hola!

Al amigo que contestó diciendo que pusiera la ruta del hlp en las propiedades le agradezco su información... la verdad no me entendió el problema... es que yo lanzo la aplicación de un hlp desde vb pero no es necesariamente la ayuda general del proyecto... es otra :D.

Bueno, de todas formas, ya solucioné el problema!!!!!:) :) :) .

Y lo comento a continuación para una futura ayuda a quien tenga ese mismo problema y busque en internet!!!!!

El problema está con las direcciones relativas a la ubicación del hlp en los links del hlp... si el problema tiene algo qué ver con vb lo hemos solucionado desde el hlp. La solución fue poner la ruta al archivo de excel sólo con el nombre del archivo de excel... esa ruta es la que vá en el rtf (ahora que lo pienso de todas formas es una ruta relativa!!!, la diferencia está en que ya no tiene problemas con buscar directorios).

La recomendación es la siguiente: no poner rutas relativas en los links del rtf.
Simplemente poner el hlp en el mismo directorio de los archivos de excel (en mi caso).

Si alguien tiene más dudas o nuevas soluciones bienvenidas sean!!!:)