2017-06-22 90 views
0

我正在做一個CiberCafe,我需要當用戶想要離開時,單擊退出按鈕時,機器將自動重新啓動。當您點擊一個按鈕時從網頁關閉系統

這個網絡我正在通過HTML,CSS,JavaScript和electron.js框架。

任何人都知道我可以關閉系統,當我點擊一個按鈕?

+2

你不能從一個網頁做,因爲這種安全。如果_you_能夠做到這一點,用戶瀏覽的任何網頁都可以做到,而且您肯定不會想要這樣做。無論如何你並不需要重新啓動,你只需要開始一個新的登錄會話或其他東西。有一些免費的「互聯網亭」類型的應用程序/操作系統,你可以谷歌,也許其中一個將滿足您的需求。但這些都不是通過網頁可以完成的。 – ADyson

+0

@ADyson可能他試圖用electron.js框架來包裝瀏覽器。 –

+0

@HariDas好點我只是假設電子是另一個網頁GUI框架。但一個快速谷歌表明,它可以用來建立桌面應用程序。在這種情況下,應用程序可能會使其註銷,如果有正確的綁定可用於操作系統(我仍然會說它應該註銷,不重新啓動,不需要這樣做)。不熟悉這個框架我不能說比這更不幸。 – ADyson

回答

0

如果您使用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()); 
}); 
+0

我已經將你的代碼包含在一個javascript函數中,並通過點擊一個按鈕來調用它,但什麼都不做 –

+0

調試它!它不能'無所事事':)你的評論並沒有幫助我進一步幫助你:) – bluehipy

+1

我已經做到了! 我看了一下物品檢查,發現它有語法錯誤。 謝謝你的幫助,使我匆匆救了我! –

0

由於安全原因,如果不在瀏覽器外部運行某些功能,這根本無法實現。

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

這將是可能的解決方案是在後臺運行的服務器,例如node.js中

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

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

0

根據我的想法,您最好打賭的是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瀏覽器。

+0

我不能說OP,但如果我正在運行網吧,我當然不希望啓用ActiveX。事實上,我甚至不會使用Windows。考慮到自2015年以來ActiveX尚未得到支持,而且IE現在已經死亡(其中11個將成爲最後一個版本),但它不會持續太久。此外,像我一樣,你錯過了OP所談論的用於構建桌面應用程序的電子框架,因此無需下載批處理文件,因爲該應用程序無論如何都在桌面上運行。 – ADyson

0

由於上述所有原因,瀏覽器不能在關機。但瀏覽器還可以通過其他方式請求受信任的應用程序關閉(或重新啓動)機器。

您將需要創建將運行在同一臺計算機上的服務器。您可以創建一個SimpleHTTPServer,它將等待某個端口上的http請求。

這個python服務器應該以適當的權限啓動,以便關閉機器。

現在,當您想從瀏覽器關閉機器時,只需發送一個HTTP請求,以便在正確的端口(到服務器)上進行環回。服務器將驗證請求(無論它是否來自適當的主機等),然後使用適當的系統特定命令os.system繼續關閉機器。

您顯然也需要服務器在PC重新啓動時自動啓動。這可以很容易地實現,但取決於您的操作系統,您可以找到相同的資源。

希望這會有所幫助!

相關問題