如何枚举系统当前进程
2011-03-31 02:01
204 查看
首先, 调用 CreateToolhelp32Snapshot() 获得当前运行进程的快照,这个函数返回包含正在运行进程的快照句柄。其原形是:
其中:
dwFlags表示要包含在快照的内容为TH32CS_SNAPPROCESS表示在快照中包含进程列表;
th32ProcessID是进程号,为0表示当前进程。
返回值是一个句柄,如果没有进程正在运行,则返回INVALID_HANDLE_VALUE(可用GetLastError()获得),反之可用
获取返回的进程
如果Process32First返回TRUE,则第一个进程的信息已经在LPPROCESSENTRY32结构中,其余进程信息可用BOOL WINAPI Process32Next(HANDLE hSnapshot, LPPROCESSENTRY32 lppe)获得。LPPROCESSENTRY32结构的定义如下:
[/code]
最后不要忘了调用:
另用函数是:
[/code]
用它可打开一个进程,打开进程后,可用:
[/code]
来关闭进程。
笔者用上述函数做了一个类似任务管理器的进程管理器可以枚举所有进程、关闭进程
HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,DWORD th32ProcessID);
其中:
dwFlags表示要包含在快照的内容为TH32CS_SNAPPROCESS表示在快照中包含进程列表;
th32ProcessID是进程号,为0表示当前进程。
返回值是一个句柄,如果没有进程正在运行,则返回INVALID_HANDLE_VALUE(可用GetLastError()获得),反之可用
获取返回的进程
BOOL WINAPI Process32First(HANDLE hSnapshot, LPPROCESSENTRY32 lppe)
如果Process32First返回TRUE,则第一个进程的信息已经在LPPROCESSENTRY32结构中,其余进程信息可用BOOL WINAPI Process32Next(HANDLE hSnapshot, LPPROCESSENTRY32 lppe)获得。LPPROCESSENTRY32结构的定义如下:
typedef struct tagPROCESSENTRY32 { DWORD dwSize; //此结构的大小 DWORD cntUsage; //进程的引用数,如果为0,则次进程已停止 DWORD th32ProcessID; //进程号 ULONG_PTR th32DefaultHeapID; DWORD th32ModuleID; //此进程引用的模块ID DWORD cntThreads; //此进程创建的线程数 DWORD th32ParentProcessID; //父进程的ID LONG pcPriClassBase; //这个进程创建的线程的基本优先权 DWORD dwFlags; //保留 TCHAR szExeFile[MAX_PATH]; } PROCESSENTRY32; typedef PROCESSENTRY32 *PPROCESSENTRY32;
[/code]
最后不要忘了调用:
CloseHandle();
另用函数是:
HANDLE OpenProcess( DWORD dwDesiredAccess, // access flag BOOL bInheritHandle, // handle inheritance option DWORD dwProcessId // process identifier );
[/code]
用它可打开一个进程,打开进程后,可用:
BOOL TerminateProcess( HANDLE hProcess, // handle to the process UINT uExitCode // exit code for the process );
[/code]
来关闭进程。
笔者用上述函数做了一个类似任务管理器的进程管理器可以枚举所有进程、关闭进程
相关文章推荐
- 如何使用 WMI 枚举当前系统进程?
- 如何枚举系统中的进程
- 枚举当前系统进程的一种方法
- 枚举系统的当前进程
- 四种方法实现VC枚举系统当前进程
- 枚举当前系统进程--CreateToolhelp32Snapshot
- 枚举当前系统进程以及进程加载模块
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程[包含自己注释]
- 如何判断当前进程是在32位/64位系统上运行
- 枚举系统当前进程信息
- 四种方法实现VC枚举系统当前进程(转)
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程
- 四种方法实现VC枚举系统当前进程
- 枚举当前系统进程
- 四种方法实现VC枚举系统当前进程