Bilgisayarınızı uyku moduna geçirmek için kullanılacak komut nedir (hazırda bekletme modu değil)?


63

Windows PC'mi (Windows 7) komut satırından uyku durumuna geçirmek istiyorum (böylece klavyedeki makro düğmesine bağlanabiliyorum).

Bilgisayardaki güç düğmesi bilgisayarla uyumak için ayarlanmış (ancak yere yatar ve aşağı inmek için çok tembelim) tam olarak istediğim gibi (güç kaybettimse hibrid modunu kullanarak uyur)

Kapatma menüsündeki uyku komutu da çalışır.

Bulduğum en fazla bilgi kullanmamı söylüyor;

%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0

Ancak bu, bilgisayarı hazırda bekleme moduna geçirir. Hazırda bekletme özelliğini devre dışı bıraktım ancak karma uyku kullanıyorum.

Peki, bilgisayarınızı uyku moduna geçirmek için kullanılacak komut nedir (hazırda bekletme modu değil)?


5
rundll32.exe PowrProf.dll,SetSuspendStatetavsiye edilmez. Tehlikeli. (Bu vermez gibi, yığınını bozuyor Çünkü değil işlev imzası ile uyumlu talep tarafından Rundll32. Raymond Chen Sonra öngörülemeyen kötü şeyler ortaya çıkabilir uyardı ...)
Aaron Thoma

Yanıtlar:


13

Bir çözüm buldum. AutoHotKey adlı ücretsiz bir program yükledim ve Başlat Menüsü -> Uyku'yu çağırmak için gerekli adımları bir komut dosyasına kaydettim. Sonra komut dosyasını tek başına çalıştırılabilir bir SleepWin7.exe dosyasına uydum.

Şimdi bilgisayarımı hibrit uykuya sokmak için SleepWin7.exe dosyasını çalıştırıyorum.

İhtiyacınız olan şey buysa, AutoHotKey'i kaldırabilirsiniz.


