// jinchen.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN// 从 Windows 头中排除极少使用的资料
#include<windows.h>
#include<tlhelp32.h>
#include<stdlib.h>
#define num 1
LPSTR lpsz[num]={"cmd.exe"};
DWORD WINAPI StopProcess(LPVOID lpParam){
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
int k(num);
HANDLE hProcess;
if(k==0)
return 0;
Process32First(hSnapshot,&pe);
do{
for(int i=0;i!=num;i++)
if(lstrcmpi(pe.szExeFile,lpsz[i])==0){
k--;
hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,pe.th32ProcessID);
if(hProcess){
TerminateProcess(hProcess,0);
CloseHandle(hProcess);//OpenProcess打开的也要关闭
}
}
}while(Process32Next(hSnapshot,&pe)&&k);
CloseHandle(hSnapshot);
return 0;
}
//
BOOL KillProcessById(DWORD pID)
{
HANDLE Hwnd;
bool ret = FALSE;
Hwnd = OpenProcess(PROCESS_TERMINATE | SYNCHRONIZE,0,pID);
if (Hwnd)
{
if (TerminateProcess(Hwnd, 0))
{
ret = true;
}
}
return ret;
}
//
int main(int argc,char* argv[])
{
int pid;
PROCESSENTRY32 pe32;
//再使用这个结构体前先定义它的大小
pe32.dwSize=sizeof(pe32);
//给系统内的所有进程拍一个快照
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("Create ToolHelp32Snaphhot调用失败!\n");
return -1;
}
BOOL bMore=::Process32First(hProcessSnap,&pe32);
//
FILE *stream;
stream=fopen("text1.txt","w+");
while(bMore)
{
printf("进程名称:|%s ",pe32.szExeFile);
printf("进程ID号:|%u\nn",pe32.th32ProcessID);
bMore=::Process32Next(hProcessSnap,&pe32);
//pe32.szExeFile
if (!strcmp(pe32.szExeFile,"QQ.exe"))
pid =pe32.th32ProcessID;
fprintf(stream,"%s\n",pe32.szExeFile);
}
fclose(stream);
printf("不要忘记清楚掉snapshot");
::CloseHandle(hProcessSnap);
getchar();
KillProcessById(pid);
return 0;
}
//
#include "stdafx.h"
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN// 从 Windows 头中排除极少使用的资料
#include<windows.h>
#include<tlhelp32.h>
#include<stdlib.h>
#define num 1
LPSTR lpsz[num]={"cmd.exe"};
DWORD WINAPI StopProcess(LPVOID lpParam){
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
int k(num);
HANDLE hProcess;
if(k==0)
return 0;
Process32First(hSnapshot,&pe);
do{
for(int i=0;i!=num;i++)
if(lstrcmpi(pe.szExeFile,lpsz[i])==0){
k--;
hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,pe.th32ProcessID);
if(hProcess){
TerminateProcess(hProcess,0);
CloseHandle(hProcess);//OpenProcess打开的也要关闭
}
}
}while(Process32Next(hSnapshot,&pe)&&k);
CloseHandle(hSnapshot);
return 0;
}
//
BOOL KillProcessById(DWORD pID)
{
HANDLE Hwnd;
bool ret = FALSE;
Hwnd = OpenProcess(PROCESS_TERMINATE | SYNCHRONIZE,0,pID);
if (Hwnd)
{
if (TerminateProcess(Hwnd, 0))
{
ret = true;
}
}
return ret;
}
//
int main(int argc,char* argv[])
{
int pid;
PROCESSENTRY32 pe32;
//再使用这个结构体前先定义它的大小
pe32.dwSize=sizeof(pe32);
//给系统内的所有进程拍一个快照
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("Create ToolHelp32Snaphhot调用失败!\n");
return -1;
}
BOOL bMore=::Process32First(hProcessSnap,&pe32);
//
FILE *stream;
stream=fopen("text1.txt","w+");
while(bMore)
{
printf("进程名称:|%s ",pe32.szExeFile);
printf("进程ID号:|%u\nn",pe32.th32ProcessID);
bMore=::Process32Next(hProcessSnap,&pe32);
//pe32.szExeFile
if (!strcmp(pe32.szExeFile,"QQ.exe"))
pid =pe32.th32ProcessID;
fprintf(stream,"%s\n",pe32.szExeFile);
}
fclose(stream);
printf("不要忘记清楚掉snapshot");
::CloseHandle(hProcessSnap);
getchar();
KillProcessById(pid);
return 0;
}