Microsoft が提供する2 つのアクセス ランタイムがあります。x86 および x64 バージョン - 残念ながら、x64 ランタイム バージョンは 32 ビット mde ファイルを開くことができず、その逆も同様です。
どのランタイムがインストールされているかを検出する最も簡単な方法は何ですか?
私のお気に入りの方法は、レジストリに問い合わせることです。
access-runtime は Outlook レジストリ キーを作成しないため、ここで説明する方法は機能しません。
Microsoft が提供する2 つのアクセス ランタイムがあります。x86 および x64 バージョン - 残念ながら、x64 ランタイム バージョンは 32 ビット mde ファイルを開くことができず、その逆も同様です。
どのランタイムがインストールされているかを検出する最も簡単な方法は何ですか?
私のお気に入りの方法は、レジストリに問い合わせることです。
access-runtime は Outlook レジストリ キーを作成しないため、ここで説明する方法は機能しません。
私はこの方法で私の問題を解決しました:
レジストリ HKLM\SOFTWARE\Classes\Access.Application.14\shell\Open\Command から、デフォルト キーから msaccess.exe (バージョン 2010) へのパスを取得します。
次に、そのファイルをImageLoad関数で開きます。返される構造で、マシン フィールドを読み取ります。
LOADED_IMAGE。ファイルヘッダー. FileHeader .Machine
このリンクを見つけましたが、フェイルプルーフかどうかはわかりません。このレジストリキーは、64ビットAccessがインストールされている場合に存在します。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\InstallRoot