Click here to visit our sponsor

全般


目次


WSH での利用

対象は Windows Script Host です。

従属オブジェクトのイベントに接続する

WScript.CreateObject() で接続できるのは、
トップオブジェクトイベントなので、
オブジェクトイベントと接続したい場合、
WScript.ConnectObject() を使います。

既存のオブジェクトを取得

WScript オブジェクトにある GetObject メソッドですが、
これって、使えそうで使えません。(汗; (WMI 以外)
IE の取得とか試みたりしますが、出来ません。

結論ですが、これで取得できるのは、
Running Object Table に登録してあるオブジェクトだけです。

例えば Excel だと

WScript.GetObject("path\Book1.xls");

IE を取得するには、こっち


dhtml での利用 (IE/HTA)

対象は IE, HTA (WebBrowser Control) です。


スクリプト全般

スクリプト全般ですが、VBVC にも適用できます。

(サンプルは JScript)

GUID を生成する

var objTL = new ActiveXObject("Scriptlet.Typelib");
var strGuid = objTL.GUID;

scrobj.dll (WSC) のオブジェクトを利用。

IE と マイコンピュータ を取得 (対象: Shell32.dll 4.71 =IE 4.0 以降)

var objShell = new ActiveXObject("Shell.Application");
var e = new Enumerator(objShell.Windows());

for (; !e.atEnd(); e.moveNext()) {
    var objIE = e.item();

    alert(
        objIE.LocationName + "\n" +
        objIE.FullName + "\n" +
        objIE.Path + "\n0x" +
        objIE.HWND.toString(16)
    );
}

Shell.Windows()InternetExplorerオブジェクトコレクションです。
プロパティ ではなく メソッド だったりしますが・・・。

COM オブジェクトのカテゴリーを追加する (対象: COM)

レジストリ CLSID 下の対象となる {GUID}Implemented Categories キーを作り、
該当する CATID (GUID) キーを設けてやります。

既存の CATID の種別は、HKEY_CLASSES_ROOT
Component Categories キーに登録されています。

また、カテゴリーは、自分で勝手に作っていい事になっています。
作った GUID を勝手に意味のあるものにしましょう。
(説明不足かなぁ?)

(資料ページ) カテゴリー CATID

COM オブジェクトの複製を作る (又はすり替え) (対象: COM)

レジストリ CLSID 下の対象となる {GUID}TreatAs キーを設け、
複製したい CLSID を与えてやります。

OLE/COM Object Viewr でも設定できます。 (Implementation タグ)

(参考: CoTreatAsClass API)

これは CreateObject 等でオブジェクトインスタンス化した時、
TreatAs キーを有無を調べて、キーが存在する場合、
そちらの CLSIDオブジェクトを生成する。
というしくみになっています。

例えば、新しい CLSID を作り、TreatAs
Scripting.FileSystemObject の CLSID を指してやれば、
別の ProgIDfso オブジェクトインスタンス化できます。
さらにこの CLSID に安全であるカテゴリーを与えてやれば、
IE での警告を避ける事が出来ます。

(使い道は各人考えて下さい・・)


スクリプトページトップ

HOME

兄弟ページ 姉妹ページ
Click here to visit our sponsor