2017-06-22 10 views
0

CiberCafeをやっているときに退室したいときに、終了ボタンをクリックすると、マシンが自動的に再起動される必要があります。ボタンをクリックするとWebページからシステムがシャットダウンする

このウェブサイト私はhtml、css、javascript、electron.jsフレームワークを通してやっています。

ボタンをクリックしたときにシステムの電源を切る方法を知っている人はいますか?

+2

はあなたがあるため、セキュリティのWebページからこれを行うことはできません。もしあなたがそれを行うことができれば、ユーザが閲覧するウェブページはそれを行うことができ、あなたはそれを望んでいないでしょう。とにかく再起動する必要はありません。新しいログオンセッションなどを開始するだけです。そこにいくつかの無料の "インターネットキオスク"タイプのアプリケーション/オペレーティングシステムがありますが、おそらくそれらの1つは、あなたのニーズに合うだろう。しかし、これはあなたがウェブページを介して行うことができるものではありません。 – ADyson

+0

@ADysonおそらく、彼は内部にブラウザをラップするelectron.jsフレームワークでこれをしようとしています。 –

+0

@HariDas良い点私は電子がまだ別のWeb GUIフレームワークであると仮定しました。しかし、迅速なGoogleは、それがデスクトップアプリケーションを構築するために使用できることを示唆している。この場合、アプリケーションはO/Sで使用可能な正しいバインディングがあればログアウトする可能性があります(ログアウトする必要があり、再起動しない、そうする必要はないと言います)。フレームワークに精通しているわけではありませんが、残念なことにそれ以上のことは言えません。 – ADyson

答えて

0

エレクトロンフレームワークを使用する場合は、基本的な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 

に、電子側に必要なコマンドでbatファイルを作成します。

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を使用していない可能性もあります。 ActiveXは2015年以来サポートされておらず、IEは事実上すでに死んでいます(11は最終版になります)。また、私のように、OPがデスクトップアプリケーションを構築するために使用される電子フレームワークを指しているという点を忘れてしまったので、バッチファイルをダウンロードする必要はありません。 – ADyson

0

上記の理由のすべてについて、ブラウザは、マシンをシャットダウンすることができません。しかし、ブラウザが信頼できるアプリケーションを要求してマシンをシャットダウン(または再起動)できる方法は他にもあります。

同じマシンで実行されるサーバーを作成する必要があります。特定のポートでhttp要求を待機するSimpleHTTPServerを作成できます。

このpythonサーバーは、マシンをシャットダウンできるように適切な権限で起動する必要があります。

ブラウザからマシンをシャットダウンするには、正しいポート(サーバー)へのループバックにHTTPリクエストを送信するだけです。サーバーは要求(適切なホストなどから来ているかどうか)を確認し、os.systemの適切なシステム固有コマンドを使用してマシンをシャットダウンし続けます。

PCの再起動時にサーバーが自動的に起動される必要があることは明らかです。これは非常に簡単に達成することができますが、オペレーティングシステムに依存し、同じものに十分なリソースを見つけることができます。

希望すると便利です。

関連する問題