win32 進程查找相關代碼

	#include <Windows.h>
<span style="white-space:pre">	</span>#include <tlhelp32.h>
<span style="white-space:pre">	</span>#include <process.h>

<span style="white-space:pre">	</span>HANDLE _processSnap = NULL;
	PROCESSENTRY32 _pe32 = { 0 };

	_processSnap = (HANDLE)CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	_pe32.dwSize = sizeof(PROCESSENTRY32);

	QMap<DWORD, QString> _pList;
	Process32First(_processSnap, &_pe32);
	do
	{
		_pList.insert(_pe32.th32ProcessID, QString::fromStdWString(_pe32.szExeFile));

	} while (Process32Next(_processSnap, &_pe32));
	CloseHandle(_processSnap);

	QMap<DWORD, QString>::const_iterator _scan = _pList.constBegin();
	QMap<DWORD, QString>::const_iterator _end = _pList.constEnd();
	while (_scan != _end)
	{
		if (_scan.value().indexOf("JX.exe", 0, Qt::CaseInsensitive) > -1)
		{
			int  _str = _getpid();
			if (_scan.key() != _getpid())
			{
				HANDLE _process = OpenProcess(PROCESS_ALL_ACCESS, false, _scan.key());
				if (!TerminateProcess(_process, 0))
				{
					QMessageBox::critical(0, "錯誤", "無法終止JX.exe,請從任務管理器手動終止");
					return false;
				}
			}
		}

		_scan++;
	}

	return true;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章