我有基於Web的應用程序,它自動加載在客戶端的計算機上的鉻瀏覽器上的Kiosk模式(全屏),這是由Windows 7支持的。我想在網頁上放置一個關機按鈕,所以該用戶可以直接關閉電腦。關閉計算機通過網頁
- 是否有可能實現這一目標?
- 什麼是 Windows & Linux的最佳解決方案?
-P.S-
我已經在客戶的計算機完全控制。 (安裝其他軟件或瀏覽器擴展)。它是一個觸摸屏POS單元。
我有基於Web的應用程序,它自動加載在客戶端的計算機上的鉻瀏覽器上的Kiosk模式(全屏),這是由Windows 7支持的。我想在網頁上放置一個關機按鈕,所以該用戶可以直接關閉電腦。關閉計算機通過網頁
-P.S-
我已經在客戶的計算機完全控制。 (安裝其他軟件或瀏覽器擴展)。它是一個觸摸屏POS單元。
由於您可以控制目標機器,所以這是完全可行的。一種方法是通過引入一個單獨的組件來執行關閉。
創建監聽標準輸入一個控制檯應用程序(使用C#,例如),當它接收到右輸入用於關閉機器。從C#機器關機並不是完全無關緊要的,但Stackoverflow knows how it is done。
註冊該應用程序與給定的Google Chrome Native Messaging specification適當的清單。使用Message Passing
調用此擴展名從你的網頁(上shutdownButton.click(),例如)。
的各個步驟都有點過於寬泛全面詳細介紹它們在一個單一的答案,但你總是可以打開他們新的問題,如果他們給你帶來任何麻煩。
您沒有從WEB頁面直接訪問客戶端的計算機,這是不可能的。 您只能訪問瀏覽器,但它非常有限。
只能使用window.close()
關閉窗口選項卡。瞭解更多關於在這裏 - https://developer.mozilla.org/en-US/docs/Web/API/Window/close
由於安全的原因,這是根本不可能沒有你的瀏覽器外運行的東西。
然而,如果頁面是由服務器提供的,你想關閉該服務器,請繼續閱讀:
這將是可能的解決方案是在後臺運行的服務器,例如node.js中你可以聽你所撥叫特定的URL
在您的Node.js服務器,在此事件的觸發,你可以發送關機命令到您的主機。然而,這會造成一些安全問題,您需要阻止來自外部的此節點呼叫(或者如果您希望其他人能夠將其關閉)。而你的node.js服務器必須以root權限運行,這也是有風險的。
看看https://github.com/typicode/stop-server也許你可以在那裏找到對你有用的東西。
你最好的選擇,只要我能想到的將是下載一個.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。
window.close只有在用戶操作觸發時纔會起作用,例如點擊。你應該在你的帖子中提及。 –