2013-09-24 57 views
26

可以使用html5按鈕事件運行bat/executable文件嗎?在IE中,如果我沒有錯,可以使用Shell對象實現。是否可以在HTML中的'onclick'上運行.exe或.bat文件

+1

請參閱此鏈接[如何使用執行本地文件HTML Application?](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頁面,所以我不必導航到各種文件夾來安裝或升級我們的應用程序。所以我所做的就是建立在我們的「共享」一個.bat文件驅動,每個人都可以訪問,在.bat文件我有這樣的代碼:

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

的HTML代碼爲:

<input type="button" value="Launch Installer" onclick="window.open('file:///S:Test/Test.bat')" /> 

(確保你的斜槓是正確的,我有他們的另一種方式,它不工作)

我更喜歡直接啓動EXE,但這是不可能的,但.bat文件讓我在附近。希望它在FF或Chrome中工作,但只有IE。

+0

親愛的@Chuff如果bat文件有一個註冊命令,我的意思是...... REG ADD「HKCU \ Software \ ...」 –

25

不,這將是一個巨大的安全漏洞。想象一下,如果有人可以跑

format c: 

每當你瀏覽他們的網站。

+0

這是正確的,但我在同一時間笑...:D – aswzen

18

當頁面本身通過file:///路徑打開時,可能會發生這種情況。

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

但是,你把它放在一個網絡服務器(即使你通過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

親愛的@coolprarun如果我在用戶的機器上有一個bat文件,我如何使用javascript或者其他的方式在Chrome中運行bat文件?我可以通過ActiveXObject在IE瀏覽器中完成,但是這個對象不適用於chrome。 –

4

您可以OCX組件和chrome瀏覽器使用的是Chrome擴展在任何情況下 chrome document 做在Internet Explorer需要在客戶端系統上的其他設置!

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 
相關問題