COMの呼び出し(Ver8.13対応版)
目次− COMの呼び出し COM(Component Object Model)の呼び出しを扱うためのマクロの文があります。(V8.00以降) createobject関数 WSHのCreateObjectと似ています。 失敗時は0が返ります。 ロードされるのは現在の秀丸エディタについてだけなので、nexthidemaru文等で他の秀丸エディタに切り替わった場合は改めてcreateobjectしなおす必要があります。 #obj=createobject("ProgID"); getobject関数 WSHのGetObjectと似ています。 失敗時は0が返ります。 ロードされるのは現在の秀丸エディタについてだけなので、nexthidemaru文等で他の秀丸エディタに切り替わった場合は改めてgetobjectしなおす必要があります。 #obj=getobject("filename.ext"); #obj=getobject("moniker:"); #obj=getobject("","ProgID"); releaseobject文 オブジェクトを解放します。 releaseobject #obj; callmethod_returnstr関数 メソッドを呼び、文字列を取得します。 $s=callmethod_returnstr( #obj, $name, ... ); callmethod_returnnum関数 メソッドを呼び、数値を取得します。 #n=callmethod_returnnum( #obj, $name, ... ); callmethod_returnobj関数 メソッドを呼び、オブジェクトを取得します。 #obj=callmethod_returnobj( #obj, $name, ... ); callmethod文 メソッドを呼びます。 callmethod #obj, $name, ... ; getpropstr関数 文字列プロパティを取得します。 $s=getpropstr(#obj,$name, ... ); getpropnum関数 数値プロパティを取得します。 #n=getpropnum(#obj,$name, ... ); getpropobj関数 オブジェクトプロパティを取得します。 #obj=getpropobj(#obj,$name, ... ); setpropstr文 文字列プロパティを設定します。 setpropstr #obj,$name,$s; setpropnum文 数値プロパティを設定します。 setpropnum #obj,$name,#n; setpropobj文 オブジェクトを設定します。 setpropobj #obj,$name,#objSet; member文,member関数 callmethod,callmethod_*等やgetprop*等と同じです。 メソッド,プロパティ,型がわからないときに使用できます。 $s=member(#obj,$name, ... ); #n=member(#obj,$name, ... ); #obj=member(#obj,$name, ... ); member #obj,$name, ... ; keepobject文 マクロが終了した後も解放しないようにするかを指示します。 keepobject #obj, #mode; #mode=0の場合、マクロ終了後に自動解放します。 #mode=1の場合、マクロ終了後に自動解放しません。#objは再利用できません。 #mode=2の場合、マクロ終了後に自動解放しません。#objは再利用でき、後から再びマクロでreleaseobjectできます。 keepobject文を呼ばないときは、#mode=0の状態。 keepobject文を呼んで#mode省略時は#mode=1と同じ。 sleep文 一定時間待ちます。(ms) sleep 1000; getcollection関数 WSHのfor eachのようなことをします。(コレクションの操作) #obj = getcollection( #obj, #operation, #count ); #operationはコレクションの操作方法を指定します。 0 (または省略)で次を取得。 1 でスキップ。 2 で最初に戻る。 3 で解放。 #countは、#operationが 1 のとき、スキップする数を指定します。 エラーの取得 文はresultが設定されますが、関数ではresultは設定されません。 crateobject/getobject以外の関数では戻り値で成功したかどうかを知ることができないので、getresultexでエラー情報を得ることができるようになっています。 サンプル //プログラム起動 //WSH(VBS) // Set objShell = WScript.CreateObject("WScript.Shell") // objShell.Run "notepad.exe" #objShell = createobject("WScript.Shell"); callmethod #objShell, "Run", "notepad.exe"; endmacro; |