ActiveScripting の例

JScript

<html>
<head>
<title>JScript の例</title>
</head>
<body>
<pre>
//
//=============================================================
//       ActiveScripting の例 (JScript)
//=============================================================
//       開いているすべてのドキュメントのファイル名が含まれているテーブルを表示します。
//       また、各ドキュメントが変更されているかどうか、
//       および、各ドキュメントが読み取り専用かどうかを調べます。
//=============================================================
function Main() {
    var newline = '\n';
    var br = '<br>';
    var tab = '\t';
    
    // Application オブジェクトへの参照を生成します。Application オブジェクトは、
    // HomeSite および ColdFusion Studio 内からのみ使うことができます。
    // 外部スクリプトから Application オブジェクトを生成するには、次のメソッドを使います。
CreateObject('AllaireClientApp.TAllaireClientApp') 
    var app = Application;
    
    // 現在のドキュメントのインデックスが返されるようにインデックスを保存します。
var nCurrentIdx = app.DocumentIndex;  
    // テーブルを起動します。
    var sTable = '<b><font color=Blue>開いているすべてのファイルの名前'
               + ' ドキュメント :</font></b>'
               + br + newline + br + newline
                  + '<table border=1 width=460>'
               + newline + '<tr>'
               + '<td><b>ドキュメント</b></td>'
               + '<td><b>変更済み</b></td>'
               + '<td><b>読み取り専用</b></td>'
               + '</tr>' + newline;

    // 開いているすべてのドキュメントをループ処理します (DocumentCount は 1 から始まり、
    // DocumentCache() は 0 から始まります)。
    for (idx = 0; idx < app.DocumentCount; idx++) {
         // ドキュメント名を取得します (関数例を使う)。
         fname = GetDisplayName(app.DocumentCache(idx).Filename);
         sTable = sTable + tab + '<tr><td>' + fname;
         sTable = sTable + '</td><td>';
         
         // このドキュメントが変更されているかどうかを調べます。
         if (app.DocumentCache(idx).Modified) 
sTable = sTable + 'Yes';
         sTable = sTable + '</td><td>';
         
         // このドキュメントが読み取り専用かどうかを調べます。
         if (app.DocumentCache(idx).ReadOnly)
sTable = sTable + 'Yes';
         
         // 行を閉じます。
         sTable = sTable + '</td></tr>' + newline;
    }
    sTable = sTable + newline + '</table>';

    // 新規ドキュメントを追加します。(False = 既定のテンプレートからは生成されません - 空白)
    app.NewDocument(false);
    
    // テーブルを挿入します (ActiveDocument は、上記で作成された
    // 新規ドキュメントになります)。
    app.ActiveDocument.InsertText(sTable, false);
    
    // ブラウズ モードに切り替えます。
    app.CurrentView = 2;
    
    // ユーザが編集モードに再び切り替えるまで待機します。
    while (app.CurrentView != 1) {
        // Wait は VBScript で DoEvents が使えなくなったことを埋め合わせるための Allaire 社独自のルーチンです。
        // インタフェースをロックすることなく、
        // 所定の時間 (ミリ秒単位) 停止します。
        app.Wait(100);
    }    
    
    // 当初のドキュメントに戻ります。
    app.DocumentIndex = nCurrentIdx;
    
    alert('Script Completed.');

// 関数呼び出し例
function GetDisplayName(fname) {
    if (fname == '')
       return '(untitled)'
    else
        return fname
}
</pre>
</body>
</html>

VBScript

<html>
<head>
    <title>VBScript の例</title>
</head>

<body>

<pre>

//=============================================================
// ファイルの情報が含まれているテーブルを表示します。
//============================================================
Sub Main  
    dim app
    dim idx
    dim sTable
    dim newline, fname, br, tab
    dim nCurrentIdx
    newline = chr(13) + chr(10)
    br = "<br>"
    tab = chr(9)
    
    ' Application オブジェクトへの参照を生成します。Application オブジェクトは、HomeSite  
    ' および ColdFusion Studio 内からのみ使うことができます。
   ' 外部スクリプトから Application オブジェクトを生成するには、次のメソッドを使います。
CreateObject("AllaireClientApp.TAllaireClientApp") 
    set app = Application
    
    ' 現在のドキュメントのインデックスが返されるように、インデックスを保存します。
nCurrentIdx = app.DocumentIndex 
    
    ' テーブルを起動します。
    sTable = "<b><font color=Blue>開いているすべてのテーブルの名前"_
           + "ドキュメント:</font></b>"_
           + br + newline + br + newline _
           + "<table border=1 width=460>"_
           + newline + "<tr>"_
           + "<td><b>ドキュメント</b></td>"_
           + "<td><b>変更済み</b></td>"_
           + "<td><b>読み取り専用</b></td>"_
           + "</tr>" + newline

    ' 開いているすべてのドキュメントをループ処理します (DocumentCount は 1 から始まり、
    ' DocumentCache() は 0 から始まります)。        
    for idx = 0 to app.DocumentCount - 1
         ' ドキュメント名を取得します (関数例を使う)。
         fname = GetDisplayName(app.DocumentCache(idx).Filename)        
         sTable = sTable + tab + "<tr><td>" + fname
         sTable = sTable + "</td><td>"
         
         ' このドキュメントが変更されたかどうかを調べます。
         if app.DocumentCache(idx).Modified then sTable = sTable + "Yes"
         sTable = sTable + "</td><td>"
         
         ' このドキュメントが読み取り専用であるかどうかを調べます。
         if app.DocumentCache(idx).ReadOnly then sTable = sTable + "Yes"
         
         ' 行を閉じます。
         sTable = sTable + "</td></tr>" + newline        
    next
    sTable = sTable + newline + "</table>"

    ' 新規ドキュメントを追加します (False = 既定のテンプレートからは生成されません - 空白)
    app.NewDocument(False)
    
    ' テーブルを挿入します (ActiveDocument は上記で作成された
    ' 新規ドキュメントになります)。
    app.ActiveDocument.InsertText sTable, False
    
    ' ブラウズ モードに切り替えます。
    app.CurrentView = 2    
    
    ' ユーザが編集モードに再び切り替えるまで待機します。
    while app.CurrentView <> 1
        ' Wait は、VBScript で DoEvents が使えなくなったことを埋め合わせるための
        ' Allaire 社独自のルーチンです。インタフェースをロックすることなく、
        ' 所定の時間 (ミリ秒単位) 待機します。
        app.Wait(100)
    wend
    
    ' 当初のドキュメントに戻ります。
    app.DocumentIndex = nCurrentIdx
    
    MsgBox "スクリプト完成"    
    
    ' 参照を開放します。
    set app = nothing    
End Sub

' 関数例
function GetDisplayName(fname)
    if fname = "" then 
       GetDisplayName = "(untitled)"
    else
        GetDisplayName = fname
    end if
end function
</pre>

</body>
</html>