如何获得一个正在运行程序的版本信息?

wpp 2003-08-26 05:19:29
例如ie和excel等
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wpp 2003-08-26
  • 打赏
  • 举报
回复
是这样的。我在系统中安装了一个钩子,监视运行的程序。因为每个程序可能同时运行不同的版本,所以我在它运行的时候要取得它的版本号,以便于监控。
能否从一个程序的句柄中得到它的版本号呢?
期待中。。。。。。

是否能通过程序的句柄得到它的绝对路径呢?如果可以得到的话,就可以利用approach所说的GetFileVersionInfo了。
喝醉的咖啡 2003-08-26
  • 打赏
  • 举报
回复
ie 和 excel 可以通过
InternetExplorer.Windows 和
Excel.Windows 这两个 Progid 获得一个 Windows 对象,其属性 count 可以返回已经运行的 ie/excel 的数目。
Windows.item(n)/Windows.item("name") 可以返回指定的window
然后可以通过 window.application 获得一个 application object,通过其 version 属性获得版本号。

但是我不明白,为何一定要“运行中”的程序的版本号?
可以用 InternetExplorer.Application 或 Word.Application Excel..Application PowerPoint.Application Visio.Application 等返回一个 application 实例,访问其 Version 属性一样达到效果...

微软的产品大部分可以通过上面的方式达到目的。其它软件就不知道他怎么做的了。

另外可以参考的方法还有读取注册表,比如 Adobe 判断版本可以尝试访问
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Acrobat\6.0\InstallPath
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Acrobat\5.0\InstallPath
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Acrobat\4.0\InstallPath
... 不同的软件当然不同咯。


还有,符合 Windows2000 的 MicroSoft Installer 规范的软件,安装后在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
下都可以找到,遍历它们找到你需要的软件吧。
approach 2003-08-26
  • 打赏
  • 举报
回复
GetFileVersionInfo
VCP4 2003-08-26
  • 打赏
  • 举报
回复
好像没有这个API的。
tonybaobao 2003-08-26
  • 打赏
  • 举报
回复
hehe强人阿~~~~~小周周
wpp 2003-08-26
  • 打赏
  • 举报
回复
楼上的真是高手。I服了U。如果是这样,我还用问吗。
我的意思是一个程序取得另一个正在运行的程序的版本号。Do you know?
zhouyong0371 2003-08-26
  • 打赏
  • 举报
回复
这个你都不会?
帮助-〉关于Internet Explorer
zhouyong0371 2003-08-26
  • 打赏
  • 举报
回复
这个你都不会?
帮助-〉关于Internet Explorer

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