QTTabBarのアプリケーションランチャを使うで見たjscriptの意味がわからない。
という人向けの内容です。
進め方としてまずは【QTTabBar】アプリケーションランチャをつかうでご覧いただいたスクリプトを表示し、1行(またはまとまり毎)に解説をしていこうと思います。
一般的には扱わない、QTTabBarで定義されたオブジェクトやメソッドにはこのように色をつけて明示する事とします。
おさらい
前回ご覧頂いたスクリプトは以下になります。
動作としては選択したファイルのパスを取得してクリップボードにコピーするというものです。
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等についてもご紹介できたら、と思います。
以上参考になればうれしいです。
最後までお読みいただき、ありがとうございました。