Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Extension開発にて、javascript 上から外部実行形式(.exe)をキックさせる方法はあるのでしょうか?

お世話になっております。

Qlik Senseについてご教示願います。

QlikView の ”シートオブジェクト” > ”ボタン” のような機能は、今後Qlik Senseに追加されるのでしょうか?

現状Extension開発にて対応している部分もありますが、基本 javascript から外部実行形式(.exe)をキックすることが出来ず、

要求はあるが、実現出来ないでいる部分があります。

または、javascript 上から外部実行形式(.exe)をキックさせる方法はあるのでしょうか?

Labels (3)
1 Solution

Accepted Solutions
tts
Employee
Employee

こんにちは。

IE限定であれば、ActiveXObjectとWindows Script Host(WSH)の組み合わせで、イスントール済みの.exeを起動できると思います。

ただし、IEのセキュリティ設定で「スクリプトを実行しても安全だとマークされていないActiveXコンポートネント」の設定を変更する必要がある場合があります。

以下は、メモ帳を起動する例です。

--------

function execute() {

  var wsh = new ActiveXObject("WScript.Shell");

  wsh.run("Notepad.exe");

}

define([],

function () {

  return {

    paint: function ($element) {

      $element.html( '<input type="button" value="execute" onclick="execute();">' );

    }

  };

});

--------

または、IE/Chrome/Firefoxでも利用可能な方法として、クライアントPC側のレジストリの設定が必要になりますが、「カスタムURLスキーム」というものを使用して、決められた.exeの起動が可能だと思います。(※あるアプリケーション(.exe)をインストーラでインストールする場合には、そのいインストーラでカスタムURLスキームの登録も行えば良いでしょう)

以下は、note:xxxxx というプロトコルで、既定の.exeを起動する例です。

http://garafu.blogspot.jp/2014/02/url.html の例を参考にしてみてください。

--------

define([],

function () {

  return {

    paint: function ($element) {

      $element.html( '<a href="note:sample.txt" target="_blank">note</a>' );

    }

  };

});

--------

View solution in original post

2 Replies
tts
Employee
Employee

こんにちは。

IE限定であれば、ActiveXObjectとWindows Script Host(WSH)の組み合わせで、イスントール済みの.exeを起動できると思います。

ただし、IEのセキュリティ設定で「スクリプトを実行しても安全だとマークされていないActiveXコンポートネント」の設定を変更する必要がある場合があります。

以下は、メモ帳を起動する例です。

--------

function execute() {

  var wsh = new ActiveXObject("WScript.Shell");

  wsh.run("Notepad.exe");

}

define([],

function () {

  return {

    paint: function ($element) {

      $element.html( '<input type="button" value="execute" onclick="execute();">' );

    }

  };

});

--------

または、IE/Chrome/Firefoxでも利用可能な方法として、クライアントPC側のレジストリの設定が必要になりますが、「カスタムURLスキーム」というものを使用して、決められた.exeの起動が可能だと思います。(※あるアプリケーション(.exe)をインストーラでインストールする場合には、そのいインストーラでカスタムURLスキームの登録も行えば良いでしょう)

以下は、note:xxxxx というプロトコルで、既定の.exeを起動する例です。

http://garafu.blogspot.jp/2014/02/url.html の例を参考にしてみてください。

--------

define([],

function () {

  return {

    paint: function ($element) {

      $element.html( '<a href="note:sample.txt" target="_blank">note</a>' );

    }

  };

});

--------

Not applicable
Author

ご教示 ありがとうございます。

試してみます。