Windows 7'de bir bilgisayar toplu iş dosyası aracılığıyla uyku


14

Bir süre sonra bilgisayarımda uyuyacak bir toplu iş dosyası yapmak istiyorum.

Bulduğum en yakın şey, bekleme moduna sokmak, ancak klavyemdeki uyku düğmesinden farklı çalışıyor gibi görünüyor (daha uzun başlatma, fare tıklamasıyla uyanmıyor). Herhangi bir fikir? Python veya C # ile daha kolay olur mu?

Yukarıda belirtilen ideal teknik, cmd isteminde bunu çağırır:

Rundll32.exe powrprof.dll,SetSuspendState

Sadece .bat içine bir geri sayım parçası ekleyin ve bundan sonra bunu yürütün.
Apache


Hazırda bekletme tamamen farklıdır, ama evet sanırım doğru çözüm bu.
Apache

Ben rundll şey hazırda bekleme ile aynı olduğuna inanıyorum. Uyku ile fareyi tıklarsınız ve giriş ekranınız birkaç saniye içinde oradadır ... hazırda bekletme modu, bios'u, sabit diskleri yeniden kontrol etmeli ve kaydedilen durumu ram ve ardından önyükleme pencerelerine aktarmalıdır. Uyku için tek dezavantajı, güç kaybetmeniz ve koçta depolanan kaydedilmiş durumun kaybolmasıdır (ve daha eski parçalar aslında PSU ve fanlar gibi daha fazla bileşen bırakır).
Saebin

Yanıtlar:


26

Basitçe komut verin

rundll32.exe powrprof.dll,SetSuspendState

Sistem hazırda bekletiliyor mu , ancak bunu yazarsanız:

rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Ve kapatmak komutuyla kış uykusu:

powercfg -hibernate off

Şimdi sisteminiz uykuya geçecek ve bir cihaz seçildiğinde fare hareketiyle uyanacak (nasıl yapılacağını öğrenmek için aşağı kaydırın).

Bir zamanlayıcıyı toplu olarak:

timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Nerede 1200 uyku komutunu çalıştıracak 20 dakika toplu sonrasında ortalama saniyedir.

İsteğe bağlı olarak geri sayımın iptal edilmesini önleyebilirsiniz (toplu iş penceresinde herhangi bir tuşa basarsanız):

timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Fare ile uyanma hakkında NASIL NASIL:

Git: Başlat -> Denetim Masası -> Fare.

alternatif metin

Fare Özellikleri penceresinde, Donanım sekmesine tıklayın ve aygıt listesinden farenizi seçin. Normalde, burada yalnızca bir fare listelenir, ancak bu, bilgisayarınıza bağladığınız donanıma bağlı olacaktır. Listeden farenizi seçtiğinizde, Özellikler düğmesini tıklayın.

alternatif metin

Şimdi farenizin Özellikler penceresinde , Genel sekmesindeki Ayarları Değiştir düğmesine tıklayın.

alternatif metin

Açılan pencerede Güç Yönetimi sekmesine tıklayın ve Bu Aygıtın Bilgisayarı Uyandırmasına İzin Ver başlıklı seçeneği işaretleyin . Click Tamam bu pencerede düğmeye tıklamanız Tamam düğmesine Fare Özellikleri hala açık pencereleri. Şu andan itibaren, bir fare düğmesini tıklatarak veya fareyi hareket ettirerek Windows 7'yi uyku modundan uyandırabilirsiniz.

alternatif metin


3
vay canına, soruları cevaplamayı gerçekten seviyorsun :)
Omu

2
shutdown /h

bilgisayarı hazırda bekletir (askıya alma konusunda emin değilsiniz).


2

Çalışma Çözümü! Yardımcı programı doğru uykuya izin vermek
için kullanmak zorunda kaldım PsShutdown(birincil sorun SetSuspendStateuyanık zamanlayıcıların makineyi uyandırmasına izin vermiyor). Toplu iş dosyam 1 basit satır:

PsShutdown -d -t 2

Yazılım önerme konusunda nasıl ilerlemeniz gerektiğine ilişkin bazı ipuçları için lütfen Yazılımı nasıl önerebilirim bölümünü okuyun. En azından bir bağlantı, yazılımın kendisi hakkında bazı ek bilgiler ve sorunun sorunu çözmek için nasıl kullanılabileceği hakkında bilgi vermelisiniz.
DavidPostill

1
Bu benim pc işe ​​yaramadı ...
mrbengi

1

.NET kurtarmaya. Bu çözüm, bilgisayarı PC yapılandırmasını (hazırda bekletme modunu kapatma) gerek kalmadan uyku moduna geçirir. Bu komutu toplu olarak çalıştırın:

powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"

Ya ::Suspenduyku için kullanabilirsiniz ::Hibernate( veya diğer cevaplar bu şekilde çalışır). SetSuspendState belgeleri .

Ad System.Windows.Formsalanı varsayılan olarak yüklenmediğinden (Powershell ISE'de olduğu gibi), öncelikle bunun için montaj yüklemeniz gerekir.

orijinal cevap


0

Hiberanate'i devre dışı bırakmak zorunda kalmamak için SetSystemPowerState'i deneyebilirsiniz.

rundll32.exe kernel32.dll, SetSystemPowerState

1,0 veya 1 0 eklemenin, hatta Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 veya Rundll32.exe powrprof.dll, SetSuspendState 0,0,1 değerinin argümanların (0,0,1) NOTHING anlamına geldiğini unutmayın.

Powrprof.dll, SetSuspendState, rundll32 stil argümanlarını ayrıştırmaz ve bu nedenle bunları yoksayar. Bu nedenle hazırda bekletme modunu devre dışı bırakmanız gerekir.


1
Bu, Vista veya sonraki sürümleri için değil, Windows XP için kullanışlıdır.
Rodney

1
DLL rundll32'den bağımsız değişkenleri kabul etmek için tasarlanmadığından, rundll32'nin (bu nedenle SetSuspendState her zaman hazırda bekletme) verdiğiniz bağımsız değişkenleri yok saydığını unutmayın.
Rodney

-1: Bu tamamen yanlış. OP'nin istediği işletim sistemi altında çalışmaz.
nc4pk

rundll32 bağımsız değişkenleri geçmiyor, bu nedenle çalışması için Hazırda Bekletme özelliğini devre dışı bırakmanız gerekiyor. Varsayılan argümanlar ona her zaman hazırda bekletme modunu verir, ancak hazırda bekletme modu devre dışıysa DLL API'si varsayılan olarak uyku moduna geçer.
Rodney


0

Bir toplu iş dosyası oluşturun ve aşağıdaki satırları ekleyin:

7200 = 2 hours

@echo off
timeout /t 7200 /nobreak
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on
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.