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;

猜你喜欢

转载自blog.csdn.net/stafniejay/article/details/51689317