我想用进程名来结束指定的进程 但是总是失败 代码如下
#include <WINDOWS.H>
#include <TLHELP32.H> //声明快照函数的头文件
#include <STDIO.H>
int main(int argc, char *argv[])
{
PROCESSENTRY32 pe32;
//设置结构体的大小
pe32.dwSize = sizeof(pe32);
//系统快照
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot Faild! \n");
return -1;
}
BOOL bMore = ::Process32First(hProcessSnap,&pe32);
while (bMore)
{
printf("Process Name:%s\n",pe32.szExeFile);
printf("Process ID:%u\n\n",pe32.th32ProcessID);
//bMore = ::Process32Next(hProcessSnap,&pe32);
char ProcessName[] = "notepad.exe";
if (pe32.szExeFile == ProcessName)
{
HANDLE hKillProcess = ::OpenProcess(PROCESS_ALL_ACCESS,true,pe32.th32ProcessID);
if (hKillProcess != NULL)
{
printf("Close Handle!\n");
::TerminateProcess(hKillProcess,0);
CloseHandle(hKillProcess);
}
}
bMore = ::Process32Next(hProcessSnap,&pe32);
}
CloseHandle(hProcessSnap);
return 0;
}
因为先前不知道指定进程的ID,只能通过进程名,但是总是不能实现
如果把代码改成用ID来结束是没有问题的 希望大神们看看这程序有什么问题
[课程]Android-CTF解题方法汇总!