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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pausar la ejecucion de un programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pausar la ejecucion de un programa  (Leído 10,287 veces)
EstoyBaneado

Desconectado Desconectado

Mensajes: 165


Él es DIOS.


Ver Perfil WWW
Pausar la ejecucion de un programa
« en: 4 Junio 2005, 20:15 pm »

Me gustaria muchuchusisimo saber si se puede "pausar" o detener temporalmente la ejecucion de un programa y cual es la Api q lo hace. Para q no se malentienda, quiero pausar desde mi programa en vb, otro programa externo.

gracias de antemano.


En línea

Fui baneado por decir lo que pienso...
No importa, rezare por uds... y eso que soy ateo xD
Ertai
Colaborador
***
Desconectado Desconectado

Mensajes: 2.025


Ralph Wiggum


Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #1 en: 5 Junio 2005, 00:28 am »

Algo tipo Olly o Softice?  :o :o

Lo veo dificil.

Saludos,
Ertai


En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #2 en: 5 Junio 2005, 00:48 am »

No se pueden pausar aplicaciones sino threads. Para pausar una aplicación tenés que pausar su thread primario.

Para detener la ejecución de un subproceso (thread) se utiliza la función SuspendThread. Para volver a reanudar la ejecución se utiliza ResumeThread. Se puede llamar a la función SuspendThread las veces que se deseen pero luego hay que llamar a ResumeThread la misma cantidad de veces para que el subproceso continúe ejecutandose.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
EstoyBaneado

Desconectado Desconectado

Mensajes: 165


Él es DIOS.


Ver Perfil WWW
Re: Pausar la ejecucion de un programa
« Respuesta #3 en: 6 Junio 2005, 03:35 am »

¿como puedo saber el handle del thread primario? porque segun vi, a la funcion suspendthread hay que pasarle como parametro el handle, pero yo solamente sé el ID del thread, y no me funca.
Sé que una manera seria abriendo el ID con la funcion OpenThread, pero esa funcion solo existe en WinXP.

¿Alguna Idea?

thx.
En línea

Fui baneado por decir lo que pienso...
No importa, rezare por uds... y eso que soy ateo xD
byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #4 en: 6 Junio 2005, 04:06 am »

depura el proceso desde tu programa (debugactiveprocess), cuando DebugEventCode sea = a CREATE_PROCESS_DEBUG_EVENT tiras de CREATE_PROCESS_DEBUG_INFO que consta de estos datos:

Código:
typedef struct _CREATE_PROCESS_DEBUG_INFO { // cpdi 
    HANDLE hFile;
    HANDLE hProcess;
    HANDLE hThread; <--------------- aqui lo que buscas
    LPVOID lpBaseOfImage;
    DWORD dwDebugInfoFileOffset;
    DWORD nDebugInfoSize;
    LPVOID lpThreadLocalBase;
    LPTHREAD_START_ROUTINE lpStartAddress;
    LPVOID lpImageName;
    WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO;
En línea

Crashoverwrite

Desconectado Desconectado

Mensajes: 8


SALUDOS DEL UNDERWORLD!!


Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #5 en: 13 Junio 2005, 14:00 pm »

Código:
Declare Function MsgWaitForMultipleObjects Lib "user32" _
(ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, _
ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, _
ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Sub Main()

    Static t As Boolean
    If t <> True Then _
    SetTimer hwnd, 0, 1, AddressOf TimerProc: t = True
   
    SafeSleep (3600)
   
End Sub

Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
   
    ' EJECUCION EN SEGUNDO PLANO
   
   
    '///////////////////////////////////////////////////////
        ' [ CODE code ]:::::::::::::>>
    '///////////////////////////////////////////////////////
   
End Sub

Sub SafeSleep(ByVal inWaitSeconds As Single) 'PAUSA Y NO CARGA LA CPU!!!

Const WAIT_OBJECT_0 As Long = 0
Const WAIT_TIMEOUT As Long = &H102

Dim lastTick As Single
Dim timeout As Long
timeout = inWaitSeconds * 1000
lastTick = Timer

Do
Select Case MsgWaitForMultipleObjects(0, 0, False, timeout, 255)
Case WAIT_OBJECT_0
DoEvents
timeout = ((inWaitSeconds) - (Timer - lastTick)) * 1000
If timeout < 0 Then timeout = 0

Case Else
Exit Do

End Select

Loop While True

Main ' VUELVE AL PROCEDIMIENTO PRINCIPAL
   
End Sub
« Última modificación: 13 Junio 2005, 19:15 pm por Dunklerstern » En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #6 en: 13 Junio 2005, 22:39 pm »

en ese codigo pausa otro proceso por algun sitio?
En línea

Slasher-K


Desconectado Desconectado

Mensajes: 1.477


Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #7 en: 14 Junio 2005, 00:35 am »

Código:
Main ' VUELVE AL PROCEDIMIENTO PRINCIPAL

Esa linea va a provocar un desbordamiento de pila.

Saludos.
En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
kasiko

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Pausar la ejecucion de un programa
« Respuesta #8 en: 14 Junio 2005, 00:52 am »

ummmmm  muy interesante el hilo  :o
En línea

Nos vemos...

EstoyBaneado

Desconectado Desconectado

Mensajes: 165


Él es DIOS.


Ver Perfil WWW
Re: Pausar la ejecucion de un programa
« Respuesta #9 en: 14 Junio 2005, 01:12 am »

1) El code no anda.
2) Que se supone que hace? Un Sleep a mi propio proceso?
3) Crashoverwrite, eso es lo q hace el code, crashea. jaja.

salu!
En línea

Fui baneado por decir lo que pienso...
No importa, rezare por uds... y eso que soy ateo xD
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Esperar al final de la ejecucion de otro programa.
Programación Visual Basic
Elemental Code 2 3,384 Último mensaje 14 Diciembre 2010, 03:13 am
por Elemental Code
Problema Pausar programa
Programación C/C++
R3tr0 7 5,329 Último mensaje 27 Febrero 2011, 19:46 pm
por Ferno
punto de inicio de ejecucion de un programa
Programación C/C++
Abloos 5 3,042 Último mensaje 16 Junio 2011, 12:25 pm
por Abloos
Freezear un programa (pausar) con CheatEngine
Ingeniería Inversa
manuelxavier 4 4,202 Último mensaje 11 Agosto 2011, 02:15 am
por manuelxavier
[Solucionado] Pausar y reanudar programa.
Programación C/C++
erovira 7 6,903 Último mensaje 13 Marzo 2014, 15:53 pm
por erovira
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines