|
どもっ、お久しぶりです。TAKA です。
> あるマクロを実行しているとき,そのマクロ自身が起動されたのか,他のマクロ
>から呼び出されて実行されているかを判別する方法はありましたか?
完璧に知る方法はありません。
#ないはず
やるなら、非常にダサいですが、以下のような方法しかないと思い
ます。
$Iniに指定するファイルは適当に変えて下さい。
// Parent.mac(ここから)
$Ini = hidemarudir + "\\red\\HIDERED.INI";
writeininum $Ini, "Work", "ChildCallFlag", 1;
execmacro currentmacrodirectory + "\\Child.mac";
endmacro;
// Parent.mac(ここまで)
// Child.mac(ここから)
$Ini = hidemarudir + "\\red\\HIDERED.INI";
#ChildCallFlag = getininum( $Ini, "Work", "ChildCallFlag" );
writeininum $Ini, "Work", "ChildCallFlag", 0; // 元に戻す
if( #ChildCallFlag == 0 )
{ // 単体で起動された可能性が非常に高い
message "このマクロは単体では利用出来ません";
goto LEND;
}
// ここに本来の処理
message "親から呼ばれた可能性が高いため、処理を継続します";
LEND:
endmacro;
// Child.mac(ここまで)
単体で呼び出されたか、親から呼び出されたか位は知る命令があっ
ても良いと思います。
要望として出しませんか?
|
|