#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;