Kuroda Software Service
起動引数とドロップ引数
  [サイトマップ]

コンテンツ内メニュー

表示モード 全項表示  部分表示



マークの色と認証の関係

一般公開

無料認証

購入認証


認証についての説明

無料アカウント作成フォーム

有料ページ購入フォーム


ほかのコンテンツトップページ

起動引数とドロップ引数

起動時の引数とウインドウへのドロップ引数を処理できます。

         起動時の引数とドロップ引数について

起動時の引数とは起動するアプリケーションへアイコンをドロップすることによって起動した場合の引数です。ウインドウへのドロップ引数は実行中のウインドウへアイコンをドロップされた場合の引数です。HTABOXコアではこの両者を同一仕様の文字列として扱う機能によりスマートな引数処理を行うことができます。

サンプルフォルダにあるDrop.jsは複数のアイコンをドロップして起動した場合も起動後にウインドウへアイコンをドロップした場合も引数として与えられたパスの数だけalertダイアログを表示します。(JSファイルへのアイコンドロップ起動の場合はHTABOX.EXEをレジストリ登録する必要があることに注意してください)

● 下記JScriptソースはDrop.jsとしてサンプルフォルダに存在します。

var WIN32;

//#define WIN32 //

WIN32 = new ActiveXObject("HTABOX.Application");

WIN32.ScriptFullName = WSH.ScriptFullName;

WIN32.Arguments = WSH.Arguments;

//#undef WIN32

var DIR = WIN32.GetScriptDirectory();

var HTA  = WIN32.CreateHtaWindow(DIR + "\\Button.htm");

var SCR  = HTA.Script;

var HWND = HTA.FraHwnd;

 

var arg = WIN32.CommandLineToStr();

if(arg != "") DispArgs(arg);

 

function DispArgs(arg)

{

    var Args = arg.replace(/^"|"$/g,"").split("\"\x20\"");

    for(var c = 0; c < Args.length; c++) SCR.alert(Args[c]);

}

function Drop(arg){DispArgs(arg);}

SCR.window.onFileDrop = Drop;

 

HTA.Show(); WIN32.WiteForWindowVisible(HWND);

WIN32.MsgBox("正常終了");

         Drop.jsの解説

WSH環境での引数はWSH.Argumentsですが内部環境ではGetCommandLine()から取得することになります。この環境差を吸収するためにWSH環境では事前に引数を報告する必要があります。//#define中のWIN32.Arguments = WSH.Arguments;がこれにあたります。

起動時の引数はWIN32.CommandLineToStr();を使います。GetCommandLine()には自身EXEのパスが含まれますがWIN32.CommandLineToStr();は引数のみを文字列で返します。

ウインドウへのドロップ引数はwindow.onFileDrop関数を定義することで取得します。この関数には文字列引数を用意してください。アイコンがドロップされると引数文字列にパスが文字列で報告されます。この時VBScriptの場合はWIN32.AddItem関数を使用しなければならないことに注意してください。

call WIN32.AddItem(SCR.window, "onFileDrop", GetRef("Drop"));

起動時、ウインドウへのドロップとも文字列の仕様を同一としています。引数は必ずダブルクォートされ複数の引数がある場合、ダブルクォートされた文字列の間にスペース(\x20)が挿入されます。したがって両者を配列として扱う場合の切断方法はサンプルのDispArgs関数で示すとおり

var Args = arg.replace(/^"|"$/g,"").split("\"\x20\"");

文字列全体の最初と最後のダブルクォートを除去しダブルクォート、スペース、ダブルクォートというパターンの文字列で切断した結果配列となります。

 

お問い合わせ
©クロダ ソフトウェア サービス programmed by hidebou