GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)
来源:互联网 发布:与sqlserver建立连接 编辑:程序博客网 时间:2024/04/30 06:13
问题:
32位程序在64位系统上调用GetModuleFileNameEx()遍历获取64位进程的全路径失败,得到的路径都为空。
根据官方的说法:
For the best results use the following table to convert paths.Windows 2000 = GetModuleFileNameEx()
Windows XP x32 = GetProcessImageFileName()
Windows XP x64 = GetProcessImageFileName()
Windows Server2003 = GetProcessImageFileName()
Windows Vista = QueryFullProcessImageName()
Windows 7 = QueryFullProcessImageName()
Note: If you are not aware the API GetProcessImageFileName() returns a kernel DOS device path. You can use the following API to map the device paths to a Win32 format.
但要注意的是GetModuleFileName在64bit下获取到的是不正确的,用32去填充64结果是空。
本人在32bit的win7下可以准确获取,64bit的win7下得不到自己要的东西。如下图所示:
推荐用vista新增的:QueryFullProcessImageName(),结果入下图:
另外搜遍了网络也没搜到该函数的样例,再懒也只好自己写了~~
DWORD size = MAX_PATH;
char sExeName[MAX_PATH] = {0};
QueryFullProcessImageName(hProcess, 0, sExeName, &size);
当然用GetProcessImageFileName获取更好,只是代码有点长,懒的写了。
0 0
- GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)
- GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)
- GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)
- win7 64-bit minifilter
- theano win7 64bit
- win7(64bit)下pyspider的安装
- 从零开始的 Win7 64Bit 编译Hadoop3
- 32bit程序调用64bit dll 的解决办法
- 64bit centos如何编译 32bit的程序
- 32-bit程序读取64bit 注册表
- 32bit与64bit程序移植
- phpnow in win7 64bit~~
- 64bit win7 oracle11gR2 installation
- Win7(64bit)搭建SVN
- win7 64bit redis安装
- win7 64bit数据源配置
- qwt win7 64bit配置
- Win7 语言包 32/64 bit
- [强烈推荐] thinkphp iis7.5 win2008 上 设置虚拟静态 错误的解决方法 web.config
- [九度OJ]最短路径
- Codeforces 543 A Writing Code 计数DP
- 错误:You need to use a Theme.AppCompat theme (or descendant) with this activity.
- 怎样拼读单词
- GetModuleFileNameEx遍历获取64bit程序路径失败的一种解决方法(Win7-64-bit)
- UE4发布android应用
- spring boot 学习笔记(008)mysql
- UITabBarController的使用
- jdk的安装
- Swift 容器类型总结
- Solr实时查询模型
- NOJ——1642简单的图论问题?(BFS+优先队列)
- 无法将 Ethernet0 连接到虚拟网络"VMnet0" 详细信息可以在 vmware.log