それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

どうしてもJSでコンソール!

VBSで作られたIEコンソールを見つけた。
http://hp.vector.co.jp/authors/VA036013/script/EasyImmidiateWnd.html


さて、JScriptに移植すればいいのかな?

それともWSHJscriptとシームレスに結合させた方が良い?


ちょっとソース見てみる


ソース読んできた

VB苦手。

C言語系言語*1しか触ってないのでどうも違和感が。まぁrubyJavaScriptの融合だと思いこんで読み込んでみることに。

IEオブジェクトを取得している部分
Set ObjShell=CreateObject("Shell.Application")
Set ObjDict = CreateObject("Scripting.Dictionary")

myList = vbNullString
index = 0

' IEオブジェクト一覧をカンマ区切りで取得
For Each ObjWnd In ObjShell.Windows
    If (typename(ObjWnd.Document) = "HTMLDocument") Then
        myList = myList & GetPropertyVal(ObjWnd.Document, "Title", "NoTitle") & "(" & ObjWnd.locationURL & "),"
        objDict.Add index, ObjWnd
        index = index + 1
    End If
Next

気になったCOM

これは名前を見ると期待できそうな。。。オブジェクト

' スクリプトコントロールを作成
Set ObjScript = CreateObject("MSScriptControl.ScriptControl.1")

何に使うのだろう。もう少しソースを読んでみたい

VBSわからん

おしえてエロいひと。

探してたらこんなんをみつけた
http://iriyak.adam.ne.jp/wiliki/uwsc.cgi?iriyak%3AJScript%3ALibrary%3AScriptEngineSwitcher

スクリプトエンジンの強制切り替えScriptEngineSwitcher。つかえるかも

やっぱVBは嫌いだ!ウワーン

盲点だった。

shell.Windows は関数だ!

というわけでIE取得までが出来ました

var Shell = new ActiveXObject("Shell.Application");
var WindowsShell = Shell.Windows();
var str = "";
for(var i = 0; i < WindowsShell.Count; i++) {
    item = WindowsShell.item(i);
    if(item.FullName.match(/iexplore.exe$/i)){
      alert(item.document.title);
    }
}

//alertは、デバッガEmEditor組み込み。


おおおおおおIE取得できたかも??

参考URLはこの辺
http://homepage3.nifty.com/aya_js/wsh/wsh23.htm

IEのWindowのオブジェクトも取得できたよ

var Shell = new ActiveXObject("Shell.Application");
var WindowsShell = Shell.Windows();
var str = "";
for(var i = 0; i < WindowsShell.Count; i++) {
    item = WindowsShell.item(i);
    if(item.FullName.match(/iexplore.exe$/i)){
      window = item.document.parentWindow;
      window.alert();//IEにAlertを送信
   a = window.Array();//たぶんIEのArray()
    }
}

ここまで来たらJSコンソールがかなり近づいたか。