CODE:#define TH32CS_SNAPPROCESS 2
#define PROCESS_ALL_ACCESS 2097151
external(INT, "CreateToolhelp32Snapshot", "CreateToolhelp32Snapshot", "Kernel32.dll");
external(INT, "Process32First", "Process32First", "Kernel32.dll");
external(INT, "Process32Next", "Process32Next", "Kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "Kernel32.dll");
external(INT, "OpenProcess", "OpenProcess", "Kernel32.dll");
external(INT, "wsprintf", "wsprintfA", "User32.dll" );
int prc = openprocess_("MEmuHeadless.exe"); // открыть процесс с указанным именем
if(prc > 0)
{
// тут нужные действия
// findmemory и прочее
messagebox("Нужные действия");
CloseHandle(prc); // закрыть процесс
}
else messagebox("Процесс не найден или не открылся");
function openprocess_(string name_process)
{
char PROCESSENTRY32[296], hex[1024];
int PID = 0;
int hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapshot)
{
writeaddress(sizearray(PROCESSENTRY32), address(#PROCESSENTRY32[0]));
Process32First(hSnapshot, address(#PROCESSENTRY32[0]));
while(Process32Next(hSnapshot, address(#PROCESSENTRY32[0])))
{
if(format(#PROCESSENTRY32[36]) == name_process)
{
PID = codhexi(#PROCESSENTRY32[8], 4); // ID прцесса
wsprintf(address(#hex[0]), "%X", PID);
messagebox("Имя процесса: "+name_process+formatic(13)+formatic(10)+
"PID = "+format(PID)+formatic(13)+formatic(10)+"PID (hex) = "+format(#hex[0]));
break;
}
}
CloseHandle(hSnapshot);
if(PID)return OpenProcess(PROCESS_ALL_ACCESS, 1, PID); // открыть процесс и вернуть хендл
else return 0; // вернёт 0 если процесс не открылся
}
return -1; // вернёт -1 если процесс не найден
}