簡體   English   中英

是否可以在 HTML 中的“onclick”上運行 .exe 或 .bat 文件

[英]Is it possible to run an .exe or .bat file on 'onclick' in HTML

是否可以使用 html5 按鈕事件運行 bat/可執行文件? 如果我沒有錯的話,在 IE 中它可以使用 Shell 對象實現。

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

format c:

每當您訪問他們的網站時。

這就是我所做的。 我想要在我們的網絡上設置 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。

當頁面本身通過file:///路徑打開時是可能的。

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

然而,當你把它放在網絡服務器上時(即使你通過http://localhost/訪問它),你會得到一個錯誤:

錯誤:拒絕從腳本訪問“file:///C:/Windows/notepad.exe”

您可以在帶有 OCX 組件的 Internet Explorer 和使用 chrome 擴展chrome 文檔的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

您不能運行/執行位於用戶本地計算機或通過站點的 .exe 文件。 用戶必須先下載exe文件,然后運行可執行文件。
所以沒有辦法

以下代碼僅在用戶機器中存在 EXE 時才有效。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM