例如ie和excel等

解决方案 »

  1.   

    这个你都不会?
    帮助-〉关于Internet Explorer
      

  2.   

    这个你都不会?
    帮助-〉关于Internet Explorer
      

  3.   

    楼上的真是高手。I服了U。如果是这样,我还用问吗。
    我的意思是一个程序取得另一个正在运行的程序的版本号。Do you know?
      

  4.   

    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
    下都可以找到,遍历它们找到你需要的软件吧。
      

  5.   

    是这样的。我在系统中安装了一个钩子,监视运行的程序。因为每个程序可能同时运行不同的版本,所以我在它运行的时候要取得它的版本号,以便于监控。
    能否从一个程序的句柄中得到它的版本号呢?
    期待中是否能通过程序的句柄得到它的绝对路径呢?如果可以得到的话,就可以利用approach所说的GetFileVersionInfo了。