プロが教える店舗&オフィスのセキュリティ対策術

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

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

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

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

A 回答 (2件)

>この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のインスタンスを消去するためです。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2011/01/02 18:32

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



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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています