c语言关闭程序进程,C语言写的屏蔽进程运行的程序

这个是帮别人写的。具体用途不详。

// 通过PSAPI函数枚举进程

#include "stdio.h"

#include "string.h"

#include "windows.h"

// 定义函数指针

typedef BOOL (__stdcall* funEnumPorcess)(DWORD *lpidProcess, // 进程ID

DWORD cb, // lpidProcess的大小

DWORD *cbNeeded); // 实际使用lpidProcess的字节数

typedef DWORD (__stdcall* funGetModuleFileNameEx)(HANDLE hProcess, // 待获得进程名称的进程句柄

HMODULE hModule, // 当前调用进程的句柄

LPTSTR lpFileName, // 记录返回的进程名称

DWORD nSize); // lpFileName大小

const DWORD MAXPROCESS = 500; // 假设当前系统最大有500个进程正在执行

int main (){

while(1){

killer();

};

} ;

int killer()

{

char FileName[] = "notepad.exe"; // 大小写任意

char NameBuff[MAX_PATH];

char *pFileName; // pFileName转化为大写后的字符串指针

char *pNameBuff; // NameBuff转化为大写后的字符串指针

BOOL bRes; // 返回结果

HINSTANCE hInstance; // 动态库句柄

HANDLE hHandle; // 进程句柄

int i, j; // 循环变量

int len;

funEnumPorcess EnumProcesses;

funGetModuleFileNameEx GetModuleFileNameEx;

DWORD *buffer, maxNum, factNum;

maxNum = MAXPROCESS;

factNum = MAXPROCESS;

buffer = (DWORD *)malloc(maxNum);

hInstance = LoadLibrary("psapi.dll"); // 装载psapi.dll

if (hInstance)

{

EnumProcesses = (funEnumPorcess)GetProcAddress(hInstance, "EnumProcesses");

if (EnumProcesses)

{

bRes = EnumProcesses(buffer, maxNum, &factNum); // 枚举进程,得到进程名称和实际进程总大小

if (bRes)

{

factNum /= sizeof(DWORD); // 计算实际进程个数

GetModuleFileNameEx = (funGetModuleFileNameEx)GetProcAddress(hInstance, "GetModuleFileNameExA");

if (GetModuleFileNameEx)

{

for (i=0; i

{

hHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, buffer[i]); // 获取进程句柄

if (hHandle)

{

bRes = GetModuleFileNameEx(hHandle, NULL, NameBuff, MAX_PATH); // 获取进程名称

if (bRes)

{

pFileName = strupr(FileName); // 字符串转化为大写

pNameBuff = strupr(NameBuff);

if (strstr(pNameBuff, pFileName) != NULL) // 名字查找

{

if (TerminateProcess(hHandle, 0));

{

printf("关闭 %s 成功\n", NameBuff);

break;

}

}

}

// 关闭句柄

CloseHandle(hHandle);

}

}

}

}

}

// 释放动态库

FreeLibrary(hInstance);

}

free(buffer);

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值