Güncelleme: Yukarıdaki çözüm, kullanıcı giriş yapmadığında çalışmaz, yani Windows 7 Oturum Açma Ekranı. (Bilgisayarım her pazar günü saat 04: 00'da, haftalık olarak kullanıcı girişi olmadan yapılan yedekleme işlemini gerçekleştirmek için uyanır.) Bu durumda, Wizmo programı hala çalışıyor:

wizmo.exe sessiz bekleme!


3
İşte bir AutoHotKey betiği (klavyeyi kullanarak); Gönder, {LWINDOWN} {LWINUP} WinWait, Başlat menüsü, IfWinNotActive, Başlat menüsü, WinActivate, Başlat menüsü, WinWaitActive, Başlat menüsü, Gönder, {SEKME {{}} {SAĞ} s
Eric L

Bu kullanmaya başladığım çözüm. melez uykuyu desteklediği için.
Eric L

+1 Bu kirli geliyor, çalışıyor. Son Gönderme bölümünü değiştirmek zorunda kaldım: "Gönder, {RIGHT} {RIGHT} s". BTW Neredeyse
AHK'yi

Bunu ayrıca komutların masaüstü penceresine gitmelerini ve kaybolmalarını önlemek için komut dosyasının başlangıcına ekledim: WinActivate, ahk_class Progman
demoncodemonkey

1
Windows 8'e geçtikten sonra, şimdi NirCmd kullanıyorum (çok hafif) ve bilgisayarı karma uyku moduna geçiriyor; nircmd.exe standbydaha fazla bilgiyi burada bulabilirsiniz -> nirsoft.net/utils/nircmd.html
Eric L

73

Bunları yararlı bulursunuz umarım.

Kapat %windir%\System32\shutdown.exe -s

Yeniden Başlatma %windir%\System32\shutdown.exe -r

Oturumu Kapat %windir%\System32\shutdown.exe -l

Yanında olmak %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

kış uykusuna yatmak %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate

Dikkat: rundll32.exe powerprof.dll dosyasını başlatmak için kullanılmamalıdır . Bunun yerine SetSuspendState'i doğrudan aramalısınız. Bu Powershell kullanılarak yapılabilir - aşağıdaki içerikleri içeren bir dosya oluşturun; örneğin, sleep.ps1.

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Ardından kullanarak çalıştırın powershell -File C:\your-path\sleep.ps1. Set-ExecutionPolicy RemoteSignedPowershell betiğinin çalışmasını sağlamak için önce komutu çalıştırmanız gerekebilir .

Yukarıdaki komut dosyası, mevcut hazırda bekleme ayarınıza bağlı olarak ya uyku ya da hazırda bekletme moduna geçecek bir sistem askıya alınmasına neden olur. Bu ayarı komut satırından değiştirmek için , komut satırından yönetici olarak çalıştırın powercfg -h off(veya on).


4
güzel +1 ...
studiohack

9
Bu harika ama Sleeeeeeeeeeeeeeep için olan nerede
demoncodemonkey

7
Bekleme kısayolu Win7 makinemi hazırda bekletme moduna geçirdi :(
user

5
@demoncodemonkey: Standbyyyyyyyyyyyyy = Sleeeeeeeeeeeeep :)
Răzvan Flavius ​​Panda

11
Görünüşe göre yapmaz: superuser.com/a/331545/21887 Bu yüzden bu yöntemi kullanmak tehlikeli ve kabul edilmez. (Yığını bozar.)
Aaron Thoma

16

Çok fazla şey yapabilen Wizmo'nun ücretsiz yardımcı programına bakın .
Aradığınız komut muhtemelen:

wizmo bekleme


Wizmo oldukça havalı görünüyor! Neredeyse bir mac fanboy olmasaydı keşke yapar
trolle3000

Yardımcı programın yüklenmesi gerekmez. Güzel basit bir araç.
Artur Carvalho

2
wizmo.exe quiet standbytartışmalı sinir bozucu bipler tarafından bastırır wizmo.exe.
Aaron Thoma

14

"Sleep.ps1" gibi .ps1 (powershell) uzantılı bir dosya oluşturabilir ve şunu yazabilirsiniz:

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Çalışan bir şey olduğunda ve bilgisayardan ayrılmak zorunda kaldığımda ve bunu kapatmak istemediğimde bunu kullanıyorum. Böylece senaryoyu şöyle görünecek şekilde değiştirdim:

$minutes = read-host "Enter minutes to wait until sleep";
$secs= 60*$minutes;
Start-sleep -s $secs

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.Application]::SetSuspendState("Suspend", $false, $true)

Ve şimdi koşarken, sadece uyuyana kadar beklemek istediğim dakikaları giriyorum.

Bunu cmd satırından yazarak çalıştırabilirsiniz.

powershell -File C:\your-path\sleep.ps1

Daha önce hiç PowerShell betiği çalıştırmadıysanız, ilk önce

Set-ExecutionPolicy RemoteSigned

betiğin çalışmasını etkinleştirmek için PowerShell'de. Bu sadece bir kez çalıştırılmalıdır.


Değişkenlerinizin adları geriye doğru değil mi?
Ullallulloo


7

Bu SLEEP.EXE yardımcı programını yıllardır kullanıyorum . İyi çalışıyor ve askıya alma modu için hangi argümanları vereceğini hatırlamak zorunda değilsin (varsayılan "uyku" şekli).


SLEEP.EXE , Windows 7 Pro SP1'de benim için çalışıyor. Üst sayfa ayrıca Windows için diğer pek çok kullanışlı görünümlü komut satırı aracını da listeler. Teşekkürler, Jjlin!
KOD-READ 11:16

6

hazırda bekleme modunu devre dışı bırakmak için kullanmanız gerekir.

powercfg -h off

şimdi, rundll32 powrprof.dll, SetSuspendState istasyonunuzu bekleme moduna geçirecek

[DÜZENLE]

aslında bir hibrit uyku ayarlayamıyorum çünkü bir dizüstü bilgisayarım var (mobil istasyonlarda bulunmayan bir durum), hibrit uyku için hazırda bekletme modunun etkin olması gerektiğini ve bazılarının rundll32 powrprof.dll, SetSuspendState varsayılan uyku modunu tetiklediğini söylüyor Kontrol panelinizde \ güç yönetimi ayarlarında mod. rundll32 powrprof.dll, SetSuspendState hibrit uyku bazı sonuçlar verirse lütfen deneyin .


Bu aynı zamanda hibrit uykuyu da engeller, bu yüzden amacını yitirir
Eric L

rundll32 powrprof.dll, SetSuspendState hibrit uyku hala bilgisayarı hazırda bekletme moduna geçirdi. fikir için teşekkürler.
Eric L

rundll32, SetSuspendState öğesini çağırmak için tasarlanmadığından yanlış parametre değerleri alır. Bu nedenle, kasten devre dışı bırakmadıysanız, hazırda bekletme moduna neden olur.
SergeyT

5

600'ün saniyeler içinde geciktiği bir yarasa dosyası oluşturun.

ping -n 600 -w 1 127.0.0.1> sıfır

powercfg -h kapalı

% windir% \ System32 \ rundll32.exe powrprof.dll, SetSuspendState Bekleme


Bilgisayarı uykuya geçirmek için harika bir yol; ve uykuya dalmak isteyen başkalarını göndermek çok kolay.
Maurycy

Yaratıcı cevap!
Jane Panda,

SetSuspendState'i çağırmak için rundll32.exe'yi kullanmayın: bunun için tasarlanmamıştır. Buradaki
SergeyT

4

Bir .NET programını derlemede yetkinseniz, aşağıdaki komut bunu yapacaktır.

System.Windows.Forms.Application.SetSuspendState(PowerState.Suspend, 
                                                 false,   /* force */
                                                 true     /* disableWake */);

Not: Hazırda bekletme modunu, rundll32 powrprof.dll,SetSuspendStatekomutun gerektirdiği şekilde devre dışı bırakmanıza gerek yoktur . İsterseniz, PowerState.Hibernatehangisinin makineyi hazırda bekleteceğini de kullanabilirsiniz .

Herhangi bir Visual Studio sürümüyle kolayca bu komutla bir EXE derleyebilirsiniz . Sadece bir konsol uygulaması oluşturun ve System.Windows.FormsDLL dosyasına bir başvuru ekleyin .


1
Yukarıda belirtilen Wizmo, temelde bunu zaten yaptı - eşdeğeri gibi görünüyor. Ve Steve Gibson tarafından yazılmış ve ücretsiz, muhtemelen aynı şeyi kodlayan elden daha iyi!
stevemidgley

+1. Burada böyle bir şey mi arıyorsunuz superuser.com/q/310045/84229
kullanıcı 15

Visual StudioDerlemek için kullanmak zorunda bile değilsin . Bunun yerine, komut satırı derleyicisi csc.exekullanılabilir. Zaten Windows'un tüm modern sürümlerinde yüklü.
SergeyT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.