2015-11-10 68 views
1

我有基於Web的應用程序,它自動加載在客戶端的計算機上的鉻瀏覽器上的Kiosk模式(全屏),這是由Windows 7支持的。我想在網頁上放置一個關機按鈕,所以該用戶可以直接關閉電腦。關閉計算機通過網頁

  • 是否有可能實現這一目標?
  • 什麼是 Windows & Linux的最佳解決方案?

-P.S-

我已經在客戶的計算機完全控制。 (安裝其他軟件或瀏覽器擴展)。它是一個觸摸屏POS單元。

回答

5

由於您可以控制目標機器,所以這是完全可行的。一種方法是通過引入一個單獨的組件來執行關閉。

  1. 創建監聽標準輸入一個控制檯應用程序(使用C#,例如),當它接收到右輸入用於關閉機器。從C#機器關機並不是完全無關緊要的,但Stackoverflow knows how it is done

  2. 註冊該應用程序與給定的Google Chrome Native Messaging specification適當的清單。使用Message Passing

  3. 調用此擴展名從你的網頁(上shutdownButton.click(),例如)。

的各個步驟都有點過於寬泛全面詳細介紹它們在一個單一的答案,但你總是可以打開他們新的問題,如果他們給你帶來任何麻煩。

1

您沒有從WEB頁面直接訪問客戶端的計算機,這是不可能的。 您只能訪問瀏覽器,但它非常有限。

只能使用window.close()關閉窗口選項卡。瞭解更多關於在這裏 - https://developer.mozilla.org/en-US/docs/Web/API/Window/close

+2

window.close只有在用戶操作觸發時纔會起作用,例如點擊。你應該在你的帖子中提及。 –

2

由於安全的原因,這是根本不可能沒有你的瀏覽器外運行的東西。

然而,如果頁面是由服務器提供的,你想關閉該服務器,請繼續閱讀:

這將是可能的解決方案是在後臺運行的服務器,例如node.js中你可以聽你所撥叫特定的URL

在您的Node.js服務器,在此事件的觸發,你可以發送關機命令到您的主機。然而,這會造成一些安全問題,您需要阻止來自外部的此節點呼叫(或者如果您希望其他人能夠將其關閉)。而你的node.js服務器必須以root權限運行,這也是有風險的。

看看https://github.com/typicode/stop-server也許你可以在那裏找到對你有用的東西。

2

你最好的選擇,只要我能想到的將是下載一個.BAT,將關閉您的計算機並執行它,但除了IE我不知道是否會工作。

<script type="text/javascript" language="javascript"> 
    function RunFile() { 
    WshShell = new ActiveXObject("WScript.Shell"); 
    WshShell.Run("c:/windows/system32/notepad.exe", 1, false); 
    } 
</script> 

沿着這些線,運行您以前下載的.bat文件而不是記事本。請注意,這隻適用於IE。