C++基于CreateToolhelp32Snapshot获取系统进程实例
本文实例讲述了C++基于CreateToolhelp32Snapshot获取系统进程的实现方法。分享给大家供大家参考。具体方法如下:
// GetWinProcess.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Windows.h>
#include <TlHelp32.h>
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == FALSE )
{
printf("CreateToolhelp32Snapshot error");
return -1;
}
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(PROCESSENTRY32);
BOOL bRet = Process32First(hProcessSnap, &pe32);
while (bRet)
{
printf("[process name]:%ws\n", pe32.szExeFile);
printf("[PID]:%d\n\n",pe32.th32ProcessID);
bRet = Process32Next(hProcessSnap, &pe32);
}
::CloseHandle(hProcessSnap); // 经常忘记这句
return 0;
}
希望本文所述对大家的C++程序设计有所帮助。
相关推荐
-
VC下通过系统快照实现进程管理的方法
本文实例讲述了VC下通过系统快照实现进程管理的方法,分享给大家供大家参考.具体实现方法如下: 一.引言 每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序.但是也有为数不少的在后台运行的程序是没有可视界面的,对于这类应用程序用户只能通过CTRL+ALT+DEL热键呼出"关闭程序"对话框显示出当前系统进程列表,从中可以结束指定的任务.显然,该功能在一些系统监控类软件中还是非常必需的,其处理过程大致可以分为两步:
-
VC使用TerminateProcess结束进程实例
本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: int KillProcess(LPCSTR pszClassName, LPCSTR pszWindowTitle) { HANDLE hProcessHandle; ULONG nProcessID; HWND TheWindow; TheWindow = ::FindWindow( NULL, pszWindowTitle )
-
C++进程间共享数据实例
本文实例讲述了C++进程间共享数据的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: int main(int argc, char *argv[]) { //RecursiveDelete("C:\\20_128\\"); //SelfRun("runModel"); //进程间内存共享 LPCTSTR lpName= "hello"; LPCTSTR lpConten
-
VC实现A进程窗口嵌入到B进程窗口中显示的方法
本文通过一个Demo示例讲述把A应用程序嵌入到B应用程序中显示的方法. 主要代码如下: //在B应用启动时创建A进程 CreateProcess(_T("A.exe"),NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,NULL,NULL); Sleep(30); HWND hWndChild = FindWindow(_T("AAA"),_T("AAA")); while(!hWndChild)
-
C++进程共享数据封装成类实例
本文实例讲述了C++进程共享数据封装成类的方法,分享给大家供大家参考.具体方法如下: ShareMemory.cpp源文件如下: 复制代码 代码如下: #include "ShareMemory.h" CShareMemory::CShareMemory(const char* pszMapName, int nFileSize, BOOL bServer):m_hFileMap(NULL),m_pBuffer(NULL) { if (bServer) //是服
-
VC++中进程与多进程管理的方法详解
本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. 关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈.堆分
-
C++通过TerminateProess结束进程实例
本文实例讲述了C++通过TerminateProess结束进程的方法,分享给大家供大家参考. 具体实现方法如下: BOOL TerminateProcessFromId(DWORD pid) { HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE,pid); if (hProcess == NULL) { printf("openprocess failed..."); return FALSE; } BOOL bRet
-
VC++获得当前进程运行目录的方法
本文实例讲述了VC++获得当前进程运行目录的方法,分享给大家供大家参考.具体实现方法如下: 该实例主要通过利用windows API获得,具体代码如下: 复制代码 代码如下: CString GetAppPath() { CString strAppPath; // 保存结果 TCHAR szModuleFileName[MAX_PATH]; // 全路径名 TCHAR drive[_MAX_DRIVE]; // 盘符名称,比如说C盘啊,D盘啊 TCHAR dir[_MAX_
-
c++获取进程信息列表和进程所调用的dll列表
复制代码 代码如下: // -----------------------// FileName: // ProcessInfo.h// remarks:// 基于应用层实现,有的进程,如杀软进程等获取不到调用的dll列表.// ----------------------- #pragma once#include <vector> struct ProInfo{ // 保存进程PID unsigned int uPID; // 保存进程名 CString strPr
-
VC判断进程是否具有administrator权限的方法
本文实例讲述了VC判断进程是否具有admin权限的方法.是的话返回TRUE,否则为FALSE.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: static BOOL IsAdmin(void) { HANDLE hAccessToken; BYTE InfoBuffer[1024]; PTOKEN_GROUPS ptgGroups;
-
判断指定的进程或程序是否存在方法小结(vc等)
一.判断指定程序名的进程是否存在 BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam // application-defined value); The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each
随机推荐
- AngularJS入门之动画
- js实现星星打分效果的方法
- 不用任何软件修改mac地址的图文方法
- linux之sort命令的用法
- Tomcat集群和Session复制应用介绍
- js中实现多态采用和继承类似的方法
- 判断是否安装flash player及当前版本的JS代码
- PHP获取页面执行时间的方法(推荐)
- Zend Framework教程之Bootstrap类用法概述
- C#使用xsd文件验证XML格式是否正确的实现方法
- 全面了解#pragma once与 #ifndef的区别
- Docker实践—CentOS7上部署Kubernetes详解
- JavaScript代码生成PDF文件的方法
- 实现JavaScript的组成----BOM和DOM详解
- Jquery选择器 $实现原理
- javascript实用方法总结
- 关于文本限制字数的js代码
- 完善CodeIgniter在IDE中代码提示功能的方法
- php实现转换html格式为文本格式的方法
- vue写一个组件
