Qt 모든 프로세스 가져오기, 프로세스 종료
Qt 모든 프로세스 가져오기, 프로세스 종료
코드에서 Qt 라이브러리를 사용하는 곳, Qt 라이브러리를 사용하지 않는 것은 자신의 상응하는 함수로 바꿀 수 있다
방법1:
//Qt , QProcess “tasklist.exe”,
QProcess process;
process.start("tasklist.exe");
if(process.waitForFinished())
{
QByteArray result = process.readAll();
}
방법2:
// Psapi.h
// microsoft sdk, https://www.microsoft.com/en-us/download/details.aspx?id=8279
#include
unsigned long aProcesses[1024], cbNeeded, cProcesses;
// ID
if( !EnumProcesses(aProcesses,sizeof(aProcesses),&cbNeeded) )
{
qDebug()<<"text01"; //Qt ,
}
QStringList lprocess; //Qt ,
//
cProcesses = cbNeeded / sizeof(unsigned long);
for(unsigned int i = 0; i < cProcesses; i++)
{
if(aProcesses[i] == 0)
{
continue;
}
//
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, aProcesses[i]);
wchar_t buffer[50];
GetModuleBaseName(hProcess, 0, buffer, 50); //
CloseHandle(hProcess);
lprocess << QString::fromWCharArray(buffer); //Qt
}
qDebug()<//Qt
프로세스를 종료하려면 다음과 같이 하십시오.
int KillProcess(LPCSTR processName)
{
PROCESSENTRY32 pe;
DWORD id=0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if(!Process32First(hSnapshot,&pe))
{
return 0;
}
while(1)
{
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32Next(hSnapshot,&pe)==FALSE)
{
break;
}
//find processName
if(wcsicmp(pe.szExeFile, processName)==0)
{
id = pe.th32ProcessID;
break;
}
}
CloseHandle(hSnapshot);
//if(id == 0)
// return ;
//Kill The Process
HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, id );
if (hProcess != NULL)
{
TerminateProcess(hProcess,0);
CloseHandle(hProcess);
}
return 1;
}
전재 대상:https://www.cnblogs.com/jiushishuai/p/9452096.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.