elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ShellandWait ayuda para entener
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ShellandWait ayuda para entener  (Leído 3,061 veces)
andrer03

Desconectado Desconectado

Mensajes: 72


Ver Perfil
ShellandWait ayuda para entener
« en: 22 Enero 2009, 19:06 pm »

miren estoy haciendo un programa que necesito ejecutar un archivo bat
quiero que cuando acabe lo que e programado en el archivo bat ejecutar un boton
automaticamente estuve leyendo algo pero no logro que espere que acabe y ejecute el boton si algun puede ayudar :)


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #1 en: 22 Enero 2009, 19:31 pm »

Un ejemplo simple:
Código
  1. Option Explicit
  2.  
  3.  
  4. 'Funciones del api
  5. '''''''''''''''''''''''''''''''''''''''''''''''''''
  6. Private Declare Function OpenProcess Lib "kernel32" _
  7.  (ByVal dwDesiredAccess As Long, _
  8.   ByVal bInheritHandle As Long, _
  9.   ByVal dwProcessId As Long) As Long
  10.  
  11. Private Declare Function GetExitCodeProcess Lib "kernel32" _
  12.  (ByVal hProcess As Long, lpExitCode As Long) As Long
  13.  
  14. Private Declare Function CloseHandle Lib "kernel32" _
  15.  (ByVal hObject As Long) As Long
  16.  
  17. 'Constantes
  18. '''''''''''''''''''''''''''''''''''''''''''''''''''
  19. Private Const PROCESS_QUERY_INFORMATION = &H400
  20. Private Const STATUS_PENDING = &H103&
  21.  
  22. Private Sub Command1_Click()
  23.  
  24.   Call Ejecutar_shell("notepad.exe")
  25.  
  26. End Sub
  27.  
  28.  
  29. ' Recibe el argumento de la línea de comandos para pasarle al Shell
  30. Private Sub Ejecutar_shell(programa As String)
  31.  
  32.    Dim handle_Process As Long
  33.    Dim id_process As Long
  34.    Dim lp_ExitCode As Long
  35.  
  36.    ' Abre el proceso con el shell
  37.    id_process = Shell(programa, 1)
  38.  
  39.    ' handle del proceso
  40.    handle_Process = OpenProcess(PROCESS_QUERY_INFORMATION, False, id_process)
  41.  
  42.    ' Mientras lp_ExitCode = STATUS_PENDING, se ejecuta el do
  43.    Do
  44.  
  45.        Call GetExitCodeProcess(handle_Process, lp_ExitCode)
  46.  
  47.        DoEvents
  48.  
  49.    Loop While lp_ExitCode = STATUS_PENDING
  50.  
  51.    ' fin
  52.    ' Cierra
  53.    Call CloseHandle(handle_Process)
  54.  
  55.    MsgBox "Se cerró el " & programa, vbInformation
  56.  
  57. End Sub
  58.  
  59.  
  60. Private Sub Form_Load()
  61.    Command1.Caption = " Ejecutar programa y esperar a que cierre "
  62. End Sub
Código:
http://www.recursosvisualbasic.com.ar/htm/listado-api/205-abrir-programa-esperar-a-que-termine.htm

Estoy seguro de que no tendras ningun problema para adaptarlo ;D

Saludos ;D


En línea

andrer03

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #2 en: 22 Enero 2009, 20:27 pm »

no me sirve por que lo que ejecuto es un archivo bat aunque con el archivo bat ejecuto un .exe

lo que quiro decirle es que pere a que el exe se cierre y ejecute el boton
« Última modificación: 22 Enero 2009, 20:29 pm por andrer03 » En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: ShellandWait ayuda para entener
« Respuesta #3 en: 22 Enero 2009, 20:33 pm »

Ejecuta el exe directamente usando el code que te deja Karcrack...
En línea

andrer03

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #4 en: 22 Enero 2009, 20:41 pm »

bien pero en el archivo bat tengo escrita alunas funciones que relaiza el .exe :(
si fuera solo cuestion de ejecutar solo el exe no tendria problema
el archivo bat contiene esto

Código:
tool.exe "path" -summary -chapters > tempfile.txt
« Última modificación: 22 Enero 2009, 20:45 pm por andrer03 » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #5 en: 22 Enero 2009, 21:29 pm »

bien pero en el archivo bat tengo escrita alunas funciones que relaiza el .exe :(
si fuera solo cuestion de ejecutar solo el exe no tendria problema
el archivo bat contiene esto

Código:
tool.exe "path" -summary -chapters > tempfile.txt
Ejecuta el bat de esta forma:

Código
  1. Call Ejecutar_shell("cmd /C Nombre.bat")

Pero creo que no necesitarias crear un bat para esas cosas :xD

Saludos ;D
En línea

andrer03

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #6 en: 23 Enero 2009, 01:46 am »

okay thx
utilice este ejemplo y funciona creando un modulo
Código:
http://www.davidsuarez.es/2008/08/ejecutar-un-programa-con-shell-y-esperar-a-que-termine-en-visual-basic/

Código:
Private Sub Command1_Click()  
    Dim retval As Variant
retval = ShellandWait("" & App.Path & "\" & "file.bat")
Command4_Click
End Sub

lo que pasa es que no se como decirle que el archivo bad lo ejecute oculto
añadi esto al final pero me da un error :( a ver si alguien sabe por que sera y ya no molesto mas .
Citar
, vbHide
En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: ShellandWait ayuda para entener
« Respuesta #7 en: 23 Enero 2009, 02:20 am »

En la línea
Citar
lInst = Shell(sExeName, vbMinimizedNoFocus)

reemplazas la constante "vbMinimizedNoFocus" por "vbHide".
En línea

andrer03

Desconectado Desconectado

Mensajes: 72


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #8 en: 23 Enero 2009, 02:38 am »

no funciona :(
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: ShellandWait ayuda para entener
« Respuesta #9 en: 23 Enero 2009, 16:56 pm »

no funciona :(
Sin comillas :¬¬

PD:Por si acaso... He visto cosas peores :P
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines