C++获取当前所有进程的完整路径
实现代码
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
#include <string>
#include <tchar.h>
#include <Psapi.h>
#pragma comment (lib,"Psapi.lib")BOOL DosPathToNtPath(LPTSTR pszDosPath, LPTSTR pszNtPath)
{TCHAR szDriveStr[500];TCHAR szDrive[3];TCHAR szDevName[100];INT cchDevName;INT i;//检查参数if(!pszDosPath || !pszNtPath )return FALSE;//获取本地磁盘字符串if(GetLogicalDriveStrings(sizeof(szDriveStr), szDriveStr)){for(i = 0; szDriveStr[i]; i += 4){if(!lstrcmpi(&(szDriveStr[i]), _T("A:\\")) || !lstrcmpi(&(szDriveStr[i]), _T("B:\\")))continue;szDrive[0] = szDriveStr[i];szDrive[1] = szDriveStr[i + 1];szDrive[2] = '\0';if(!QueryDosDevice(szDrive, szDevName, 100))//查询 Dos 设备名return FALSE;cchDevName = lstrlen(szDevName);if(_tcsnicmp(pszDosPath, szDevName, cchDevName) == 0)//命中{lstrcpy(pszNtPath, szDrive);//复制驱动器lstrcat(pszNtPath, pszDosPath + cchDevName);//复制路径return TRUE;} }}lstrcpy(pszNtPath, pszDosPath);return FALSE;
}
//获取进程完整路径
BOOL GetProcessFullPath(DWORD dwPID, TCHAR pszFullPath[MAX_PATH])
{TCHAR szImagePath[MAX_PATH];HANDLE hProcess;if(!pszFullPath)return FALSE;pszFullPath[0] = '\0';hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, dwPID);if(!hProcess)return FALSE;if(!GetProcessImageFileName(hProcess, szImagePath, MAX_PATH)){CloseHandle(hProcess);return FALSE;}if(!DosPathToNtPath(szImagePath, pszFullPath)){CloseHandle(hProcess);return FALSE;}CloseHandle(hProcess);_tprintf(_T("%d,%s \r\n"),dwPID,pszFullPath);return TRUE;
}
int main(int argc, char* argv[])
{HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (INVALID_HANDLE_VALUE == hSnapshot){return NULL;}PROCESSENTRY32 pe ={0};pe.dwSize = sizeof(PROCESSENTRY32); BOOL fOk;for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){TCHAR szProcessName[MAX_PATH] = {0};GetProcessFullPath(pe.th32ProcessID, szProcessName);}return 0;
}
截图
参考
https://bbs.csdn.net/topics/390937481
转载于:https://www.cnblogs.com/17bdw/p/10355793.html
C++获取当前所有进程的完整路径相关推荐
- [Win32] 获取进程完整路径
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/d ...
- Bash脚本获取自身完整路径的可靠方法
本文翻译自:Reliable way for a Bash script to get the full path to itself [duplicate] This question alread ...
- VC下通过进程ID获取进程镜像文件路径的方法及其存在的缺陷
工作中经常会遇到通过进程ID获取进程镜像文件或者其他模块的路径的需求.(转载请指明出处)网上关于方案大致存在两种方案: OpenProcess->GetModuleFileName OpenPr ...
- 如何从文件的完整路径获取目录?
获取文件所在目录的最简单方法是什么? 我正在使用它来设置工作目录. string filename = @"C:\MyDirectory\MyFile.bat"; 在这个例子中,我 ...
- 如何获取文件的完整路径?
有没有一种简单的方法可以打印file.txt的完整路径? file.txt = /nfs/an/disks/jj/home/dir/file.txt <command> dir> & ...
- PHP获取URL完整路径及物理路径
2019独角兽企业重金招聘Python工程师标准>>> PHP的预定义变量$_SERVER是一个包含头部(headers),路径信息及脚本位置的数组,数组的实体由web服务器创建. ...
- VB根据窗口标题获取应用程序完整路径
新建工程,添加一个command按钮和一个textbox,然后将下面的代码copy到代码区,运行即可见到效果了 'Option Explicit Private Declare Function Fi ...
- 批处理查找html,批处理(bat)实现全盘搜索指定文件获取其完整路径方法大全,bat大全分享...
废话不多说,直接上代码,额,想用的话,自己保存成 [方案一]for /f + dir % [方案二]for /r(比 for /f + dir 效率高,但不会遍历隐藏文件) @echo off rem ...
- 如何获取当前文件目录的完整路径?
我想获取当前文件的目录路径. 我试过了: >>> os.path.abspath(__file__) 'C:\\python27\\test.py' 但是如何检索目录的路径? 例如: ...
最新文章
- 微信小程序setData()方法的使用
- linux学习作业-第七周
- 比较第一与第二个字符串,是否有连续的5个字符相同.sql
- There is 和 There are的使用_28
- python学习之旅(入门)
- 自动驾驶—全局定位的学习笔记
- qt——QFileDialog使用对话框选取本地文件
- CentOS 7下sshd防暴力破解及fail2ban的使用方法
- OFFICE技术讲座:标点压缩是各大OFFICE软件差异关键,总体考量有哪些
- MSM8937系统启动流程
- 对学习数据结构的建议
- android 自定义view 动画效果,Android自定义view实现阻尼效果的加载动画
- 大气的品牌化妆品官网模板
- Java 超全面试题
- 如何下载Direct3D9Ex
- 京东数科商用智能机器人首次亮相2019CES
- Netty学习(七):心跳检测机制
- “远程办公”用户达3.46亿,一年每人可节省1.4万
- 和讯网分行业和分省份社会责任指数(2010-2020年)
- 解决图片不显示的问题
热门文章
- mknod 创建内核设备文件【原创】
- 微信小程序生成小程序码,如何在开发版本调试?
- 软件测试基础课程学习笔记1--软件测试简介
- 计算机组成原理pc值,计算机组成原理试题
- cpp 条件判断 大于等于_07.合意就执行,不行就拉倒-if/else条件控制(一)
- php给一个参数布尔值,php – 布尔值和字符串条件
- java平台无关性_为什么Java能够实现平台无关性?
- ffmpeg 存流为hls文件
- pytorch load state dict_pytorch源码阅读(二)optimizer原理
- 【IDEA】IDEA 设置 字体 可以滚轮 改变大小