• Sábado 27 de Abril de 2024, 02:20

Autor Tema:  Command Line En Vb6 (línea De Comandos)  (Leído 1278 veces)

Javiechu

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Command Line En Vb6 (línea De Comandos)
« en: Jueves 26 de Octubre de 2006, 18:47 »
0
Hola...

Soy nuevo en el foro pero tengo algo de experiencia en programación en VB6... Desconozco si aquí hay nivel suficiente para obtener respuesta o si la gente pone empeño en resolver las dudas para compartir conocimientos... Perdonadme pero es la primera vez que entro y participo.. Bueno.... Tengo la siguiente duda...

He relacionado una extensión de archivo (por ejemp. *.PAR) con mi aplicación.
Cuando hago click 2 veces a un archivo (*.PAR) se abre mi aplicación y con el siguiente ejemplo cojo el primer parámetro de la línea de comandos (aplicación.exe %1):

Dim mi_fichero As String

Private Sub Form_Load()
'En command se almacena el parámetro 1
mi_fichero = command
If mi_fichero <> "" then
Open mi_fichero for Input As #1
....
Close #1
End If
End Sub

Me gustaría abrir el fichero... pero qué ocurre... que aparece el path del directorio del fichero en version 8.3 (nombres cortos de menos de 8 caracteres). Y como el path del fichero es largo produce un error de lectura.

Por ejemplo:

c:\Documents and Settings\User\Escritorio\Nueva Carpeta\lolo.par

se convierte en:

c:\Documen~1\User\Escrit~1\Nueva ~1\lolo.par

o algo similar...

NO consigo obtener la dirección completa para nombres largos...

Alguien sabe qué hay que hacer... Puede que haya alguna solución con las funciones API. Pero desconozco si la hay.

Un saludo a todos.
Javiechu

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Command Line En Vb6 (línea De Comandos)
« Respuesta #1 en: Jueves 26 de Octubre de 2006, 19:27 »
0
Hola

Código: Text
  1.  
  2. Private Declare Function GetLongPathName Lib &#34;kernel32&#34; Alias &#34;GetLongPathNameA&#34; _
  3.     (ByVal lpszShortPath As String, ByVal lpszLongPath As String, _
  4.     ByVal cchBuffer As Long) As Long
  5.    
  6. Private Sub Command1_Click()
  7.  Dim ls_Buffer As String
  8.  Dim li_longitud As Long
  9.        
  10.     ls_Buffer = Space(255)
  11.     li_longitud = GetLongPathName(Text2, ls_Buffer, Len(ls_Buffer))
  12.     MsgBox (&#34;La ruta Completa es: &#34; & Left(ls_Buffer, li_longitud))
  13.        
  14. End Sub
  15.  
  16.  

http://www.elguille.info/VB/


por cierto es VB6?  

aqui esta el foro correcto:
http://foros.solocodigo.com/index.php?showforum=39     :)

Suerte
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================