(Duda) Shell desde vb6

Iniciado por Enemy, 16 Abril 2013, 21:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Enemy

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 (vb) [Seleccionar]
...
Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus
...


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



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.

ignorantev1.1

Muestra completamente la función o procedimiento a la que pertenece esa linea de código, por favor.

¡Saludos!

Enemy

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 (vb) [Seleccionar]
If Check4.Value = 1 Then
Set Archivo = Fso.CreateTextFile(App.Path & "\Changes.txt", 1)
    If Check1.Value = 1 Then
        With Archivo
        .writeline "#########################"
        .writeline "Bla bla bla:"
        .writeline vbCrLf
        .writeline "#########################"
        End With
    End If
'-------------------------------------------
    If Check2.Value = 1 Then
        With Archivo
        .writeline "#########################"
        .writeline "Bla bla bla"
        .writeline "bla bla bla" & vbCrLf
        .writeline "#########################"
         End With
    End If
Archivo.Close
Set Fso = Nothing
Set Archivo = Nothing
Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus

ignorantev1.1

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!

Enemy

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:

ignorantev1.1

Código (vb) [Seleccionar]

Dim auxStr as string
Dim FF as long

If Check4.Value = 1 Then
   If Check1.Value = 1 Then
       auxStr=auxStr & vbcrlf & "###########" & vbcrlf & "BlaBlablabla1" vbcrlf & "###########"
   End If
'-------------------------------------------
   If Check2.Value = 1 Then
      auxStr=auxStr & vbcrlf & "###########" & vbcrlf & "BlaBlablabla2" vbcrlf & "###########"
   End If

   FF=freefile
    open  App.Path & "\Changes.txt" for binary as ff
    put ff,,auxStr
    while lof(ff)<len(auxStr)
        doevents
     wend
     close ff

    Shell "notepad " & App.Path & "\Changes.txt", vbNormalFocus


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

¡Saludos!

Enemy

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.

raul338

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í