- ベストアンサー
ローカルのHTMLからexeファイルを起動する方法
- 質問者はローカルのHTMLからexeファイルを起動したいと考えています。現在、CD内にFlashで作成したexeファイルがあり、1)のメニュー内のボタンを押すと同じCD内にあるexeファイルが起動します。また、CD内にはHTMLファイルや画像などのコンテンツもあり、これらも1)のメニュー内から起動できます。質問者はHTMLで同じ機能を実現したいと考えていますが、ローカルのexeファイルを起動すると警告ダイアログが表示されるため、一発で起動できる方法を知りたいとしています。
- 質問者はHTML、PHP、JavaScript、Java、VBを扱えると述べています。質問者ができる範囲で機能を実装したいと考えているため、VC++などでexeファイルを作成する必要があるのか疑問に思っています。質問者に対して、HTMLからローカルのexeファイルを起動する方法について具体的なアドバイスをお願いします。
- みんなの回答 (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のインスタンスを消去するためです。
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
HTAアプリとして、メニューをhtmlで記述して、JscriptでActiveXでWscriptShellオブジェクトを介して.exeファイルを起動するか、exeファイルをCOMMインターフェースが使えるように作ってあれば、ActiveXを介して直接操作可能と思いますが、現状のIEだと、どうしても一回は警告メッセージが出る見たいです。 JavaやVBが扱えるならそれでメニュー作った方が、良いと思います。現在は、WindowsだからといってIEを標準ブラウザーに選んでいる人は少ないです。(私の家ではですが..)
お礼
ご回答ありがとうございます。 試してみたところ、IEだと動きそうですがそれ以外のブラウザだとダメみたいですね。