내 컴퓨터에서 활성 프로세스를 검색하고 특정 하나를 검색하려고 시도하면 이 존재하면 죽일 것입니다. 실행의 특정 경로를 모른 채로 할 수 있습니까? 실행 프로세스 이름은 알고 있지만 전체 경로는 알지 못합니다. 짧은 그래서Qt를 사용하여 전체 경로를 모른 채 프로세스를 죽이지 마십시오
:
- 중인 모든 프로세스를 가져옵니다.
- 특정 프로세스를 종료하십시오.
고마워요!
내 컴퓨터에서 활성 프로세스를 검색하고 특정 하나를 검색하려고 시도하면 이 존재하면 죽일 것입니다. 실행의 특정 경로를 모른 채로 할 수 있습니까? 실행 프로세스 이름은 알고 있지만 전체 경로는 알지 못합니다. 짧은 그래서Qt를 사용하여 전체 경로를 모른 채 프로세스를 죽이지 마십시오
:
고마워요!
AFAIK 원하는대로 할 수있는 Qt 전용 방법이 없으므로 기본 플랫폼 API를 사용해야합니다. 어떤 플랫폼 (Widnows, Unix, MacOS)에 관심이 있습니까?
편집 : MSDN 프로세스 기능 참조 : http://msdn.microsoft.com/en-us/library/ms684847(v=VS.85).aspx, 특히 EnumProcesses, OpenProcess 및 TerminateProcess를 살펴보십시오. 내가이 API를 직접 사용하지 않았기 때문에 나는 코드 스 니펫을주지 않을 것이다. 이 말한 것처럼
, 당신은 창문 비교적 쉽게 사용 윈 API를 할 수있는 : Enumerating All Processes & & Terminating a Process
리눅스에 대한 당신이 QProcess를 사용하여 "추신 - A"와 같은 떨어지게을 실행 시도하고 표준 출력을 구문 분석 할 수를; 이 같은 떨어지게 :이 실행중인 프로세스의 목록을 반환해야
QProcess process;
process.setProcessChannelMode(QProcess::MergedChannels);
process.start("ps", QStringList() << "-A");
if (!process.waitForStarted())
return;
if (!process.waitForFinished())
return;
//qDebug() << process.readAll();
QByteArray output = process.readLine().trimmed();
while (!output.isEmpty())
{
qDebug() << output;
QList<QByteArray> items = output.split(' ');
qDebug() << "pid:" << items.first() << " cmd:" << items.last();
qDebug() << "===============================================";
output = process.readLine().trimmed();
}
, 당신은 당신이 필요로하는 데이터를 얻을 수 ps에 대해 서로 다른 명령 줄 옵션을 시도 할 수 있습니다. 나는 그 과정을 죽이는 것이 같은 방법으로 행해질 수 있다고 믿는다; kill [PID]
희망을 실행하여이 당신에게 진행 방법에 대한 아이디어를 줄 당신이 맥 OS에있는 경우
에 관하여 또는 BSD 당신은 sysctl API을 사용하는 모든 프로세스를 나열 할 수있다.
리눅스에서는 source code to ps에서 수행 된 작업을 살펴 보는 것이 가장 좋습니다. 이는 기본적으로 /proc
file system을 탐색하는 것입니다.
Windows atm – kaycee