Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - while

#1
Aham, la idea era crear una extensa base de datos de programas maliciosos, y ver su titulo para saber si esta en ejecución.
Pero hacerlo de otra forma, sería demasiado hacerlo con cada programa distinto no?
Tengo recopilados unos 70 aprox.
#2
muchas gracias, me servió el primero.

una cosa mas, creéis que podria darme problemas tener un thread
while(true){
... comprobación findwindow ...
}
para verificar en todo momento si se ejecuta X aplicación?
podria lagear al proceso original? es muy pesado el findwindow?
(es para que no se ejecuten programas como cheat engine, etc)
#3
Hola, el objetivo es encontrar una serie de ventanas que guardo en un array:

string MDB[]={
"Firefox",
"Paint",
"Otro"
};

luego pretendo ver si hay alguna abierta mediante un bucle:
for(int i=0; i<=2; i++){
if(FindWindow(NULL,TEXT(MDB)))
...

pero el segundo parametro de FindWindow es const CHAR *, pero tampoco puedo hacer
FindWindow(NULL,TEXT((const CHAR*)MDB)

Alguna solución?
Gracias
#4
He probado la última opción y tengo algunos problemas al concatenar y pasar por el thread:

FuncionLlamarThread("asdfA","asdfB");


...


void FuncionLlamarThread(char *a1, char *a2)
{
char finaldefinido[50];
sprintf(finaldefinido, "%s-%s", a1, a2);

char *final = finaldefinido;
MessageBox(0, final, "Title",MB_OK); // Funciona, por lo que aparentemente se han concatenado.

CreateThread( 0, 0, &mithread, final, 0, 0 );   
}

Pero luego el mithread, el messagebox aparece en blanco al hacer:
char *nombre = (char*)pVoid;
MessageBox(0, nombre, "Title",MB_OK);
#5
y podria pasar algo asi como:
char *array_parametros[] = {
"asdf1",
"asdf2"
};
?

Si no, supongo que podria hacer una función intermedia que cree el thread
CrearThread("asdf1","asdf2");

y luego en CrearThread()
Concatenar asdf1 y asdf2 separados por un caracter como
asdf1§asdf2 y pasarlos por el create thread como un unico parametro, y luego que el thread los separe y los meta en su correspondiente variable.
Que te parece esto último?

Saludos, y gracias de nuevo
#6
Si lo compilo en una aplicación de consola me funciona, pero luego en la dll, mira que me devuelve:
#7
Hola, buena idea para pasarlos, pero debe haber algo mal, y no veo que es:
PParams params = (PParams)pVoid;
MessageBox(0,params->arga,"Title",MB_OK);
MessageBox(0,params->argb,"Title",MB_OK);

estos devuelven simbolos raros, y no el texto que les he pasado.

Gracias de nuevo
#8
ah claro, no había caido.

Muchas gracias eternal idol.


Una pregunta mas, puedo pasar otro argumento mas por el CreateThread?

algo asi como:
unsigned long __stdcall mithread( void* pVoid, void* pVoid2)

CreateThread( 0, 0, &mithread, "asdf1", "asdf2", 0 );


Gracias de nuevo.
#9
Así es como venía usandolos:

unsigned long __stdcall mithread( void* pVoid )
{
...
}

CreateThread( 0, 0, &mithread, 0, 0, 0 );

El caso es que ahora necesito pasarle un argumento, algo así como:

unsigned long __stdcall mithread( void* pVoid, char* nombre )
{
...
}

CreateThread( 0, 0, &mithread, "asdf", 0, 0 );

Pero esta no es la forma correcta.
Alguien puede decirme como es?

Gracias!
#10
Pues se de ella que es la aplicación padre. xD

Saludos, y gracias por tus respuestas^^