openreg が失敗するNo.03673
dszhm さん 18/07/17 08:25
 
OS:Win 10 Pro 64bit
秀丸エディタ:8.81 64bit
秀丸メール:6.83 64bit
です。

以下マクロを秀丸エディタで実行すると最後の「7-Zip Exe =」のメッセージが表示
され、秀丸メール(本体)で実行すと途中のエラーになります。

------ マクロ部分 ----
//7Zipのインストール先をレジストリから得る
openreg "LOCALMACHINE" , "SOFTWARE\\7-Zip";
if( result == no ) {
 message "7-Zipのプログラム用ファイルが見つかりません。7-Zipをインストールし
てください。";
 endmacro;
}
$loc7z = getregstr("Path");
closereg;

message "7-Zip Exe = " + $loc7z + "\\7z.exe";
endmacro;

[ ]
RE:03673 openreg が失敗するNo.03675
秀まるお2 さん 18/07/17 09:48
 
 こちらでテストしてみた限りでは、秀丸エディタも秀丸メールも64bit版の方なら
大丈夫そうでした。

 たぶん、dszhmさんの所の秀丸メールが32bit版なんじゃないかと思います。32bit
版だとたしかに失敗します。

 32bit版の秀丸エディタ/秀丸メールを64bit版のWindows上で動作させると、

 HKEY_LOCAL_MACHINE

 へのアクセスが、

 HKEY_LOCAL_MACHINE\Software\Wow6432Node

 へバイパスされてしまいます。回避策はちょっと無いです。

 HKEY_CURRENT_USERの方だとバイパスされないです。で、7-Zipのレジストリは、HK
EY_CURRENT_USER側にも同じのがあります。なので、マクロを、

    openreg "CURRENTUSER" , "SOFTWARE\\7-Zip";
    if( result == no ) {
        message "7-Zipのプログラム用ファイルが見つかりません。7-Zipをインス
トールしてください。";
        endmacro;
    }
    $loc7z = getregstr("Path");
    closereg;

    message "7-Zip Exe = " + $loc7z + "\\7z.exe";
    endmacro;

 のように直せばうまく動作します。この作戦でどうでしょうか。

[ ]
RE:03675 openreg が失敗するNo.03676
dszhm さん 18/07/17 16:53
 
> こちらでテストしてみた限りでは、秀丸エディタも秀丸メールも64bit版の方なら
>大丈夫そうでした。
>
> たぶん、dszhmさんの所の秀丸メールが32bit版なんじゃないかと思います。32bit
>版だとたしかに失敗します。

これでした、お騒がせして申し訳ありませんでした。

[ ]