2013-09-24 124 views
26

html5ボタンイベントを使用してバット/実行可能ファイルを実行することは可能ですか?私は間違っていない場合はIEのシェルオブジェクトを使用して達成可能です。HTMLの 'onclick'に.exeまたは.batファイルを実行することは可能ですか

+1

このリンクを参照してください。[使用してローカルファイルを実行する方法HTMLアプリケーション?](http://www.codeproject.com/Articles/113678/How-to-execute-a-Local-File-using-HTML-Application) – coolprarun

+0

@coolprarun私が提供しているリンクが自分の環境で動作することを確認しました( 'Win8.1'、' IE11')。 FF27ではなく)。回答として投稿する必要があります。 – IsaacS

答えて

18

ここに私がやったことです。私は私たちのネットワーク上でHTMLページをセットアップしたかったので、私たちのアプリをインストールまたはアップグレードするために様々なフォルダに移動する必要はありませんでした。

start /d "\\server\Software\" setup.exe 

HTMLコードはでした:

<input type="button" value="Launch Installer" onclick="window.open('file:///S:Test/Test.bat')" /> 
だから何私がやったことは、セットアップは、私はこのコードを持っていた.batファイルでは、誰もがアクセスできるドライブ私たちの「共有」での.batファイルでした

(スラッシュが正しいことを確認してください。私はそれらを別の方法で持っていて動作しませんでした)

EXEを直接起動することをお勧めしましたが、これはできませんでしたが、.batファイルによって回避できます。それがFFかChromeで動作することを願っていますが、IEのみです。

+0

親愛なる@Chuff batファイルに登録コマンドがある場合、 'REG ADD" HKCU \ Software \ ... "のようなsthを意味します。 –

25

いいえ、それは巨大なセキュリティ違反です。あなたは自分のウェブサイトをvistedいつでも誰かが

format c: 

を実行することができれば想像してみてください。

+0

これは正しいですが、私は同時に笑います...:D – aswzen

18

ページ自体がfile:///パス経由で開かれている可能性があります。

<button onclick="window.open('file:///C:/Windows/notepad.exe')"> 
    Launch notepad 
</button> 

しかし、あなたはWebサーバ上に置く(あなたはhttp://localhost/経由でアクセスした場合でも)、あなたがエラーを取得する瞬間:

Error: Access to 'file:///C:/Windows/notepad.exe' from script denied

+0

+1これはIE11で動作することが確認されましたが、Win8.1ではFirefox 27では動作しません。 – IsaacS

+1

@IsaacS Windows 8のボックスにアクセスできないので残念ながら私はそれを手伝ってはいけません。私はWindows 7のFirefox 28でこれをもう一度試してみましたが、それが機能するので、追加のセキュリティはおそらくWindows 8に限定されています。 – Stijn

+2

これはnotepad.exeを "ダウンロード"することができます。 Firefox 31、Windows 7 – nodiscc

1

あなたは.exeファイルを実行/実行することはできませんそれはユーザーのローカルマシンまたはサイトを介して行われます。ユーザーはまずexeファイルをダウンロードしてから、実行可能ファイルを実行する必要があります。
可能な方法はありません

次のコードは、EXEがユーザーのマシンに存在する場合にのみ機能します。

<a href = "C:\folder_name\program.exe">

+0

ユーザーのマシンにbatファイルがあると@coolprarunになるのですが、javascriptやsth elseを使用してchromeでbatファイルを実行するにはどうしたらいいですか?私はActiveXObjectを介してIEのブラウザでそれを行うことができますが、このオブジェクトはクロムには適用されません。 –

4

あなたは、クライアント・システム上の追加設定を必要とするどのような場合にはChromeの拡張機能 chrome document を使用してOCXコンポーネントで、インターネットエクスプローラでそれを行うと、Chromeブラウザ上ですることができます! Chrome拡張機能のソースの

重要な部分:

var port = chrome.runtime.connectNative("your.app.id"); 
     port.onMessage.addListener(onNativeMessage); 
     port.onDisconnect.addListener(onDisconnected); 
     port.postMessage("send some data to STDIO"); 

許可ファイル:

{ 
     "name": "your.app.id", 
     "description": "Name of your extension", 
     "path": "myapp.exe", 
     "type": "stdio", 
     "allowed_origins": [ 
      "chrome-extension://IDOFYOUREXTENSION_lokldaeplkmh/" 
     ] 
} 

およびWindowsレジストリの設定:

HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\your.app.id 
REG_EXPAND_SZ : c:\permissionsettings.json 
関連する問題