こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ローカルのHTMLからexeファイルを起動したい

とあるシステム?の修正を頼まれています。
現在の仕様は以下になります。

1)CD内にFlashで作成したexeファイル自動実行。
2) 1)のメニュー内のボタンを押すと、同じCD内にあるexeファイルを起動する。
3)CD内にはhtmlファイルや画像等のコンテンツもあり、それらも1)のメニュー内から起動可能。

この1)をHTMLで作成したいのですが、2)のローカル内にあるexeを起動させることは可能なのでしょうか?試してみたところ、警告ダイアログ等が出てしまいます。PC初心者も対象にしているものなので、できれば一発で起動できるようにしたいです。
やはりVC++等でexeファイルを作成しないとダメでしょうか?

自分が扱えるのはHTML、PHP、Javascript、Java、VBなので、できればこの中で作成出来ればいいのですが…。
ご教授お願いします。

投稿日時 - 2010-12-23 17:19:44

QNo.6402769

すぐに回答ほしいです

質問者が選んだベストアンサー

>この1)をHTMLで作成したいのですが
#1さんの言うようにHTAにしては如何でしょう。
拡張子を.htaにするだけです。
>ローカル内にあるexeを起動させる~
可能です。尚、Exploreの「開く」と同じ操作は
以下のようにすれば可能です。

/**
* ファイルを関連付けられているアプリケーションで開く
* @param ファイル名 対象ファイルのパス名
* @return インスタンス 32未満なら失敗
*/
function 開く(ファイル名) {
  var vbs = new ActiveXObject("ScriptControl");
  vbs.Language = "VBScript";
  vbs.ExecuteStatement("Dim A");
  vbs.ExecuteStatement("Set A=CreateObject(\"Excel.Application\")");
  var 戻り値 = vbs.Eval("A.ExecuteExcel4Macro(\"CALL("
        + "\"\"SHELL32\"\","
        + "\"\"ShellExecuteA\"\","
        + "\"\"JJJCJJJ\"\","
        + "0,0,\"\"" + ファイル名 + "\"\",0,0,1"
        + ")\")");
  vbs.ExecuteStatement("A.Quit");
  vbs.ExecuteStatement("Set A=Nothing");
  vbs.Reset();
  return 戻り値;
}

**** 使用例 ****

var 結果 = 開く("D:\\hoge.jpg");
if ( 結果<32 ) alert("ファイルを開けません");

何でJavaScript内でVBScriptを実行させているかと言うと、
Excelのインスタンスを消去するためです。

投稿日時 - 2010-12-24 13:00:02

お礼

ご回答ありがとうございます。

試してみたところ、IEだと動きそうですがそれ以外のブラウザだとダメみたいですね。

投稿日時 - 2011-01-02 18:32:30

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

 HTAアプリとして、メニューをhtmlで記述して、JscriptでActiveXでWscriptShellオブジェクトを介して.exeファイルを起動するか、exeファイルをCOMMインターフェースが使えるように作ってあれば、ActiveXを介して直接操作可能と思いますが、現状のIEだと、どうしても一回は警告メッセージが出る見たいです。

 JavaやVBが扱えるならそれでメニュー作った方が、良いと思います。現在は、WindowsだからといってIEを標準ブラウザーに選んでいる人は少ないです。(私の家ではですが..)

投稿日時 - 2010-12-24 09:24:16

あなたにオススメの質問