| |
実行サンプルを載せておきます。
> execmacroで上手く変数を引き継ぐ方法はないかな?
私も欲しいですが、今のところ EXZS さんの方法か、DLL 等でより広域的に利用可
能なグローバル変数を使うしかないと思います。
>因みに、以前から要望はでています。
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_2/t98.html
にて 00961 のスレッドを御覧ください。
※田楽DLLのグローバル変数をマクロ間で使う
---------- HENV1.mac 親
// 元ウィンドウで DLL をロード
loaddll hidemarudir + "\\DengakuDLL.dll";
// グローバル変数の定義(環境変数扱いをするなら@を付ける)
if (dllfunc("SETVAR","arg0","this is arg 0.") == 0 ||
dllfunc("SETVAR","arg1","this is arg 1.") == 0 ||
dllfunc("SETVAR","arg2","this is arg 2.") == 0) {
message "変数の定義に失敗!!";
endmacro;
}
// 別マクロに実行継続
execmacro "HENV2.mac"; // <<<<<<<<<<< 子プロセス?
// 返値を表示
menu dllfuncstr("GETVAR","arg9" );
freedll;// おしまい
---------- HENV2.mac 子
// 引数扱いのグローバル変数を読み込む
##a = 0;
while (##a < 3) {
$arg[##a] = dllfuncstr("GETVAR","arg" + str(##a));
menu $arg[##a];
##a = ##a + 1;
}
// 辺値をセット
#n =dllfunc("SETVAR","arg9","this is arg 9.");// 子でloadしなくとも使える
-------------------------------------------------
関連:
秀丸の環境変数の読み取りは使えるでしょうか?GetENV
コマンドラインから起動するに場合しか使えないですが。
|
|