안녕하세요.이 코드를 확인해주세요. 내 응용 프로그램 "piko.exe"를 실행 한 후 프로세스를 실행하고 "non.exe", "firefox.exe", "lol.exe"와 같은 프로그램이 실행되는 경우 if 실행 내 응용 프로그램을 종료하고 오류를 반환합니다.매 30 초마다 C++로 체크 처리
하지만이 체크 프로세스를 30 초마다하고 있지만 내 주 프로그램 (이 코드는 내 프로젝트의 한 부분입니다)이 필요합니다. 가능한 경우 pls 누군가가 내 코드를 편집하여 감사드립니다.
#include "StdInc.h"
#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
#include <stdio.h>
void find_Proc(){
HANDLE proc_Snap;
HANDLE proc_pik;
HANDLE proc_pikterm;
PROCESSENTRY32 pe32;
PROCESSENTRY32 pe32pik;
int i;
char* chos[3] = {"non.exe","firefox.exe","lol.exe"};
char* piko = "piko.exe";
proc_pik = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
proc_Snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize = sizeof(PROCESSENTRY32);
pe32pik.dwSize = sizeof(PROCESSENTRY32);
for(i = 0; i < 3 ; i++){
Process32First(proc_Snap , &pe32);
do{
if(!strcmp(chos[i],pe32.szExeFile)){
MessageBox(NULL,"CHEAT DETECTED","ERROR",NULL);
Process32First(proc_pik,&pe32pik);
do{
if(!strcmp(iw4m,pe32pik.szExeFile)){
proc_pikterm = OpenProcess(PROCESS_ALL_ACCESS, TRUE, pe32pik.th32ProcessID);
if(proc_pikterm != NULL)
TerminateProcess(proc_pikterm, 0);
CloseHandle(proc_pikterm);
}
} while(Process32Next(proc_pik, &pe32pik));
}
} while(Process32Next(proc_Snap, &pe32));
}
CloseHandle(proc_Snap);
CloseHandle(proc_pik);
}
둘째, 루프의 순서를 교환해야합니다. 또한 프로세스를 찾기 위해 두 번째 스냅 샷이 필요하지 않습니다. 사용자가 "Cheat Detected"메시지에서 "OK"를 클릭하지 않으면 프로그램은 절대로 TerminateProcess를 호출하지 않습니다. –