中易网

vc中在运行其它应用程序时如何获得exe文件路径

答案:1  悬赏:0  
解决时间 2021-03-07 18:33
vc中在运行其它应用程序时如何获得exe文件路径
最佳答案
#include <tlhelp32.h> // for CreateToolhelp32Snapshot
#include <psapi.h> 
#pragma comment(lib, "psapi") 



static
bool GetPathByProcessID(DWORD pid,TCHAR* FilePath) 

HANDLE hProcess = OpenProcess (PROCESS_ALL_ACCESS, FALSE, pid); 

if (!hProcess) 
{
// tracef("无权访问该进程"); 
return false;
}

DWORD ret= GetModuleFileNameEx(hProcess, NULL, FilePath, MAX_PATH) ;
// tracef(_T("GetModuleFileNameEx : %s ") ,  ret ? _T("successfully") : _T("failed") );
CloseHandle(hProcess); 
return ret!=0;


#include <vector>
using namespace std;

bool GetAllProcessPath(vector<string> & Paths)
{
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
if (hProcessSnap == INVALID_HANDLE_VALUE) 

trace("无法创建进程的快照"); 
return false; 


PROCESSENTRY32 pe32 = {0}; 
pe32.dwSize = sizeof(PROCESSENTRY32); 
if (!Process32First(hProcessSnap, &pe32)) 

trace("无法获得进程列表"); 
CloseHandle (hProcessSnap);    
return false; 


do 

TCHAR FilePath[MAX_PATH]; 
if ( GetPathByProcessID(pe32.th32ProcessID,FilePath) )
{
trace(FilePath);
Paths.push_back(FilePath);
}


} while (Process32Next(hProcessSnap, &pe32)); 

CloseHandle (hProcessSnap);

return true;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电脑显示器中间出现一条蓝色立线是屏坏了吗
老乡村菜馆在什么地方啊,我要过去处理事情
旅行社收的外币团款在税务上如何做账
农村夫妻双方离婚时,土地该怎么分?
为什么蒙古族有天葬的习俗??
屁味闻多了会不会死?我是一名女高中生 我同
会东金达电器商场我想知道这个在什么地方
macbook pro用bootcamp装完win10自动重启到wi
聘书结尾的此聘是什么意思
请问五菱宏光s1发动机质量成熟吗?是否和第二
教室门上的标语
揭秘:鹿晗看女生会先看哪个部位和选女友的标
甘的第二笔是什么
海尔全自动洗衣机XQB50-1工作一段时间后就停
经济全球化的好处(利)
推荐资讯
漂亮宝贝潮流童装地址有知道的么?有点事想过
我输入ping www.163.com-t显示request time o
嫁接的桂花树好不好载啊
pp丅母版标记怎么删除
这种女孩报考空乘面向能过关吗?
侠盗猎车手5会黑屏怎么回事
供给鸟类胚胎发育的营养来自鸟卵的(  )
长220宽50高20的铁重量是多少
成都卡服务
Be happy,Mary。改否定句
共享房车哪个平台实惠安全
有谁知道glfore公司的激光对中仪服务怎么样?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?