あらゆる種類のアプリケーションを開くなど、Windows上のほとんどすべてのことがコマンドプロンプトまたは実行メニューから実行できることを私は知っています。
コンピュータをスリープ状態またはシャットダウンさせる方法を教えてください。 そのためのコマンドは何ですか?
あなたはshutdown.exe
があなたの友達であることがわかります。
他の便利なコマンドは this postを見てください。
コンピュータをスリープ状態にする(詳細は https://superuser.com/a/463652/249349 を参照)
ロックワークステーション
休止状態のコンピュータ
see answers by Scott Chamberlain and Eric L
コンピューターを再起動
Shutdown.exe -r -t 00
シャットダウンコンピュータ
Shutdown.exe -s -t 00
編集/更新:
休止状態がオンになっている場合、コンピューターをスリープ状態にするのは問題があるようです。
他の答えからコピーする:
PsShutdown を試すこともできます。
コマンドrundll32.exe powrprof.dll、スリープ用のSetSuspendState 0、1、0は正しいです。ただし、休止状態をオフにしないと、スリープ状態ではなく休止状態になります。
これを行う方法は次のとおりです。
[スタート]メニューに移動し、cmd.exeと入力して右クリックし、[管理者として実行]を選択して、昇格したコマンドプロンプトを開きます。次のコマンドを入力してください。
powercfg -hibernate off
コンピュータで休止状態が有効になっている、コンピュータがキーボードを起動しない、またはより重要なのはスケジュールされたタスクを起動しない場合、他の人が投稿した方法は正しく機能しません。
MicrosoftのSysinternalsツールの1つは、 PsShutdown コマンドpsshutdown -d -t 0
を使用すると正しくスリープします。休止状態ではない、コンピューター
Sleepのコマンドrundll32.exe powrprof.dll,SetSuspendState 0,1,0
は正しいです - しかし、休止状態をオフにしないと、スリープ状態ではなく休止状態になります。
これを行う方法は次のとおりです。
[スタート]メニューに移動し、cmd.exe
と入力して右クリックし、[管理者として実行]を選択して、昇格したコマンドプロンプトを開きます。次のコマンドを入力してください。
powercfg -hibernate off
NirCmdはWindows 8で動作します(私はWindows 7でも動作すると思います)→ http://www.nirsoft.net/utils/nircmd.html
コマンドはstandby
ですが、コンピューターをスリープ状態にします。
nircmd.exe standby
ハイブリッドスリープを有効にしていれば、うまくいきます。すなわち、停電の場合にはコンピュータをスリープ状態にしてメモリをディスクにコピーする。
Wizmo の無料のユーティリティを参照してください。これは非常に多くのことができます。
探しているコマンドはおそらく以下のとおりです。
ウィズモスタンバイ
私はrundll32.exe powrprof.dll,SetSuspendState 0,1,0
のショートカットを作成しました(これも0,0,0で試してみました)が、ショートカットを実行すると私のPCは休止状態になりました。私はキーボードを使ってPCを起こすことができませんでした。私は電源ボタンを押す必要がありました、そしてPCはメインボードの投稿メッセージなどを見せました。
Windows APIドキュメント を読んだ後、3行の入力で非常に簡単なプログラムを作成しました。このページにコンパイルした 実行ファイルをアップロードしました( "SleepTest.exe"をクリックします) 。しかし、このファイルはしばらくすると削除される可能性があります(これは無料のファイルホスティングサイトで、Googleのクイック検索で見つけたものです。
あなたが私を信頼していない場合(これはまったく問題ありません)またはファイルが削除されている場合は、もちろん自分でコードをコンパイルできます。リンカの追加の依存関係に "PowrProf.lib"を追加する必要があります。
#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.
int main()
{
SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
return 0;
}
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
は同じことをしているようですが、どういうわけか、上記のプログラムはコンピュータを休止状態にしませんでした。私はキーボードのキーを押すことで即座にPCを起こすことができました(メインボードの投稿メッセージなどはありません)。
下記のようにコマンドラインからサスペンドまたはハイバネートオプションを開始することができます。この記事は この記事 で参照されています。
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
コンピュータがハイバネーションを許可するように設定されている場合、上記のコマンドはハイバネーションを開始します。ハイバネーション機能が無効になっている場合は、スタンバイ状態になります。他のユーザーが以前に答えたように、shutdown.exe /?
は多くのシャットダウンオプションを提供します。
Python(pywin32付き)が利用可能な場合は、そのSetSuspendState関数を直接呼び出すこともできます。
import ctypes
ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)
これは次のようにバッチファイルやショートカットソートに簡単に入れることができます。
pythonw -c "import ctypes; ctypes.windll.PowrProf.SetSuspendState(0, 1, 0)"
あなたの.pyファイルがインタプリタに関連付けられていない場合は、リンクをダブルクリックするだけです。
質問のシャットダウン部分は誰にとっても明らかです。shutdown.exe /?
はシャットダウン/再起動/詳細オプション起動/ファームウェア起動のすべての選択肢を表示します。
しかし、私はSleepパートについて非常に多くの衝撃が投げかけられているのを見ます。
誰もがランダム関数を呼び出すためにrundll32.exe
を使うべきではなく、偶然に完全に休止状態のためにここで機能することを理解しています。しかしそれこそがWindowsの本質であり、人々があきらめて仕事を終わらせるための何百もの回避策を見つけた(dostipsに叫ぶ)
外部ツールを提案する適切なソリューションはたくさんありますが、ネイティブ(ハイブリッド/ハイブリッド)を見つけることはできません。たとえこの質問が何年にもわたって活発なままであっても、バッチスクリプトをpinvoke/whatever)。
これが私の単純なpower_sleep.batです。
@echo off &mode 32,2 &color cf &title Power Sleep
set "s1=$m='[DllImport ("Powrprof.dll", SetLastError = true)]"
set "s2=static extern bool SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent);"
set "s3=public static void PowerSleep(){ SetSuspendState(false, false, false); }';"
set "s4=add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
set "ps_powersleep=%s1%%s2%%s3%%s4%"
call powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Bypass -Command "%ps_powersleep:"=\"%"
exit
これは大きな一行コマンドとしても動作します。
powershell.exe -C "$m='[DllImport(\"Powrprof.dll\",SetLastError=true)]static extern bool SetSuspendState(bool hibernate,bool forceCritical,bool disableWakeEvent);public static void PowerSleep(){SetSuspendState(false,false,false); }';add-type -name Import -member $m -namespace Dll; [Dll.Import]::PowerSleep();"
ただ QUICK SLEEPER は私のために働きます(Windows 7、8、10で働きます)。
pS利用可能なソースコード はこちら 。
まずWindowsでHibernateを無効にしてからコンピュータをSleepの状態にする必要があります。次の2つのコマンドを使用してください。
powercfg -hibernate off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
逆の操作をするには、コンピュータを休止状態にします、以下のコマンドを使用します。
powercfg -hibernate on
rundll32.exe powrprof.dll,SetSuspendState Hibernate