8

ほとんどの新しいコンピューターでは、電源ボタンを数秒間押すことで、難しい方法でシャットダウンできます。しかし、私はこれを完全に防ぎたいと思っています。

Windows コントロール パネルのスリープ、サスペンド、休止状態、および「電源ボタンを押す」イベントなどのいくつかのソフト イベントを防ぐことができます。一部の Win32 および WDI プログラミングを使用して、これらのイベントをキャッチして処理/拒否することもできますが、ボタンを長時間押し続けても、機械的な電源がオフにならないようです。

電源ボタンは電源に固定されており、数秒間押したままにしておくと OS を待つことはないと思いますか? または、このケースでもコードで防ぐ方法はありますか?

私は .NET 開発者です。

うわあ…!「あなたは私のコンピューターや私の OS を所有していない」、「SkyNet を開発しているのですか」など、多くの人がこれを行わないことを本当に主張しました :) このアプリケーションは、一部の顧客向けに高度にカスタマイズされたクローズド ソリューションです。これは、Windows XP Embedded 上で動作するカスタマイズされたハードウェア上のキオスク アプリケーションであり、タッチ スクリーンを使用します。非公開です。

4

14 に答える 14

12

これができないことを願っています。他の方法でコンピューターを再起動できない状況に何度も遭遇しました。このような場合、ラップトップのユーザーに、実行中に電源プラグを抜いてバッテリーを取り外すことを本当に強制したいですか?

その警告を与えたとしても、それがより理にかなっている、かなり異なる状況向けのソフトウェアを作成している可能性があります。その動機について詳しく教えていただけますか?

ユーザーが電源ボタンを押したままにできる場合 (マシンを本当にシャットダウンしたいことを示している)、物理的に電源を切ることはできませんか?

編集: magsto からのコメントへの応答:

関係者全員が本当にこれを望んでいる場合 - 問題が発生してコンピューターをハードリセットする必要がある場合は、さらに直接的な方法で電源を切る必要があることを説明しました。 「電力を抑える」方法よりもハードウェアに損傷を与えるには...デバイスの製造元に相談してください。おそらく特定のデバイスで作業しているように聞こえるので、公開されているオプションでなくても、BIOS で何かを微調整できる可能性があります。

これはほとんど常に非常に悪い考えであることを考えると、単純なサポートがないことに驚きはありませんが、製造元に問い合わせれば、あなたが望むことを行うための隠れた方法があるかもしれません. ただし、すべての潜在的な結果について考えるように、全員に参加してもらうことをお勧めします.

于 2009-03-13T10:19:15.043 に答える
8

4秒ルールに関連するACPI仕様の62ページを参照してください(http://www.acpi.info/DOWNLOADS/ACPIspec30b.pdf

それの長短は、ロジックがハードウェアにあるということです。

于 2009-03-13T11:15:47.903 に答える
5

パルサースイッチを使用してください。それが正しい用語かどうかはわかりませんが、カタログで見たことがあります。これは、離したときではなく、押した瞬間だけ「作る」スナップ アクション スイッチです。途中でやめてもダメ。しきい値に達すると、メカニズムは接点を閉じるために動き始め、接点が再び開くまで動きを止めません。これにより、通常の起動と通常の停止が可能になりますが、回路を 4 秒間閉じたままにする方法はありません。(もちろんケースは開けずに)

于 2012-12-21T05:48:49.710 に答える
5

これは確かに機械的な電源オフなので、回避するのは難しいでしょう。

本当に重要な場合は、電源ボタンを外して、wake-on-lan resp でコンピューターのオン/オフを切り替えることができます。リモートシャットダウン。

于 2009-03-13T10:18:54.640 に答える
4

この電源オフはオペレーティング システム レベルの下で発生するため、これは不可能です。OS に関する限り、プラグを抜くようなものです。

于 2009-03-13T10:18:31.147 に答える
4

私の知る限り、OS はこのタイプの「シャットダウン」にさえ関与していないと言っているのは正しいです。電源ボタンをしばらく押し続けることは、コンピューター内のすべてのデバイスの電源をすぐにオフにするようにハードウェアに指示するだけです。あなたが述べているように、通常のシャットダウン/スリープ/休止状態のイベントはもちろん、WinAPIを使用してキャッチして処理することができます。

于 2009-03-13T10:19:18.400 に答える
2

さて、電源ボタンを無効にするのは非常識かもしれません。しかし、データベースを使用し、高価なライセンスのセットを使用するソフトウェアアプリケーションがあります。このドイツの大手ベンダーは、ドライブ内でライセンスを物理的に移動するライセンスマネージャーを使用しています。ウイルス対策アプリケーションのデフラグ、特定のウイルス対策アプリケーション、および電源の切断により、ライセンスが破損します。機械の電源が切れた場合にエレガントなシャットダウンを可能にするUPSがあります。現在、一部のサービス担当者またはオペレーターが、電源ボタンを使用してPCの電源を切り、ライセンスが破損しているようです。これらのデバイスは世界中の遠隔地にあり、オペレーターをトレーニングしてもこれを常に防ぐことができるとは限りません。解決策の選択肢は、1)ベンダーと協力して電源ボタンを無効にする、2)トラップして、ユーザーに破滅の可能性があることを警告することです。

于 2009-03-27T22:09:13.830 に答える
2

これを変更できる唯一の方法は、BIOS の設定を手動で変更することだと思います。これはおそらくプログラミング言語ではキャッチできません。本当に必要な場合は、マザーボードから電源ボタンにつながる小さなワイヤを抜くだけで済みます。

于 2009-03-13T10:19:14.530 に答える
1

この機能をいじることはできませんし、すべきではありません。

これが問題になる可能性のある 2 つのシナリオを想定できます。

  1. 許可されていないユーザーがマシンをシャットダウンしたくない場合は、マシンを物理的に保護し、OS をロックダウンします。
  2. 重要なプロセス中にマシンの電源をオフにしたくない場合 - その場合、強制的な電源オフや環境の電源障害などのイベントがアプリを危険にさらさないように、回復力をアプリに組み込みます。
于 2009-03-13T10:54:22.590 に答える