English help on website



openreg文(Ver9.35対応版)
目次− openreg文
openreg文は、レジストリをオープンします。
openreg "CURRENTUSER", @"Software\Hidemaruo\Hidemaru\Env";
パラメータ1(文字列型)
ルートとなるキー名を指定します。
以下の文字列が指定可能です。
"CLASSESROOT"(HKEY_CLASSES_ROOTに対応)
"CURRENTUSER"(HKEY_CURRENT_USERに対応)
"LOCALMACHINE"(HKEY_LOCAL_MACHINEに対応)
"USERS"(HKEY_USERSに対応)
パラメータ2(文字列型)
サブキー名を指定します。

パラメータ3(数値型、省略可能)
指定しないか0を指定する場合、32bit版は32bit版の情報、64bit版は64bit版の情報にそのままアクセスします。
1を指定すると、32bit版でも64bitの情報にアクセスします。
2を指定すると、64bit版でも32bitの情報にアクセスします。

結果コード
成功したらresultは0以外になります。
失敗したらresultは0になります。


openregは、指定されたサブキーが存在しない場合に失敗となります。
createregは、指定されたサブキーが存在しない場合は新たに作成してからオープンします。

複数のレジストリを同時にオープンすることはできません。

レジストリのオープン状態は、現在の秀丸エディタだけで有効です。nexthidemaru等で秀丸エディタを切り替えた先では有効ではありません。


管理者権限の注意:
HKEY_CURRENT_USER以外は管理者権限がないと書き込みはできません。

64bit版/32bit版の注意:
64bit版のWindowsにおける、64bit版の秀丸エディタと32bit版の秀丸エディタでは参照するレジストリの場所が異なる場合があります。
32bit版の「HKEY_LOCAL_MACHINE\SOFTWARE」配下は、64bit版の「HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node」配下と同じになります。
64bit版の「HKEY_LOCAL_MACHINE\SOFTWARE」配下は、32bit版ではそのままではアクセスできません。
HKEY_CURRENT_USERは32bitでも64bitでも同じです。

openregのパラメータ3に値を指定して、32bitと64bitの違いを制御することができます。(V8.83以降)
32bit版の秀丸エディタでパラメータ3に1を指定すると、HKEY_LOCAL_MACHINE\SOFTWARE配下は64bitの内容になります。
常に64bitを参照する例
if( (platform & 0x00080000) != 0 ) {
  //64bit版秀丸エディタ
  openreg "LOCALMACHINE", "SOFTWARE\\Test";  //64bit版そのまま
} else {
  if( (platform & 0x00100000) != 0 ) {
    //64bit版Windows の 32bit版秀丸エディタ
    openreg "LOCALMACHINE", "SOFTWARE\\Test", 1; //32bit版でも64bitの情報にアクセス
  } else {
    //32bit版Windows の 32bit版秀丸エディタ
    //該当なし
  }
}
64bit版の秀丸エディタでパラメータ3に2を指定すると、HKEY_LOCAL_MACHINE\SOFTWARE配下は32bitの内容になります。
常に32bitを参照する例
if( (platform & 0x00080000) != 0 ) {
  //64bit版秀丸エディタ
  openreg "LOCALMACHINE", "SOFTWARE\\Test", 2; //64bit版でも32bitの情報にアクセス
} else {
  if( (platform & 0x00100000) != 0 ) {
    //64bit版Windows の 32bit版秀丸エディタ
    openreg "LOCALMACHINE", "SOFTWARE\\Test";  //32bit版そのまま
  } else {
    //32bit版Windows の 32bit版秀丸エディタ
    openreg "LOCALMACHINE", "SOFTWARE\\Test";  //32bit版そのまま
  }
}

持ち出しキットの注意:
持ち出しキットで動作中の場合は、HKEY_CURRENT_USERはiniファイルへのアクセスに変換されます。
HKEY_CLASSES_ROOTとHKEY_LOCAL_MACHINEについては、V8.92以降ではopenregで読み取りだけが可能です。

リダイレクト:
HKEY_CURRENT_USER\Software\Hidemaruo\Hidemaru\Env配下の書き換えや読み取りは、秀丸エディタの設定へのアクセスとみなして、特別な動作になることがあります。

writeregnumで、"SelectFound"を書き換えると、検索での表示が書き換えられたとみなされ、envchanged相当が自動的に働きます。(V7.08以降)
(現在のバージョンでは、setcompatiblemodeを使うとマクロ内での検索での表示を指定できるので、この書き換えはしないほうがいいです)

getregstrで、"MacroPath"と"SettingPath"は、環境変数が指定されていたとしても、フルパスに展開されたパスが返ります。(V8.88以降)

getregnum/writeregnumで、"MenuBar"はメニューバーON/OFF、"TitleBar"はタイトルバーON/OFF、の数値として振る舞います。(V9.20以降)
実際はレジストリにはこの値は無く、"ExEnv2"というバイナリ値の一部が書き換わります。