通过枚举获得控制台进程号,结束进程
来源:互联网 发布:中国人娶外国人知乎 编辑:程序博客网 时间:2024/06/05 09:26
我用EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )
得到所有运行当中的进程的ID
然后逐一检查ProcessName
如果ProcessName是我要找的"pig.exe"
则得到它的句柄hProcess
ID应该没有错
句柄是这样得到
HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include "psapi.h"
#pragma comment(lib, "psapi.lib")
BOOL CALLBACK EnumWindowsProc_1(HWND hwnd,LPARAM lparam) ;
DWORD PID;
int YES=0;
HWND hwndc;
LPTSTR String={0};
DWORD ProcessToPID(const char *InputProcessName)
{
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
HANDLE hProcess = NULL;
HMODULE hMod = NULL;
char szProcessName[MAX_PATH] = "UnknownProcess";
// 计算目前有多少进程, aProcesses[]用来存放有效的进程PIDs
if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
{
return 0;
}
cProcesses = cbNeeded / sizeof(DWORD);
// 按有效的PID遍历所有的进程
for ( i = 0; i < cProcesses; i++ )
{
// 打开特定PID的进程
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, aProcesses[i]);
// 取得特定PID的进程名
if ( hProcess )
{
if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod,
szProcessName, sizeof(szProcessName) );
//将取得的进程名与输入的进程名比较,如相同则返回进程PID
if(!stricmp(szProcessName, InputProcessName))
{
CloseHandle( hProcess );
return aProcesses[i];
}
}
}//end of if ( hProcess )
}//end of for
//没有找到相应的进程名,返回0
CloseHandle( hProcess );
return 0;
}
void main()
{
//const char DESTPROC[19]= "iexplore.exe";
HANDLE hRemoteProcess = NULL;
PID = ProcessToPID(DESTPROC);
printf("%x/n",PID);
::EnumWindows(EnumWindowsProc_1,0) ;
if (YES==1)
{
GetWindowTextA(hwndc,String,50);
printf("%s",String);
}
}
BOOL CALLBACK EnumWindowsProc_1(HWND hwnd,LPARAM lparam){
DWORD PPID;
GetWindowThreadProcessId(hwnd,&PPID);
if(PID == PPID)
{YES=1;
hwndc=hwnd;
}
return TRUE ;
}
- 通过枚举获得控制台进程号,结束进程
- delphi 枚举进程,结束进程
- 枚举进程和结束进程
- 通过PspTerminateThreadByPointer结束进程
- windows 枚举进程,并结束进程
- 通过EPROCESS枚举进程
- 枚举进程ID并且获得进程路径
- 通过进程ID或名字结束进程
- Linux下通过进程名获得进程号
- Linux下通过进程名获得进程号
- 通过进程链枚举进程_asm
- 通过进程链枚举进程_asm
- C++ 枚举进程信息,并结束指定进程
- 反-反通过枚举句柄枚举进程
- Window下通过命令行查看\结束进程
- 结束进程
- 结束进程
- 结束进程
- MFC简介及其重要项
- MFC的DLL
- 一份值得期待的菜谱
- 休假两个月
- MTD源代码分析(三)
- 通过枚举获得控制台进程号,结束进程
- 为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制
- innerHtml 与 innerText 区别(转)
- IE7 添加图片时浏览本地图片功能实现
- 捕获文本框的Enter事件
- 关于ACCESS模糊查询
- CS感想
- WshShell 对象详解
- 枚举进程,及其进程相关信息的资料整理