显示计算机上所有进程和进程的内存信息

                                                                                                                 显示进程信息

 

#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <windows.h>
#include <TlHelp32.h>
#include <Psapi.h>
void PrintMemoryInfo( DWORD processID );
int main() 
{
 PROCESSENTRY32 pe32;
 pe32.dwSize=sizeof(pe32);
 HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 if (hProcessSnap==INVALID_HANDLE_VALUE)
 {
  printf("CreateSnapShot Fail/n");
  return -1;
 }
 BOOL bMore=Process32First(hProcessSnap,&pe32);
 while (bMore)
 {
  printf("进程名称:%s/n",pe32.szExeFile);
  printf("进程ID: %u/n",pe32.th32ProcessID);
  printf("进程的父进程ID:%u/n",pe32.th32ParentProcessID);
  printf("进程的线程数:%u/n/n",pe32.cntThreads);
  bMore=Process32Next(hProcessSnap,&pe32);
 }
 DWORD dwProccessID;
 scanf("%u",&dwProccessID);
 PrintMemoryInfo(dwProccessID);
 return 0;
} 

//
//函数功能:打印进程的相关信息
//函数参数:processID, 进程号
//函数返回:无
//

void PrintMemoryInfo( DWORD processID )
{
 HANDLE hProcess;
 PROCESS_MEMORY_COUNTERS pmc;
 char charA=char(3);
 // Print the process identifier.

 printf( "/nProcess ID: %u/n", processID );

 // Print information about the memory usage of the process.

 hProcess = OpenProcess(  PROCESS_QUERY_INFORMATION |
  PROCESS_VM_READ,
  FALSE, processID );
 if (NULL == hProcess)
  return;

 if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) )
 {
  printf( "/tPageFaultCount: %d/n", pmc.PageFaultCount );
  printf( "/tPageFaultCount: 0x%08X/n", pmc.PageFaultCount );
  printf( "/tPeakWorkingSetSize: 0x%08X/n",
   pmc.PeakWorkingSetSize );
  printf( "/tWorkingSetSize: 0x%08X/n", pmc.WorkingSetSize );
  printf( "/tQuotaPeakPagedPoolUsage: 0x%08X/n",
   pmc.QuotaPeakPagedPoolUsage );
  printf( "/tQuotaPagedPoolUsage: 0x%08X/n",
   pmc.QuotaPagedPoolUsage );
  printf( "/tQuotaPeakNonPagedPoolUsage: 0x%08X/n",
   pmc.QuotaPeakNonPagedPoolUsage );
  printf( "/tQuotaNonPagedPoolUsage: 0x%08X/n",
   pmc.QuotaNonPagedPoolUsage );
  printf( "/tPagefileUsage: 0x%08X/n", pmc.PagefileUsage );
  printf( "/tPeakPagefileUsage: 0x%08X/n",
   pmc.PeakPagefileUsage );
 }

 CloseHandle( hProcess );
}


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值