kihlh / hmc-win32

HMC Easier Access to System APIs 简化连接winapi的过程的node c++模块

Home Page:https://kihlh.gitbook.io/hmc/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

v1.4.9,getProcessName2,getProcessFilePath2部分进程获取不到

xianyunleo opened this issue · comments

如:svchost.exe获取不到path
QQ.exe获取不到name

还有部分path是 \Device\HarddiskVolume4\ 开头

commented

Volume路径是已知问题 此问题已经修复 但是由于当前新版本改动过多 尚未确认安全性 所以并未发布
您可以通过此函数修复此问题

function formatVolumePath(path){
    if(path&&path?.match(/^\\/)){
        for (let Volume of hmc.getVolumeList()) {
            if(path.indexOf(Volume.device)==0){
                return path.replace(Volume.device,Volume.path+"\\").replace(/[\\/]+/,"\\");
            }
            if(path.indexOf(Volume.name)==0){
                return path.replace(Volume.name,Volume.path+"\\").replace(/[\\/]+/,"\\");
            }
        }
    }else return path;
}

这个问题 已经处理过了 目前是通过软件权限判断在对比系统程序特征匹配的 再强制获取会导致获取到的软件牛头不对马嘴,hmc始终不会考虑通过比内核 更高权限去获取

  • 是否已经拥有管理权限

如:svchost.exe获取不到path

此问题我无法复现 getProcessName2 是通过多个方法获取的 您可以检查下是否有以下问题

  1. 在1.5.0 之前存在异步空间并发冲突问题 请检查是否同时并发 详情问题见 #45
  2. 是否已经拥有管理权限
  3. 其他低权限软件是否能够获取到此进程信息

QQ.exe获取不到name

的确,使用for of代替Promise.all(list.map()) ,path和name都正常。
等1.5.0支持并发获取后,我再做测试。