C++-有没有方法用非hash的方法来标识进程的唯一性?
我们现在是用hash的方式来标识进程的唯一性,
这会带来二个问题:
- 如果遇到进程很大,比如40M,那么计算hash的过程比较耗时
- 相同软件下的不同版本进程,可能不相同,但对于用户他们没有区别,这会导致随着版本的更新,我们的进程hash越来越多,有没有方法可以把同一软件的所有进程标识出来?(不考虑数字签名)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1.
使用 Runtime.getRuntime().exe("cmd /c tasklist"); (java,windows下)可以获取PID就可以区分唯一性,linux下为ps -ef|grep java
2.设置一个GUID,来区分
3.使用sigar.jar,但是需要依赖dll文件
其他的办法没想出来,希望大家补充
不用hash,可以使用如下的办法
使用软件的名称
使用程序的路径
使用安装程序的安装ID
但是以上方法都不能达到和hash一样的效果。要避免计算hash耗时的问题,可以先用上面的方法,区别不了后再计算hash。就是先比较名称,路径或者安装ID,相同的情况下再计算hash进行比较