2016-11-10 9 views
0

レジストリからExcel.exeのパスが必要です。だから私は、次を使用:\ PROGRA〜1 \ MIF5BA〜1 \ Office15 \ EXCEL:RegQueryValueExで異常な動作が発生する他のレジスタの戻り値

私は

szKey = "\Classes\CLSID\{ExcelCLSID}\LocalServer", 

でWindows64bits

RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &hKey) 

を使用しています。このレジスタは」Cが含まれています。 EXE/automation "

Excel.exeのパスを取得するために使用します。

プラットフォーム x64ののための私のソリューションを構築する際に のWin32プラットフォームのための私のソリューションを構築する際に

だから、私は 次のパスを取得し、パス細かいある

C:\\PROGRA~1\\MIF5BA~1\\Office15\\EXCEL.EXE /automation 

として得るが、

"C:\\Program Files\\Microsoft Office\\Office15\\EXCEL.EXE" /automation 

strangeこの値はstですので以下のレジストリに登録されています

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{ExcelCLSID}\ 

私はここに何かが欠けていますか?

答えて

1

Windowsレジストリは、同じ環境で実行されている32ビットアプリケーションと64ビットアプリケーションの情報を透過的に保持します。表示されるWow6432Nodeは、そのキーの値が、64ビットバージョンのWindowsで実行されている32ビットアプリケーションに固有であることを示しています。

既定のレジストリリダイレクト(RegDisableReflectionKeyを参照)を無効にすることはできますが、ほとんどの場合、これは実行したくないものです。

レジストリリダイレクトhereの情報を参照してください。

+0

32ビットプロセスを実行しているときにWindows64bitsレジストリから読み取るために開くキーへのアクセス権を指定するマスクに問題があると思います。** KEY_READ | KEY_WOW64_64KEY **は** KEY_READ ** RegOpenKeyExの呼び出しでのみ**。 – Deli

関連する問題