|
||
[ トップ
| ヘルプ
] |
Sleipnirスクリプト作成法 †ここでは、JavaScript,VBScript(以下、まとめて Script と表記)などを使ってSleipnirスクリプトを作る際の書式などを説明します。
ブラウザ上で動作する Script との違い †通常、Webページ上に HTML と一緒に記述されている Script は、IEなどのブラウザが処理しています。 なお、WSH はWindowsに標準で入っていますが、OSのバージョンによってはWSHのバージョンが古いこともあります。 Sleipnir.APIの使用法 †Sleipnirでは、SleipnirスクリプトからSleipnir を操作するための API (Sleipnir.API)が多数あります。 [JScript] var pnir = new ActiveXObject("Sleipnir.API"); [VBScript] Dim pnir Set pnir = CreateObject("Sleipnir.API") この記述の後に pnir.○○○ と「pnir.」の後に使いたいSlepipnir.APIを記述することでSleipnir.APIが使用できます。 var pnir = new ActiveXObject("Sleipnir.API"); Dim pnir Set pnir = CreateObject("Sleipnir.API") はSleipnirスクリプト内で一度宣言するだけでOKです。Sleipnir.APIを使用するたびに宣言する必要はありません。 では実際に1つ簡単なスクリプトを書いて見ましょう。 [JScript] var pnir = new ActiveXObject("Sleipnir.API"); var id = pnir.GetDocumentID(pnir.ActiveIndex); pnir.Navigate(id, 'http://www.google.co.jp/'); これをメモ帳などのテキストエディタに記入し、拡張子を「.js」にして適当な名前をつけて保存し、 1行目:var pnir = new ActiveXObject("Sleipnir.API"); この行は先ほど説明したとおりです。Sleipnir.APIを使用する際のお約束です。 2行目:var id = pnir.GetDocumentID(pnir.ActiveIndex); Sleipnir.API の ActiveIndex はアクティブなウィンドウのタブバー上での並び順を整数で取得します。 var id = pnir.GetDocumentID(pnir.ActiveIndex); は、アクティブなウィンドウの ドキュメント固有のID を取得して変数「id」に代入していると覚えておいて良いです。 3行目:pnir.Navigate(id, 'http://www.google.co.jp/'); Sleipnir.API の Navigate() は、任意の ドキュメント固有のID のウィンドウで任意のWebページを開きます。 この他にも Sleipnir.API はたくさんありますが、ここでは省略します。 window オブジェクト や document オブジェクト を使用する †Webページ上に HTML と一緒に記述されている JavaScript では、 document.title でページのタイトルを取得・設定したり、 window.back() で前のページに戻ったりできますが、 ■documentオブジェクト var pnir, id, document; pnir = new ActiveXObject("Sleipnir.API"); id = pnir.GetDocumentID(pnir.ActiveIndex); document = pnir.GetDocumentObject(id); document.title = 'すれいぷにる!'; 1~3行目は説明済みなので省略します。 4行目:document = pnir.GetDocumentObject(id); Sleipnir.API の GetDocumentObject() は任意の ドキュメント固有のID のウィンドウの document オブジェクト を作成します。 宣言後はHTML上でJavaScriptを使用する時と同じように document オブジェクト が使用できます。 5行目:document.title = 'すれいぷにる!'; 説明無用ですね。ウィンドウ(タブ)のタイトルを「すれいぷにる!」にします。 doc = pnir.GetDocumentObject(id); doc.title = 'すれいぷにる!'; などのように「doc」と定義することもできます。 ■windowオブジェクト var pnir, id, window; pnir = new ActiveXObject("Sleipnir.API"); id = pnir.GetDocumentID(pnir.ActiveIndex); window = pnir.GetWindowObject(id); window.back(); 1~3行目は説明済みなので省略します。 4行目:window = pnir.GetWindowObject(id); Sleipnir.API の GetWindowObject() は任意の ドキュメント固有のID のウィンドウの window オブジェクト を作成します。 宣言後はHTML上でJavaScriptを使用する時と同じように window オブジェクト が使用できます。 5行目:window.back(); 説明無用ですね。前のページに戻ります。 win = pnir.GetWindowObject(id); win.back(); などのように「win」と定義することもできます。 なお、GetWebBrowserObject() もありますがあまり使われないのでここでは省略します。 ◆注意 Sleipnirスクリプトにおける例外処理 †前述の方法で window オブジェクト や document オブジェクト を作成するわけですが、 [JScript] pnir = new ActiveXObject("Sleipnir.API"); id = pnir.GetDocumentID(pnir.ActiveIndex); document = pnir.GetDocumentObject(id); if (document == null) { pnir.MessageBox("Document オブジェクトを作成できません"); } else { // TODO: コードをここに記述してください。 document = null; } 一般的に、documentオブジェクトしか判定する必要は無いです。 なお、window オブジェクト も document オブジェクト も使用しないスクリプトの場合は、document == null の代わりに pnir.GetCount < 1 を書くこともあります。 テンプレート †Sleipnirスクリプトを書く際に、毎回白紙から書くのは大変なので、テンプレートを置いておきます。 window = pnir.GetWindowObject(id); などはお好みで追加してください。 [JScript] var pnir, id, document; pnir = new ActiveXObject("Sleipnir.API"); id = pnir.GetDocumentID(pnir.ActiveIndex); document = pnir.GetDocumentObject(id); if (document == null) { pnir.MessageBox("Document オブジェクトを作成できません"); } else { // TODO: コードをここに記述してください。 document = null; } pnir = null; [VBScript] Option Explicit Dim pnir, document, id Set pnir = CreateObject("Sleipnir.API") id = pnir.GetDocumentID(pnir.ActiveIndex) Set document = pnir.GetDocumentObject(id) If document Is Nothing Then Call pnir.MessageBox("Document オブジェクトを作成できません") Else ' TODO: コードをここに記述してください。 Set document = Nothing End If Set pnir = Nothing サンプルが滅多に見つからない PerlScript*2*3 と HSP3*4 でもできたので参考程度に載せます。 [PerlScript] use Win32::OLE; my $pnir = Win32::OLE->CreateObject("Sleipnir.API"); my $id = ${pnir}->GetDocumentID(${pnir}->ActiveIndex); my $document = ${pnir}->GetDocumentObject($id); if(!($document)) { ${pnir}->MessageBox("Document オブジェクトを作成できません"); } else { # TODO: コードをここに記述してください。 undef($document); } undef($pnir); exit; [HSP3] newcom pnir, "Sleipnir.API" id = pnir("GetDocumentID", pnir("ActiveIndex")) document = pnir("GetDocumentObject", id) if varuse(document) = 0 { pnir->"MessageBox" "Document オブジェクトを作成できません" } else { ; TODO: コードをここに記述してください。 delcom document } delcom pnir end その他Sleipnirスクリプトに使用できる言語 †COMコンポーネントの呼び出しに対応している言語であれば使用できると思います。
|