⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 遍历系统进程
💻 CPP
字号:
// EnumProcess.cpp : Defines the entry point for the console application.
// Code By : tabris17 

#include "stdafx.h"
#include "Psapi.h"
#include <stdlib.h>
#include <string>

#pragma comment (lib,"Psapi.lib")

char name[8];
int timer=0;
int step;
HANDLE hProcess1,hProcess2,hProcess3,hProcess4;
BOOL ontimer()
{
	
	while(1)
	{
		step++;
		if (step>1000)
			return 1;
		Sleep(2006);
		if (hProcess1)
		{
			printf("1");
			SetProcessWorkingSetSize(hProcess1,0xFFFFFF,0xFFFFFF);
		}
		if (hProcess2)
		{
			printf("2");
			SetProcessWorkingSetSize(hProcess2,0xFFFFFF,0xFFFFFF);
		}
		if (hProcess3)
		{
			printf("3");
			SetProcessWorkingSetSize(hProcess3,0xFFFFFF,0xFFFFFF);
		}
		if (hProcess4)
		{
			printf("4");
			SetProcessWorkingSetSize(hProcess4,0xFFFFFF,0xFFFFFF);
		}
	}
	return 1;
}
void PrintFileName(DWORD processID)
{
	char fn[MAX_PATH];
	HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,processID);
	if (hProcess)
	{
		HMODULE hMod[1024];
		DWORD cbNeeded,size;
		unsigned int i;
		if (EnumProcessModules(hProcess,hMod,sizeof(hMod),&cbNeeded))
		{
			size=cbNeeded/sizeof(HMODULE);
			GetModuleFileNameEx(hProcess,hMod[0],fn,sizeof(fn));
			printf("\n(%u)\t%s\n",processID,fn);
		    strcat(name,&fn[strlen(fn)-6]);
			//printf("%s\n",name);
			if (name[1]=='Q'&&name[0]=='Q')
			{
				::PostMessage((HWND)hProcess1,WM_QUIT,NULL,NULL);
				if (timer==0)
					hProcess1=hProcess;
				else if (timer==1)
					hProcess2=hProcess;
				else if (timer==2)
					hProcess3=hProcess;
				else
					hProcess4=hProcess;
				timer++;
				SetProcessWorkingSetSize(hProcess,-1,-1);
				printf("%s\n",name);
			}
			strcpy(name,"");
			for(i=1;i<size;i++)
			{
				GetModuleFileNameEx(hProcess,hMod[i],fn,sizeof(fn));
				//printf("\t%s\n",fn);
			}
		}
	}
	CloseHandle(hProcess);
}

int plist()
{
	DWORD Processesid[1024], cbNeeded,size;
	unsigned int i;
	if (!EnumProcesses(Processesid,sizeof(Processesid),&cbNeeded))
		return 0;
	
	size=cbNeeded/sizeof(DWORD);
	
	for (i=0;i<size;i++)
		PrintFileName(Processesid[i]);
	return 0;
}

int main(int argc, char* argv[])
{
	plist();
//	::SendMessage((HWND)hProcess1,WM_QUIT,NULL,NULL);
	ontimer();
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -