web-dev-qa-db-ja.com

Windows 7:ネットワークトラフィックがある間、コンピューターがスリープ状態にならないようにします

リモートコンピューターにデータをダウンロードしているpythonスクリプトがあります。データのダウンロードが進行中の間、コンピューターがスリープ状態にならないようにしたいのですが、プログラムが終了/ハングした場合/ crashes、コンピュータをスリープ状態にしたい。

コンピューターの休止状態設定を無効にしたくありません。不眠症やコマンドラインショートカット( コマンドプロンプト/実行メニューからコンピューターをスリープ状態にするにはどうすればよいですか? )のようなプログラムを見回しましたが、それらは仕事に最適ではありません。 try:except:finallyをブロックして、pythonコードを囲み、関数を呼び出してコンピューターをスリープ状態にする方法はありますか?

Update:この回答は役に立ちました: コンピューターをスリープ状態にするために使用するコマンドは何ですか(休止状態ではありません)? 。 os.system呼び出しを使用してpython sleepブロックから呼び出すことができる小さな1行のfinallyアプリを作成しました。

4
user

この問題を回避する1つの可能な方法は、ネットワークアダプタの電源管理オプションを利用することです。

  1. [スタートメニュー]検索ボックスに「デバイスマネージャー」と入力して、アプリケーションを実行します。
  2. ネットワークアダプタを見つけて右クリックします
  3. [電源管理]タブに移動します。
  4. どちらか:
    1. 「電力を節約するために、コンピューターにこのデバイスの電源をオフにする」をオフにするか、
    2. 「マジックパケットのみがコンピュータをスリープ解除できるようにする」をオフにします。

おそらく最初に4.2を提案し、それがネットワークアダプタで機能するかどうかを確認します。これにより、ネットワークアダプタの電源管理機能がアクティブになります。 4.1はそれらを完全に削除します。

または、マジックパケットをオンにして、python)内から使用して、コンピューターを起動状態に保つこともできます。ここから開始: Windows 7のネットワークデバイスの電源管理 。記事の最後にあるコメントに興味があります。

Windows 7ネットワークアダプターを「MagicPacketのみにコンピューターのウェイクアップを許可する」ように構成すると、無料のWolCmd.exeコマンドラインユーティリティを使用してMagicPacketを送信できます。この方法は100%信頼できるものではなかったため、ThinkpadのLANIPアドレスに転送される4つの異なるインバウンドUDPポートを使用して次のようにコマンドを4回送信するバッチファイルを作成しました。 4つの異なるポートを使用することは、「ウェイクアップ」と配信の信頼性を向上させる試みでした。コマンドを4回送信すると、確実に信頼性が向上しました。ファイアウォールを介して4つの異なるUDPポートを使用したことが違いを生んだかどうかはわかりません。

Wolcmdが利用可能です ここ

2
A Dwarf