|
こんにちは PatoFo と申します。
「マクロ開発者会議室」に上げていた発言に
レスが付かないのでこちらに移動してきました。
Windows NT Workstation 4.0 (SP3適用)で
秀丸マクロの openreg がレジストリキーの
オープンに失敗してしまいます。
(秀丸のバージョンは 2.22です。)
以下のマクロで openreg 実行後の result
が 0 になります。
// レジストリから WordPad.exe のフルパスを獲得する
openreg "LOCALMACHINE", "SOFTWARE\\" +
"Microsoft\\" +
"Windows\\" +
"CurrentVersion\\" +
"App Paths\\" +
"WORDPAD.EXE" ;
if ( 0 == result ){
message "キーのオープンに失敗!" ;
endmacro ;
} else {
// WORDPAD.EXE のパスを獲得する
$path = getregstr( "" ) ;
closereg ;
}
run $path ;
上例のマクロは WordPad.EXE のパスを調べ、起動するものです。
この方法で、自作のアプリケーションがどこにインストール
されたかを調べて、秀丸のマクロからそれを実行しようとしています。
Windows 95 では正常に動作します。また、HKEY_CURRENT_USER のサブキーであればo
penreg は正常に動作するようです。
これと似た現象を経験したことがありますが、
RegOpenKeyEx の第4引数に KEY_CREATE_LINK を含む値を指定する
とキーのオープンに失敗します。 (KEY_ALL_ACCESS を指定した場合も KEY_ALL_ACC
ESS が KEY_CREATE_LINK を含みますので同様に失敗します。)
openreg の仕様からして KEY_CREATE_LINK の指定は必要ないと
思われますが、上記の点を確認の上、もしそうであるのなら
KEY_CREATE_LINK の指定を外す事を検討していただけないでしょうか。(全然見当ち
がいの事を言っていたらごめんなさい。)
ということで、よろしくお願いいたします。
|
|