【022】【当前进程.c之中文版】
截图:35楼
【源代码】
#include <stdio.h>
#include <string.h>
#include<Windows.h>
#include<tlhelp32.h>
#define 整数型 int
#define 字符型 char
#define 布尔型 BOOL
#define 主函数() main()
#define 输入字符() getchar()
#define 返回值 return
#define 如果 if
#define while型循环 while
#define 进程结构体 PROCESSENTRY32
#define 进程句柄 HANDLE
#define 得到大小 sizeof
#define 打印 printf
#define 获取进程句柄 CreateToolhelp32Snapshot
#define 枚举进程1 Process32First
#define 枚举进程2 Process32Next
#define 关闭句柄 CloseHandle
#define 申请内存 malloc
#define 释放内存 free
#define Unicode转Ascii WideCharToMultiByte
#define 最大路径长度 MAX_PATH
#define 系统命令 system
//这些#define可以新建个头文件放进去……
整数型 主函数()
{
//定义变量
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
布尔型 是否;
字符型 *S_进程名;
进程结构体 结构32;
进程句柄 H_句柄;
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
系统命令("color 0A");
//使用PROCESSENTRY32前因该对其设置大小
结构32.dwSize=得到大小(结构32);
打印("\n\t\t\t\t【当前进程】\n\n");
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
H_句柄=获取进程句柄(TH32CS_SNAPPROCESS,0);
如果(H_句柄==INVALID_HANDLE_VALUE)
{
打印("\t进程获取失败\n");
返回值(1);
}
是否=枚举进程1(H_句柄,&结构32);
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
//继续,枚举进程
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
while型循环(是否)
{
是否=枚举进程2(H_句柄,&结构32);
S_进程名=(字符型 *)申请内存(得到大小(字符型)*最大路径长度);
Unicode转Ascii(0,0,结构32.szExeFile,最大路径长度,S_进程名,最大路径长度,0,0);
打印("\t进程名称:%s\t\t\t",S_进程名);
打印("PID:%u\n",结构32.th32ProcessID);
释放内存(S_进程名);
}
关闭句柄(H_句柄);
//-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-|-+-
输入字符();
返回值(1);
}
