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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Esperar al final de la ejecucion de otro programa.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Esperar al final de la ejecucion de otro programa.  (Leído 3,596 veces)
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Esperar al final de la ejecucion de otro programa.
« en: 13 Diciembre 2010, 21:51 pm »

HOLA :D

Estoy haciendo un downloader para probar la funcion de kInvoke de Karcrack y le queria agregar un minimelt.
Que no eliminaria el programa que estas ejecutando sino el que bajaste y ejecutaste.

Osea el downloader lo que hace es bajar un archivo, ejecutarlo y necesito que cuando termine lo elimine.

pero si lo quiero eliminar antes del final de la ejecucion explota todo.

asi que, como hago lo que en consola seria.

Start notepad.exe /wait

??????


En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Esperar al final de la ejecucion de otro programa.
« Respuesta #1 en: 14 Diciembre 2010, 00:09 am »

Pues si tienes el PID del proceso lo unico que has de hacer es abrirlo con OpenProcess() usando PROCESS_QUERY_INFORMATION y con el handle ir comprabando que GetExitCodeProcess() devuelva STILL_ACTIVE ;)
Seria algo como:
Código:
dim lPID as long
dim lRet as long

lPID = shell("notepad.exe")
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, false, lPID)
if hProc > 0 then
do
GetExitCodeProcess(hProc,lRet)
loop while (lRet = STILL_ALIVE)
msgbox "Has cerrado el bloc de notas"
end if

Creo que eso deberia ir, aunque aqui no tengo el IDE del VB y no puedo probarlo..


« Última modificación: 14 Diciembre 2010, 00:13 am por Karcrack » En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: Esperar al final de la ejecucion de otro programa.
« Respuesta #2 en: 14 Diciembre 2010, 03:13 am »

Ahora que ya me habias dado la puntita use gugel y salio algo al toq.

No es lo mas lindo del mundo pero funciona :D
Código
  1. ' Shell And Wait.
  2. ' Taken Fron VB-Helper.com
  3. '
  4. ' Edited to fit MY nedds :D
  5. ' Elemental Code ^.^
  6. Option Explicit
  7. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  8. Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  9. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  10.  
  11. Private Const SYNCHRONIZE = &H100000
  12. Private Const INFINITE = -1&
  13.  
  14. ' Start the indicated program and wait for it
  15. Private Sub ShellAndWait(ByVal program_name As String, ByVal window_style As VbAppWinStyle)
  16. Dim process_id As Long
  17. Dim process_handle As Long
  18.  
  19.    ' Start the program.
  20.    On Error GoTo ShellError
  21.    process_id = Shell(program_name, window_style)
  22.    On Error GoTo 0
  23.  
  24.    DoEvents
  25.  
  26.    ' Wait for the program to finish.
  27.    ' Get the process handle.
  28.    process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
  29.    If process_handle <> 0 Then
  30.        WaitForSingleObject process_handle, INFINITE
  31.        CloseHandle process_handle
  32.    End If
  33.  
  34.    'Closed Window
  35.    'Do whatever you want here :D
  36.    Exit Sub
  37.  
  38. ShellError:
  39.    MsgBox "Error starting task " & _
  40.        txtProgram.Text & vbCrLf & _
  41.        Err.Description, vbOKOnly Or vbExclamation, _
  42.        "Error"
  43. End Sub


EDiTO: he notado que la aplicacion mientras "espera" queda como que no responde.
a mi me sirve, si no les sirve... mala suerte :P
« Última modificación: 14 Diciembre 2010, 03:19 am por Elemental Code » En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pausar la ejecucion de un programa « 1 2 »
Programación Visual Basic
EstoyBaneado 14 11,124 Último mensaje 17 Junio 2005, 10:18 am
por Slasher-K
Evitar ejecucion de programa.
Programación Visual Basic
Gorky 7 5,790 Último mensaje 26 Mayo 2006, 00:19 am
por Krnl64
¿Llamar a la ejecucion de otro archivo? (Python)
Scripting
XD YO 4 17,470 Último mensaje 13 Febrero 2010, 02:37 am
por XD YO
Hacer esperar al programa.
Programación C/C++
cNoob 4 2,518 Último mensaje 28 Junio 2016, 00:50 am
por ianmorar03
[BATCH] Error al final de la ejecucion
Scripting
baldovi_6 2 2,202 Último mensaje 3 Noviembre 2018, 18:50 pm
por baldovi_6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines