Board logo

标题: [问题求助] VBS如何取得文件的产品版本情报? [打印本页]

作者: jfjl1982    时间: 2011-5-4 14:19     标题: VBS如何取得文件的产品版本情报?

一个dll或者exe文件,有文件版本和产品版本两种情报,
文件版本情报我会取得,产品版本应该怎么取呢?有高手指教下.
作者: lxzzr    时间: 2011-5-4 19:10

本帖最后由 lxzzr 于 2011-5-4 19:51 编辑
  1. '获取C:\MyFolder中每个文件的文件版本和产品版本
  2. Set objShell = CreateObject ("Shell.Application")
  3. Set objFolder = objShell.Namespace ("C:\MyFolder")
  4. Dim arrHeaders(300)
  5. For i = 0 to 300
  6.         arrHeaders(i) = objFolder.GetDetailsOf (objFolder.Items, i)
  7. Next
  8. For Each strFileName in objFolder.Items
  9.         Wscript.echo strFileName & ": "
  10.         For i = 0 to 300
  11.                 If i = 156 then
  12.                         Wscript.echo arrHeaders(i) & ": " & objFolder.GetDetailsOf (strFileName, i)
  13.                 End If
  14.                 If i = 271 then
  15.                         Wscript.echo arrHeaders(i) & ": " & objFolder.GetDetailsOf (strFileName, i)
  16.                 End If
  17.         Next
  18. Next
  19. WScript.Sleep 5000
复制代码

作者: jfjl1982    时间: 2011-5-5 14:33

非常感谢大大的指教.经过测试,发现这个方法好使.不过有一点注意的是,文件属性的顺序和系统有关.产品版本和文件版本的编号不一定是271和156
作者: jfjl1982    时间: 2011-5-5 17:05

有一个问题,因为木马原因,很多机器会禁用Shell.Application。那就无法采用一楼的方法了,还有其他方法能实现吗?
作者: lxzzr    时间: 2011-5-5 17:27

if arrHeaders(i) = 产品版本 ?

"有一个问题,因为木马原因,很多机器会禁用Shell.Application。那就无法采用一楼的方法了,还有其他方法能实现吗?
"
我暂时还没发现,如果你发现了好的方法,教我^_^




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2