English help on website



setbackgroundmode文(Ver8.97対応版)
目次− setbackgroundmode文
setbackgroundmode文は、マクロを非アクティブな状態で実行できるようにします。(V8.89以降)
setbackgroundmode 1;とすると、バックグラウンドモードが有効になります。

setbackgroundmodeの主な目的は、setactivehidemaru等で2つの秀丸エディタを切り替えながら実行するマクロがあると、ウィンドウが前面に来てしまうことを防ぐためにあります。
例えば以下のマクロだと、非タブモードでウィンドウが2つある場合に前面に来てしまい、他のアプリの操作や、手動起動で操作する秀丸エディタの操作が困難ですが、setbackgroundmode 1;をすると前面に来ないようになります。
ウィンドウを切り替えながら実行するマクロの例
//ここで
// setbackgroundmode 1;
//をすると前面に来ない
if(tabmode!=0){
  message "タブモードOFFで実行してください。";
  endmacro;
}
newfile;
#a=hidemaruhandle(0);
newfile;
#b=hidemaruhandle(0);
setactivehidemaru #a;
while(1){
  setactivehidemaru #a;
  insert "Aです\n";
  setactivehidemaru #b;
  insert "Bです\n";
}
endmacro;

一度有効にすると、マクロが終了するまでは無効にすることはできません。
バックグラウンドモードは、マクロ実行中の秀丸エディタが非アクティブな状態になっても、実行中のマクロはその秀丸エディタ上で継続されます。
openfileやnewfileで新しい秀丸エディタのウィンドウができる場合は、バックグラウンドモードでないときと同じように、新しい秀丸エディタにマクロの実行は切り替わります。

バックグラウンドモードでは以下の制約があります。
できない例
setbackgroundmode 1;
//----
newfile;
setactivehidemaru 1;
できない例を回避する例
setbackgroundmode 1;
//----
#handle = hidemaruhandle(0);
newfile;
setactivehidemaru #handle;