Windows7でbplのバージョン情報を見る

解決


のりぺぃ  2011-01-03 09:32:43  No: 39788  IP: [192.*.*.*]

Delphiそのものの質問からは外れてしまうかもしれませんが…

これまでDelphiで.bplを作成し、バイナリのバージョンを
[プロジェクト|オプション]のバージョン情報→「ファイルバージョン」で
管理していたのですが、Windows7になってからこのファイルバージョンを
Exploreや「ファイルのプロパティ」で見れなくなくなってしまいました。
XPで同じファイルを見ると、ちゃんと表示されます。

.dllファイルでは表示されているので、何らかの方法で可能だとは
思うのですが、拡張子の関連付けを解除したりしてもうまくいきません。
どなたかこのあたりの情報をご存知ないでしょうか?

編集 削除
けど@あけおめです  2011-01-04 23:41:08  No: 39789  IP: [192.*.*.*]

OSの仕様でしょう
GetFileVersionInfoなどを使って自分でツールを作った方が早いと思います

編集 削除
n  2011-01-05 00:27:43  No: 39790  IP: [192.*.*.*]

.bpl は拡張子が違うだけの .dll なので、
拡張子を変更すればエクスプローラで表示できるはずです。

編集 削除
助監督(仮名)  2011-01-05 20:53:28  No: 39791  IP: [192.*.*.*]

私も.bplではありませんが、似たような目的でファイルのバージョンをチェックするため
VBScriptのプログラムを使ってます。拡張子と関係無く読み取れます。
※これで取得できるのは、バージョン情報リソースのうちVS_FIXEDFILEINFOのFILEVERSIONです。

Windows7で動作するかテストしてませんが、使ってみてください。
直接起動のほか、ドラッグ&ドロップまたはSendTo(送る)に登録して使います。


'VerCheck.vbs

DefaultFile="C:\WINDOWS\SYSTEM\MyLib.bpl"
Str=""

Set objArgs=WScript.Arguments
Set objFSO=CreateObject("Scripting.FileSystemObject")

If objArgs.Count=0 Then
  PathFile=InputBox("調べたいファイルをフルパスで入力","ファイルバージョンチェック",DefaultFile)
  If PathFile<>"" Then
    TryVerChk(PathFile)
    WScript.Echo Str
  End If
Else
  For Each Arg In objArgs
    TryVerChk(Arg)
  Next
  WScript.Echo Str
End If

Set objFSO=nothing
Set objArgs=nothing
WScript.Quit


Function TryVerChk(File)

If objFSO.FileExists(File)=True Then
  Ver=objFSO.GetFileVersion(File)
  If Ver<>"" Then
    Str=Str & File & "  のバージョンは、" & Ver & " です。"
  Else
    Str=Str & File & "  のバージョン取得が出来ません。"
  End If
Else
  Str=Str & File & "  というファイルは見当たりません。"
End If
Str=Str & VbCrLf & VbCrLf

End Function

編集 削除
のりぺぃ  2011-01-06 11:59:23  No: 39792  IP: [192.*.*.*]

今まで出来ていたことが出来なくなるのは不便ですねえ…

助監督(仮名)さんのVBSはWindows7でも動きましたので
これを使わせていただくことにしました。
ありがとうございました。

編集 削除