69Artist
@69Artist

Как написать что бы процесс замораживался и размораживался?

Я написал такой вот код:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>

using namespace std;

bool KillProcByPid(DWORD pid) {  // Метод убийства процесса
	DWORD ExitCode;
	HANDLE hp;
	bool ret = true;

	if (pid)
	{
		hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);
		if (hp)
		{
			GetExitCodeProcess(hp, &ExitCode);
			ret = TerminateProcess(hp, ExitCode);
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}

	CloseHandle(hp);
	return ret;
}

int GetProcesByName(wstring name) { // Метод получения PID

	HANDLE snapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	PROCESSENTRY32 pInfo = { 0 }; pInfo.dwSize = sizeof(PROCESSENTRY32);

	while (Process32Next(snapShot, &pInfo))
	{
		if (pInfo.szExeFile == name)
		{
			CloseHandle(snapShot);
			return pInfo.th32ProcessID;
		}
	}
	CloseHandle(snapShot);
	return 0;
}


int main() {

	int pID = GetProcesByName(L"Name.exe"); //Название вашего процесса, по которому ищется PID
	cout << pID << "\n";  // Вписываем в консоль его PID
	KillProcByPid(pID);   // Убиваем процесс по PID
	return 0;
}

Эта программа по открытию, просто убивает процесс, я же хочу замораживать его и размораживать когда нужно.
Мне нужно понять как работают методы SuspendThread / ResumeThread на примере.
И вообще возможно ли зная PID морозить main thread? Если нужно получать handle пожалуйста подскажите как это делается.
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы