Visual Basic - Ajuda Error con App.Path

Life is soft - evento anual de software empresarial
 
Vista:

Ajuda Error con App.Path

Publicado por juan (3 intervenciones) el 12/01/2009 04:23:40
Hola Me Llamo Juan y le comento mi problema y gracias de antes manos.
Mi Problema es que no puedo abrir algo que tengo en mi programa.
ej. yo quiero abrir una guia en formato pdf que tengo en una carpeta de mi programa pero cuando pongo el codigo Shell "cmd.exe Start" App.Path "guiasguia.pdf" Me tira un error 53 y me marca el App.
Yo actual mente el Programa ya lo tengo echo pero con el codigo
Shell "cmd.exe start C:MiPrograma" & "Dataguiasguias.pdf"
Pero haci no puedo cambiar el directorio del programa por q no me funciona
yo quisiera savar el codigo para que me abra la guia de mi programa con el path asi se puede instalar en cualquier directorio de la pc

PD: se que es una pregunta tonta por que eso es algo basico pero la verdad es que yo no lo se y por eso le pregunto a ustedes desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ajuda Error con App.Path

Publicado por P3L30N2009 (699 intervenciones) el 12/01/2009 13:23:42
Elñ problema no está en App.Path sino que el DOS no admite nombres de directorios largos.

Tienes primero que convertir a "ShortPath" el directoriocon la API GetShortPathName:

Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

Private Sub Command1_Click()
Dim lRet As Long, sBuffer As String, MiPath As String, PathDos As String

sBuffer = String$(165, 0)
MiPath = App.Path
lRet = PathDosName(MiPath, sBuffer, 164)
PathDos = Left$(sBuffer, lRet)
Shell "cmd.exe /c start " & PathDos & "\guiasguias.pdf"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Atención!!

Publicado por juan (3 intervenciones) el 13/01/2009 02:00:24
hola P3L30N2009 hola lo probare y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar