jscript

【入門編】QTTabBarで使ったjscriptについて解説

はじめに

QTTabBarのアプリケーションランチャを使うで見たjscriptの意味がわからない。

という人向けの内容です。

進め方としてまずは【QTTabBar】アプリケーションランチャをつかうでご覧いただいたスクリプトを表示し、1行(またはまとまり毎)に解説をしていこうと思います。

一般的には扱わない、QTTabBarで定義されたオブジェクトやメソッドにはこのように色をつけて明示する事とします。

ふくろう
ふくろう
それではいきましょう。
jscript入門
  1. おさらい
  2. 解説

おさらい

前回ご覧頂いたスクリプトは以下になります。
動作としては選択したファイルのパスを取得してクリップボードにコピーするというものです。

aa.js

L. 1:var qs = new ActiveXObject( “QTTabBarLib.Scripting” );
L. 2:var wnd = qs.FocusedWindow;
L. 3:if( wnd )
L. 4:{
L. 5: var sel = wnd.selectedItems;
L. 6: var str = “”;
L. 7: var fso = new ActiveXObject( “Scripting.FileSystemObject” );
L. 8: var path = sel.Item();
L. 9: str = fso.GetAbsolutePathName( path );
L.10: wnd.InvokeCommand( “SetClipboard”, str );
L.11:}

解説

  • L. 1
    おまじない

    var qs = new ActiveXObject( “QTTabBarLib.Scripting” );

    QTTabBarでjscriptを使う為のお作法です。
    qsという変数を作ってその変数でQTTabBarの機能を使おう、という感じです。

  • L. 2, 3, 4,11
    正常処理

    var wnd = qs.FocusedWindow;
    if( wnd )
    {
    }

    wndという変数を作ってその変数経由でキーボードフォーカスを持った Window オブジェクトの機能を使います。
    他アプリやウィンドウがフォーカスを持っているとnullが帰ってくるのでnull以外の時に処理するようにしています。

  • L. 5
    選択ファイルのパス取得

    var sel = wnd.selectedItems;

    フォルダのビューで選択されているアイテムを QCollection オブジェクト として取得します。
    selという変数を作ってその変数経由でパスを取得しよう、という事です。

  • L. 6
    パスを入れる変数の初期化

    var str = “”;

    急に出てきましたが、パスを取得出来たら変数に入れたいのでその準備です。

  • L. 7
    ファイルパスを取得できるオブジェクトを呼び出す

    var fso = new ActiveXObject( “Scripting.FileSystemObject” );

    FileSystemObjectとは、ファイルシステムへのアクセスを提供するオブジェクトです。
    VBA等でもパスを取得する時等で呼び出すので知っている人も多いかと思います。

  • L. 8
    オブジェクト取得

    var path = sel.Item();

    インデックスを指定してオブジェクトを取得します。省略した時は0です。
    QCollectionオブジェクトの0番目のオブジェクトを取得しています。

    (選択するファイルは1個の想定で作っています。)

  • L. 9
    絶対パスを取得する

    str = fso.GetAbsolutePathName( path );

    先ほど取得したQCollectionの9番目のオブジェクトの絶対パスを取得し、strに設定します。

  • L.10
    クリップボードにコピー

    wnd.InvokeCommand( “SetClipboard”, str );

    先ほど取得した絶対パスをクリップボードにコピーします。

前回のリンクは以下になりますので、ご覧いただければと思います。
【中級者向け】QTTabBarのアプリケーションランチャを使う

さいごに

いかがでしたでしょうか。
以前公開したスクリプトの説明を行いました。
別途デスクトップで動くjscriptやサクラエディタで動くjscript等についてもご紹介できたら、と思います。

以上参考になればうれしいです。

最後までお読みいただき、ありがとうございました。