Accessのバージョンを得るには
◇-Accessのバージョンを得るには-西崎 隆雄(6/12-16:48)No.10705 ┗Re:Accessのバージョンを得るには 解決しました!!-西崎 隆雄(6/12-17:35)No.10710
10705 | Accessのバージョンを得るには | 西崎 隆雄 | 6/12-16:48 |
OS名:Windows95 パソコン名:DynaBookSS3330 ソフト名:VB6.0、Access2000 VB6.0でWindowsのAPIを使ってAccessのバージョンを取得しようとしているのです が、VB6.0とAccess2000だとうまく取得できません。具体的に は、"GetFileVersionInfoSize"(バージョン情報のサイズを取得するAPI)で"0"が 返される。 別のパソコン(EQUIUM、Windows95)でVB6.0とAccess97の環境だと取得できます。 どなたか御存知の方、お教えください。 以下にコーディング例を記述します。 ' 対象ファイルのバージョン情報のサイズを取得 lngSizeOfVersionInfo = GetFileVersionInfoSize(argFileName, lngDummyHandle) ' 対象ファイルのバージョン情報のサイズが取得できた場合は If lngSizeOfVersionInfo > 0 Then ' ダミー変数の領域を確保 ReDim bytDummyVersionInfo(lngSizeOfVersionInfo - 1) ' 対象ファイルのバージョン情報を取得 lngWin32apiResultCode = GetFileVersionInfo(argFileName, _ 0, _ lngSizeOfVersionInfo, _ bytDummyVersionInfo(0)) ' 対象バージョン情報リソースのルートブロックを取得 lngWin32apiResultCode = VerQueryValue(bytDummyVersionInfo(0), _ "\", _ lngPointerVersionInfo, _ lngLengthVersionInfo) ' 取得したルートブロックをバージョン情報の構造体へ移動 Call MoveMemory(udtVSFixedFileInfo, lngPointerVersionInfo, Len (udtVSFixedFileInfo)) ' バージョン番号の取得 With udtVSFixedFileInfo GetFileVersion = Format$((.dwFileVersionMS \ (2 ^ 16)) And &HFFFF&) & "." & _ Format$(.dwFileVersionMS And &HFFFF&, "00") & "." & _ Format$(.dwFileVersionLS) End With End If |
10710 | Re:Accessのバージョンを得るには 解決しました!! | 西崎 隆雄 | 6/12-17:35 |
記事番号10705へのコメント 西崎 隆雄さんは No.10705「Accessのバージョンを得るには」で書きました。 >OS名:Windows95 >パソコン名:DynaBookSS3330 >ソフト名:VB6.0、Access2000 >VB6.0でWindowsのAPIを使ってAccessのバージョンを取得しようとしているのです >が、VB6.0とAccess2000だとうまく取得できません。具体的に >は、"GetFileVersionInfoSize"(バージョン情報のサイズを取得するAPI)で"0"が >返される。 >別のパソコン(EQUIUM、Windows95)でVB6.0とAccess97の環境だと取得できます。 >どなたか御存知の方、お教えください。 > >以下にコーディング例を記述します。 > >' 対象ファイルのバージョン情報のサイズを取得 >lngSizeOfVersionInfo = GetFileVersionInfoSize(argFileName, >lngDummyHandle) >' 対象ファイルのバージョン情報のサイズが取得できた場合は >If lngSizeOfVersionInfo > 0 Then > ' ダミー変数の領域を確保 > ReDim bytDummyVersionInfo(lngSizeOfVersionInfo - 1) > ' 対象ファイルのバージョン情報を取得 > lngWin32apiResultCode = GetFileVersionInfo(argFileName, _ > 0, _ > lngSizeOfVersionInfo, _ > bytDummyVersionInfo(0)) > ' 対象バージョン情報リソースのルートブロックを取得 > lngWin32apiResultCode = VerQueryValue(bytDummyVersionInfo(0), _ > "\", _ > lngPointerVersionInfo, _ > lngLengthVersionInfo) > ' 取得したルートブロックをバージョン情報の構造体へ移動 > Call MoveMemory(udtVSFixedFileInfo, lngPointerVersionInfo, Len >(udtVSFixedFileInfo)) > ' バージョン番号の取得 > With udtVSFixedFileInfo > GetFileVersion = Format$((.dwFileVersionMS \ (2 ^ 16)) And >&HFFFF&) & "." & _ > Format$(.dwFileVersionMS And &HFFFF&, "00") >& "." & _ > Format$(.dwFileVersionLS) > End With >End If > ごめんなさい。解決しました。 "GetFileVersionInfoSize"にレジストリから取得したAccessのコマンドラインを渡していたのですが、 Access2000の場合レジストリの""c:\Program Files\Microsoft office\office\MSACCESS.EXE".....""と設 定されていたため(""が多い)エラーになっていたようです。Access97の場合は、"c:\Program Files\Microsoft office\office\MSACCESS.EXE....."と設定されていたためエラーにならなかったようで す。 どうも、お騒がせしました。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|