MarineProjects/MarineToolbar/Developer

スクリプト開発 bookmark

スクリプトは、スクリプトプラグインから実行されます。
スクリプトプラグインは、スクリプトに対して、ScriptHelperオブジェクトを提供します。
スクリプトからは、ScriptHelperオブジェクトが実装するプロパティやメソッドを操作してInternet Explorerのオブジェクトへのアクセスや制御、その他の処理を実装できます。

Marineツールバーに同梱しているスクリプトを参考にすると理解しやすくなると思います。

  • スクリプトでは、Windowsが提供する各種COMオブジェクトも利用できます。

スクリプトファイルの拡張子 bookmark

スクリプトプラグインは、JScriptとVBScriptをサポートしています。
どちらのスクリプト言語で記述されているかの判断は、スクリプトファイルの拡張子で判断されます。
拡張子が正しく指定されていない場合は正常に動作しませんので、お気をつけください。

  • JScriptの場合:js
  • VBScriptの場合:vbs

Windows Scripting Hostとの違い bookmark

スクリプトプラグインで実行されるスクリプトは、Windows Scripting Hostでの実行とは異なる独自の環境で実行されます。
これは、WScript.exeやCScript.exeで実行されたものとは異なるということです。
実行環境の違いにより、Windows Scripting Hostで実行された場合に利用できるオブジェクトが利用できないことがあります。

以下に注意事項を明記してありますので、スクリプトを記述する場合はご注意ください。

  • Windows Script HostのオブジェクトモデルのルートオブジェクトWScriptの利用
    • WScriptオブジェクトは Windows Script Host のオブジェクト モデル階層のルート オブジェクトです。このWScriptオブジェクトは、WScript.exeやCScript.exeの実行環境下では、インスタンス化すること無く利用することができます。つまり、WScript.exeやCScript.exeがWScriptオブジェクトをインスタンス化して、スクリプトが利用できるようにしているためです。
      スクリプトプラグインでは、WScriptをインスタンス化することはできないため、直接WScriptを利用することもインスタンス化して利用することもできません。
      (WScriptオブジェクトのメソッド、プロパティは利用できません。)
  • 利用可能なWindows Script Hostのオブジェクト
    • 直接インスタンス化可能なオブジェクトは次節で説明する「COMオブジェクトのインスタンス化」で説明する方法を使って利用することが可能です。
    • ただし、WScriptオブジェクトのプロパティやメソッドを経由してしか取得できないオブジェクトは利用することができません。
      例:WshArguments、WshEnvironment、WshNamed、WshUnnamed
  • COMオブジェクトのインスタンス化
    • スクリプトからはオートメーションを実装したCOMオブジェクトをインスタンス化して、利用することが可能です。
      COMオブジェクトをインスタンス化するにはいくつか方法がありますが、WScriptが利用できないため、WScript.CreateObjectメソッドが利用できません。
    • 代替方法
      • VBScript:CreateObject
        例:Set obj = CreateObject("WScript.Shell")
  • JScript:ActiveXObject
    例:obj = new ActiveXObject("WScript.Shell");
  • ScriptHelperオブジェクト
    • WScriptオブジェクトは利用できませんが、スクリプトプラグインにはインスタンス化する必要なく利用できるScriptHelperオブジェクトがあります。
      ScriptHelperオブジェクトは、Internet Explorerを制御するのに利用できる便利なプロパティやメソッドが実装されています。

ScriptHelperオブジェクト bookmark

プロパティ bookmark

  • browser
    • 概要
      Marineツールバーが実行されているInternet ExplorerのIWebBrowser2インターフェース
  • documents
    • 概要
      IHTMLDocument2インターフェースのコレクション
  • searchText
    • 概要
      検索ボックスに入力された文字列
  • selectText
    • 概要
      ページ中で選択された文字列
  • selectTextEx
    • 概要
      ページ中で選択された文字列から改行・復帰コードを除いた文字列

メソッド bookmark

  • void MessageBox(string messege, string title)
    • 概要
      引数に指定されたメッセージとタイトルでメッセージボックスを表示します。
    • 引数
      • message
        メッセージボックスに表示する文字列
      • title
        メッセージボックスのタイトル文字列
  • 戻り値
    • なし
  • 備考
    主にスクリプトを開発しているときのデバッグメッセージに利用されることを想定しています。
    ユーザーへの問い合わせなどは、IHTMLWindow::promptをご利用ください。

  • boolen IsBusy(object Dispatch)
    • 概要
      指定されたIWebBrowser2がWebページを読み込み中かチェックします
    • 引数
      • Dispatch
        チェックするIWebBrowser2
    • 戻り値
      • boolen
        true : 読み込み中
        false : 読み込み完了(未読み込み中)

  • boolen WaitDownloadComplete(object Dispatch, long TimeOut)
    • 概要
      指定されたIWebBrowser2がWebページの読み込みを完了するまでウェイトします
    • 引数
      • Dispatch
        チェックするIWebBrowser2
      • TimeOut
        タイムアウト時間(秒で指定)
    • 戻り値
      • boolen
        true : 読み込み完了
        false : 読み込みが完了する前にタイムアウトした

  • void Sleep(long Time)
    • 概要
      指定された秒数ウェイトします
    • 引数
      • Time
        ウェイト時間(秒で指定)
    • 戻り値
      • なし

  • void Beep()
    • 概要
      ビープ音を鳴らします
    • 引数
      • なし
  • 戻り値
    • なし

  • string GetProfileString(string AppName, string KeyName)
    • 概要
      スクリプトプラグインが管理するデータファイルからデータを取得します
    • 引数
      • AppName
        スクリプトが管理するセクション名
      • KeyName
        データを格納するキー名
    • 戻り値
      • string
        読み込んだ文字列
        データが存在しない場合はから文字列("")

  • void SetProfileString(string AppName, string KeyName, string value)
    • 概要
      スクリプトプラグインが管理するデータファイルにデータを保存します
    • 引数
      • AppName
        スクリプトが管理するセクション名
      • KeyName
        データを格納するキー名
    • 戻り値
      • なし

  • boolen Authenticate(string URL, string UserName, string Password)
    • 概要
      BASCI認証を行います。
    • 引数
      • URL
        認証する先のURL
      • UserName
        ユーザー名
      • Password
        パスワード
    • 戻り値
      • 認証の結果(true:成功、false:失敗)