Autor
|
Tema: Pausar la ejecucion de un programa (Leído 11,007 veces)
|
EstoyBaneado
Desconectado
Mensajes: 165
Él es DIOS.
|
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
|
Algo tipo Olly o Softice? Lo veo dificil. Saludos, Ertai
|
|
|
En línea
|
Si la felicidad se comprara, entonces el dinero sería noble. 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
Mensajes: 1.477
|
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
Mensajes: 165
Él es DIOS.
|
¿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
Mensajes: 5.093
|
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: 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
Mensajes: 8
SALUDOS DEL UNDERWORLD!!
|
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
Mensajes: 5.093
|
en ese codigo pausa otro proceso por algun sitio?
|
|
|
En línea
|
|
|
|
Slasher-K
Desconectado
Mensajes: 1.477
|
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 :*
|
|
|
|
EstoyBaneado
Desconectado
Mensajes: 165
Él es DIOS.
|
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
|
|
|
|
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,580
|
14 Diciembre 2010, 03:13 am
por Elemental Code
|
|
|
Problema Pausar programa
Programación C/C++
|
R3tr0
|
7
|
5,637
|
27 Febrero 2011, 19:46 pm
por Ferno
|
|
|
punto de inicio de ejecucion de un programa
Programación C/C++
|
Abloos
|
5
|
3,404
|
16 Junio 2011, 12:25 pm
por Abloos
|
|
|
Freezear un programa (pausar) con CheatEngine
Ingeniería Inversa
|
manuelxavier
|
4
|
4,473
|
11 Agosto 2011, 02:15 am
por manuelxavier
|
|
|
[Solucionado] Pausar y reanudar programa.
Programación C/C++
|
erovira
|
7
|
7,345
|
13 Marzo 2014, 15:53 pm
por erovira
|
|