如何在Windows 7的Windows资源管理器中查看* .ax之类的文件版本号?


6

在Windows 7中,似乎只有.dll/ .exe文件才能在“属性”对话框中查看文件的版本号。如果文件扩展名是.ax,则不会显示文件的版本号。

我可以更改任何设置以启用.ax文件设置吗?


.ax文件类型到底是什么?
周杰伦

@jay:它是DirectShow过滤器(编解码器),内部只是一个普通的Windows库。
grawity 2010年

1
奇怪的是Win7没有显示版本号。在XP中,无论文件有什么扩展名显示在“版本”选项卡,只要它是一个Win32可执行程序...
grawity

哦,我明白了,所以AX只是容器扩展吗?
周杰伦

1
@杰伊:这不是一个容器。它只是一个普通的Windows DLL,符合DirectShow的要求(即具有编码视频数据或其他内容的功能)。
grawity 2010年

Answers:


2

Windows可执行文件格式(包含在EXE和DLL扩展名的文件中)具有专门保存该元数据的能力。对于任何其他文件类型,这不仅需要具有该元数据的文件格式,而且还要求Windows资源管理器知道如何获取该元数据。例如,当您在Windows 7中单击ODT文件时,除非您已安装OpenOffice.org或LibreOffice(它们注册了Windows资源管理器用来显示信息的组件)的组件,否则不会显示有关该文件的信息。和资源管理器窗口中的标题。


2
(可能可以在注册表中查看是否可以以注册.exe的相同方式注册.ax文件类型,以便资源管理器将其视为另一个可执行文件。然后,Microsoft可能再次有意删除了该功能;他们在使用具有不同扩展名的PE文件格式方面有着悠久的历史,并且不允许您将它们视为可执行文件...)
Michael Trausch


1

您提出的问题非常神秘。
我在下面列出了我所做的事情,尽管没有真正的答案,但这只是一个推测。

如您所说,尽管.ax代表实现编解码器的dll,但仅为.dll显示“文件版本”,而不为.ax显示。

我已将.ax重命名为.dll,令我惊讶的是,现在在“属性”和弹出窗口中都显示了“文件版本”,而以前没有显示。

下一站是在注册表中,尝试比较HKEY_CLASSES_ROOT\.dllHKEY_CLASSES_ROOT\.ax。另一个惊喜: HKEY_CLASSES_ROOT\.ax不存在。

啊,哈!我立即出口HKEY_CLASSES_ROOT\.dll,取代了所有出现dllax,重新导入回注册表,并验证是否存在 HKEY_CLASSES_ROOT\.ax,现在相同HKEY_CLASSES_ROOT\.dll

结果:绝对没有。资源管理器仍拒绝显示.ax的“文件版本”。

另一个:要尝试强制浏览器显示“文件版本”,请右键单击其列标题,选择“更多...”,然后选中“文件版本”。结果:.ax不会显示版本,除非将其重命名为.dll或.exe。

我能提供的唯一结论是,“文件版本”的显示内置于Explorer程序本身中,用于知名的可执行文件扩展名,这些扩展名只有.dll和.exe。

不幸的是,在编制此列表时,Microsoft完全忘记了.ax,也完全忘记了.scr(用于屏幕保护程序的dll)。

(所有测试均在Windows 7下完成。)


0

我不知道它是否可以与.ax文件一起使用,但是来自Sysinternals的Sigcheck是我用来在命令提示符下显示可执行(exe / DLL)版本和说明的工具。试试看,只有114KB。

Edit
Sigcheck也适用于.ax文件。样本输出:

sigcheck -a CoreAVCDecoder.ax
Sigcheck v1.71 - File version and signature viewer
Copyright (C) 2004-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\Program Files\CoreCodec\CoreAVC Professional Edition\CoreAVCDecoder.ax:
        Verified:       Unsigned
        File date:      1:26 AM 12/19/2009
        Publisher:      CoreCodec
        Description:    CoreAVC DirectShow Video Decoder
        Product:        CoreAVC Video Decoder
        Version:        2.0.0
        File version:   2.0.0
        Strong Name:    Unsigned
        Original Name:  CoreAVCDecoder.ax
        Internal Name:  CoreAVCDecoder
        Copyright:      Copyright ⌐ 2005-2009 CoreCodec, Inc.
        Comments:       http://www.coreavc.com

编辑2
为了清楚起见,并非所有的DLL / Exe都包含用于存储版本信息的WinPE资源块。如果是这种情况,这些文件将不会显示“版本”标签。您可以使用Sigcheck进行确认。如果Sigcheck无法显示文件的版本信息,则意味着特定文件没有适当的资源块。


0

即使更改了HKEY_CLASSES_ROOT \ SystemFileAssociations \ .ax!FullDetails以强制文件版本属性出现在“详细信息”选项卡上,Windows资源管理器仍拒绝从文件格式中提取信息。

看起来您需要第三方属性处理程序处理文件类型或Shell扩展名,以在其他位置显示信息(预览处理程序,属性表处理程序等)。magicandre1981建议使用的是这样的属性表处理程序。


1
该答案不包含任何新信息。
harrymc

0

您不仅应该复制HKEY_CLASSES_ROOT\.dll(并分别重命名)。您还需要复制并重命名key HKEY_CLASSES_ROOT\SystemFileAssociations\\.dll


差点忘了!此项也是如此:[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ PropertySystem \ PropertyHandlers \ .dll]
Valentin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.