Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: garsen en 23 Octubre 2008, 17:20 pm



Título: .BAT en VB
Publicado por: garsen en 23 Octubre 2008, 17:20 pm
Hola a todos, soy nuevo en el foro asi que antes de nada me presento  ;D

Bueno mi problema reside en que al intentar ejecutar un archivo .BAT desde VB mediante:

Private Sub Command1_Click()
Shell "C:\prueba.bat", vbHide
End Sub

El .BAT ejecuta un dir y lo guarda en un archivo de texto. El problema es que el archivo de texto no es creado, al ejecutarlo desde VB, con el codigo anterior pero si que se abre la consola ya que me salta el Firewall.

Sin embargo si ejecuto el BAT haciendo doble click con el raton el fichero de texto si que es creado correctamente.

A ver si alguien puede echarme una mano.


Título: Re: .BAT en VB
Publicado por: carolmuriel en 23 Octubre 2008, 18:00 pm
Private Sub Command1_Click()
Shell "c:\takata.bat"
End Sub

esto esta bien ahora lo k dices es k no se te abre el fichero no desde vb? pk fijate eso es por q bat, debe tener un directorio de trabajo,osea una ruta desde donde llamaras a los archivos por eso cuando tu lo ejecutas con el doble click se lo ves por q la ruta  es el directorio donde se encuentra el archivo. Pero cuando lo llamas desde VB, la ruta ya seria el directorio donde tenes la aplicación de vb, Entonces, para que te funcione la llamada a Shell(), debes tener el bat junto a el un exe con el mismo directorio (corrije la ruta del bat), si no se te es posible si  que el bat estue en el mismo directorio que el exe, usa la funcion api "ShellExecute():"


Título: Re: .BAT en VB
Publicado por: Novlucker en 23 Octubre 2008, 18:02 pm
Lo que entiendo es que el bat si se ejecuta, pero el archivo que debería de generarse con >> no aparece verdad?
Revisa bien que seguro el archivo esta creado, pero no en el directorio que esperas  :P

Saludos


Título: Re: .BAT en VB
Publicado por: vivachapas en 23 Octubre 2008, 18:19 pm
o tal vez hay un error en el codigo del .bat y por eso no lo crea :P


Título: Re: .BAT en VB
Publicado por: carolmuriel en 23 Octubre 2008, 18:25 pm
o tal vez hay un error en el codigo del .bat y por eso no lo crea :P

no eso no es el peo es con al ruta... el error siempre pasa por eso , su code tal cual como lo mostro esta bien, solo debe poner cuidado a lo k le dijo Novlucker y me


Título: Re: .BAT en VB
Publicado por: Angeldj27 en 23 Octubre 2008, 20:27 pm
No se dan cuenta lo k dice el lo ejecuta directamente y funciona, solamente no le funciona desde vb.

Creo que lo que dice carolmuriel  en su primer post seria mas razonable


Título: Re: .BAT en VB
Publicado por: garsen en 23 Octubre 2008, 20:45 pm
El codigo del Bat creo esta bien porque al ejecutarlo desde el explorador de Windows funciona perfectamente, pero cuando lo hago con el codigo que os he puesto desde VB la consola se abre (me salta el aviso al Firewaal) pero el archivo de texto donde se tenia que haber almacenado el resultado del comando dir no es creado.

Ahora oy a probar lo que dice carolmuriel y os cuento si me va.


Título: Re: .BAT en VB
Publicado por: garsen en 23 Octubre 2008, 21:50 pm
Ya esta solucionado, si se ejecuta un bat desde VB mediante funcion Shell el .exe ha de estar en la misma carpeta que el bat como bien decia carolmuriel.

Gracias por la ayuda


Título: Re: .BAT en VB
Publicado por: WestOn en 23 Octubre 2008, 21:53 pm
Wenas, si no quieres tener el exe en la misma carpeta tb puedes hacer esto:
Código
  1. shell "cmd /c dir /o /n /s >dir.txt"

un saludo ;)


Título: Re: .BAT en VB
Publicado por: Spider-Net en 24 Octubre 2008, 00:20 am
Prueba así:

Código
  1. Private Sub Command1_Click()
  2.       Shell "cmd /c C:\prueba.bat", vbHide
  3. End Sub
  4.  

Saludos!