A simple vista es esto lo que esta mal:
//DWORD pid GetWindowThreadProcessId(encontre,&pid); /* Estas son las las funciones que no logro.
Estas definiendo una especie de prototipo y llamada al mismo tiempo, lo cual es incorrecto.
HWND h = FindWindow(NULL, "hola");
if(h)
{
DWORD pid;
GetWindowThreadProcessId(h,&pid);
cout<<"PID: "<<pid<<endl;
HANDLE proc=OpenProcess(PROCESS_ALL_ACCESS,0,pid);
}
else
return 1;
Deberia funcionar. Para estos casos ten en cuenta revisar primero la msdn
GetWindowThreadProcessIdFindWindowOpenProcessEh leido mucho por ahi que no es bueno llamar al sistema, de paso si me explican "el porque" se los agradezco
.
a fines de este programa es entender un poco el funcionamiento de las funciones que a continuacion aparecen como comentario.
Porque utilizarla tiene una sobrecarga bastante grande. Suspender el programa, reservar la memoria para la llamada al sistema, buscar el comando, etc. Tanto C como C++ son lenguajes en los cuales se puede lograr un rendimiento muy importante, por lo tanto ese tipo de practicas no suelen ser recomendables.
Obviamente en mas de una oportunidad te basta con usar system, pero es preferible no hacerlo.
Y por cierto, main debe devolver un entero.
Saludos