Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Enemy en 16 Abril 2013, 21:30 pm



Título: (Duda) Shell desde vb6
Publicado por: Enemy en 16 Abril 2013, 21:30 pm
Ya tengo terminada la version 1.0 de mi programa y corregi todos los posibles errores a la hora de iniciar el programa o de realizar su funcion, pero.. despues de compilado, me sale un error en esta linea de codigo:

Código
  1. ...
  2. Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus
  3. ...

Aun asi, abre el archivo especificado pero viene acompañado de este error:

(https://imageshack.us/scaled/large/823/ss3yam.png)

Antes usaba una ruta de prueba como "C:\Archivo.txt" y cuando probaba el programa, lo hacia de lo mas bien, pero una vez compilado, empezo a fallar desde que le puse App.path, yo creo que esta bien asi como lo puse, o almenos eso creo.

Que puede estar fallando?

pd: Probe tambien con ShellExecute (declarando en el modulo) y cuando lo quiero usar me dice que Sub o Function no declarada siendo que esta bien declarada.


Título: Re: (Duda) Shell desde vb6
Publicado por: ignorantev1.1 en 16 Abril 2013, 23:27 pm
Muestra completamente la función o procedimiento a la que pertenece esa linea de código, por favor.

¡Saludos!


Título: Re: (Duda) Shell desde vb6
Publicado por: Enemy en 17 Abril 2013, 02:53 am
Es parte del proceso de parchado de mismo boton "parchar" solo que es un condicional en caso de marcar un check4, generar un archivo de texto que tendra los cambios realizados dependiendo de los check1 y check2, al terminar de escribir en el archivo de texto, se guarda y se ejecuta.

Te dejo la parte mas relevante del codigo, el resto pertenece a lo del manejo del archivo excel:

Código
  1. If Check4.Value = 1 Then
  2. Set Archivo = Fso.CreateTextFile(App.Path & "\Changes.txt", 1)
  3.    If Check1.Value = 1 Then
  4.        With Archivo
  5.        .writeline "#########################"
  6.        .writeline "Bla bla bla:"
  7.        .writeline vbCrLf
  8.        .writeline "#########################"
  9.        End With
  10.    End If
  11. '-------------------------------------------
  12.    If Check2.Value = 1 Then
  13.        With Archivo
  14.        .writeline "#########################"
  15.        .writeline "Bla bla bla"
  16.        .writeline "bla bla bla" & vbCrLf
  17.        .writeline "#########################"
  18.         End With
  19.    End If
  20. Archivo.Close
  21. Set Fso = Nothing
  22. Set Archivo = Nothing
  23. Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus


Título: Re: (Duda) Shell desde vb6
Publicado por: ignorantev1.1 en 17 Abril 2013, 05:11 am
Es que, creo, que deberías de comprobar si el archivo está listo antes de cargarlo con el bloc de notas. ¿Por qué no usas los métodos tradicionales de manejo de archivos?...

¡Saludos!


Título: Re: (Duda) Shell desde vb6
Publicado por: Enemy en 17 Abril 2013, 05:30 am
Intente de 3 formas y crei que esa era la mejor, mas no puedo refrescar la memoria, hace 4 años que no retomaba VB  :rolleyes:


Título: Re: (Duda) Shell desde vb6
Publicado por: ignorantev1.1 en 17 Abril 2013, 05:40 am
Código
  1. Dim auxStr as string
  2. Dim FF as long
  3.  
  4. If Check4.Value = 1 Then
  5.    If Check1.Value = 1 Then
  6.        auxStr=auxStr & vbcrlf & "###########" & vbcrlf & "BlaBlablabla1" vbcrlf & "###########"
  7.    End If
  8. '-------------------------------------------
  9.    If Check2.Value = 1 Then
  10.       auxStr=auxStr & vbcrlf & "###########" & vbcrlf & "BlaBlablabla2" vbcrlf & "###########"
  11.    End If
  12.  
  13.    FF=freefile
  14.    open  App.Path & "\Changes.txt" for binary as ff
  15.    put ff,,auxStr
  16.    while lof(ff)<len(auxStr)
  17.        doevents
  18.     wend
  19.     close ff
  20.  
  21.     Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus
  22.  

A ver, prueba eso (no tengo un IDE de vb aquí), talvez funcione.

¡Saludos!


Título: Re: (Duda) Shell desde vb6
Publicado por: Enemy en 17 Abril 2013, 06:26 am
Si, en vez de manejar el archivo de texto con fso podria hacerlo asi tambien pero, es mucho el texto que tengo que meter. Voy a probar, ta vez asi funcione, sino vuelvo a molestar por aca.


Título: Re: (Duda) Shell desde vb6
Publicado por: raul338 en 17 Abril 2013, 15:20 pm
esto no funciona
open C:\Archivos de programa\a.txt

esto SI funciona
open "C:\Archivos de programa\a.txt"

Te faltan las comillas al parametro del archivo, aunque es raro que te salga ese error y no otro como error externo o algo así