我正在做一個CiberCafe,我需要當用戶想要離開時,單擊退出按鈕時,機器將自動重新啓動。當您點擊一個按鈕時從網頁關閉系統
這個網絡我正在通過HTML,CSS,JavaScript和electron.js框架。
任何人都知道我可以關閉系統,當我點擊一個按鈕?
我正在做一個CiberCafe,我需要當用戶想要離開時,單擊退出按鈕時,機器將自動重新啓動。當您點擊一個按鈕時從網頁關閉系統
這個網絡我正在通過HTML,CSS,JavaScript和electron.js框架。
任何人都知道我可以關閉系統,當我點擊一個按鈕?
如果您使用Electron框架,您可以訪問的不僅僅是基本的html,js。
與需要關機
c:\windows\system32\shutdown -s -f -t 00 :: shutdown
:: c:\windows\system32\shutdown -r -t 00 :: restart
:: c:\windows\system32\shutdown /h :: hibernate
而在電子側的命令創建一個批處理文件:
var child = require('child_process').execFile;
var executablePath = "path_to_bat_file";
child(executablePath, function(err, data) {
if(err){
console.error(err);
return;
}
console.log(data.toString());
});
我已經將你的代碼包含在一個javascript函數中,並通過點擊一個按鈕來調用它,但什麼都不做 –
調試它!它不能'無所事事':)你的評論並沒有幫助我進一步幫助你:) – bluehipy
我已經做到了! 我看了一下物品檢查,發現它有語法錯誤。 謝謝你的幫助,使我匆匆救了我! –
由於安全原因,如果不在瀏覽器外部運行某些功能,這根本無法實現。
然而,如果頁面是由服務器提供的,你想關閉該服務器,請繼續閱讀:
這將是可能的解決方案是在後臺運行的服務器,例如node.js中
在你的node.js服務器上,你可以監聽你正在調用的特定url,在這個事件的觸發器上,你可以發送關機命令給你的主機。然而,這會造成一些安全問題,您需要阻止來自外部的此節點呼叫(或者如果您希望其他人能夠將其關閉)。而你的node.js服務器必須以root權限運行,這也是有風險的。
看看https://github.com/typicode/stop-server也許你可以在那裏找到對你有用的東西。
根據我的想法,您最好打賭的是download a .bat,它會關閉您的計算機並執行它。
<script type="text/javascript" language="javascript">
function RunFile() {
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
}
</script>
請注意,這隻適用於IE瀏覽器。
我不能說OP,但如果我正在運行網吧,我當然不希望啓用ActiveX。事實上,我甚至不會使用Windows。考慮到自2015年以來ActiveX尚未得到支持,而且IE現在已經死亡(其中11個將成爲最後一個版本),但它不會持續太久。此外,像我一樣,你錯過了OP所談論的用於構建桌面應用程序的電子框架,因此無需下載批處理文件,因爲該應用程序無論如何都在桌面上運行。 – ADyson
由於上述所有原因,瀏覽器不能在關機。但瀏覽器還可以通過其他方式請求受信任的應用程序關閉(或重新啓動)機器。
您將需要創建將運行在同一臺計算機上的服務器。您可以創建一個SimpleHTTPServer,它將等待某個端口上的http請求。
這個python服務器應該以適當的權限啓動,以便關閉機器。
現在,當您想從瀏覽器關閉機器時,只需發送一個HTTP請求,以便在正確的端口(到服務器)上進行環回。服務器將驗證請求(無論它是否來自適當的主機等),然後使用適當的系統特定命令os.system
繼續關閉機器。
您顯然也需要服務器在PC重新啓動時自動啓動。這可以很容易地實現,但取決於您的操作系統,您可以找到相同的資源。
希望這會有所幫助!
你不能從一個網頁做,因爲這種安全。如果_you_能夠做到這一點,用戶瀏覽的任何網頁都可以做到,而且您肯定不會想要這樣做。無論如何你並不需要重新啓動,你只需要開始一個新的登錄會話或其他東西。有一些免費的「互聯網亭」類型的應用程序/操作系統,你可以谷歌,也許其中一個將滿足您的需求。但這些都不是通過網頁可以完成的。 – ADyson
@ADyson可能他試圖用electron.js框架來包裝瀏覽器。 –
@HariDas好點我只是假設電子是另一個網頁GUI框架。但一個快速谷歌表明,它可以用來建立桌面應用程序。在這種情況下,應用程序可能會使其註銷,如果有正確的綁定可用於操作系統(我仍然會說它應該註銷,不重新啓動,不需要這樣做)。不熟悉這個框架我不能說比這更不幸。 – ADyson