“Ekranı kapat” ı manuel olarak nasıl tetikleyebilirim? [çiftleme]


13

Windows 7'de "ekranı kapat" işlevini el ile nasıl tetikleyebilirim? Bu normalde kullanıcı fareyi hareket ettirmediğinde veya belirli bir süre herhangi bir tuşa basmadığında otomatik olarak gerçekleşir (kontrol panelinin güç yönetimi bölümü).

Üçüncü taraf yazılımlar veya tam gelişmiş bir uygulama güzel, ancak Windows 7'ye özgü bir yaklaşımı tercih ederim. Bir komut satırı gibi.


Monitör uyku seçeneği için dakikanın altında mı? : Bu yöntemi uygularken O yardımcı olacağını answers.microsoft.com/en-us/windows/forum/windows_7-desktop/...
Andrestand

Yanıtlar:


9

Powershell'de yazılmış bu komut dosyası bu işi sizin için yapabilir.

# Turn display off by calling WindowsAPI.

# SendMessage(HWND_BROADCAST,WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF)
# HWND_BROADCAST  0xffff
# WM_SYSCOMMAND   0x0112
# SC_MONITORPOWER 0xf170
# POWER_OFF       0x0002

Add-Type -TypeDefinition '
using System;
using System.Runtime.InteropServices;

namespace Utilities {
   public static class Display
   {
      [DllImport("user32.dll", CharSet = CharSet.Auto)]
      private static extern IntPtr SendMessage(
         IntPtr hWnd,
         UInt32 Msg,
         IntPtr wParam,
         IntPtr lParam
      );

      public static void PowerOff ()
      {
         SendMessage(
            (IntPtr)0xffff, // HWND_BROADCAST
            0x0112,         // WM_SYSCOMMAND
            (IntPtr)0xf170, // SC_MONITORPOWER
            (IntPtr)0x0002  // POWER_OFF
         );
      }
   }
}
'

[Utilities.Display]::PowerOff()

Not : Bu ipucu PowerShell 2.0 veya üstünü gerektirir.


@ user1306322 Doğru. Ekran koruyucu ekranı kapatmaz.
mızrak

@ user1306322 Yanıt güncellendi.
stderr

Daha iyi bir cevap olmaması için bunu kabul ediyorum. Bunun yalnızca bilgisayarla etkileşimde bulunmadığınızda yararlı olduğuna dikkat edilmelidir. Yani, ekranın kapalı kalmasını sağlamak için herhangi bir düğmeye veya fareye dokunmayı bırakmanız gerekir. Bu komutu yürütmeden önce bir veya iki saniye için bir zamanlayıcı ayarlamak çok faydalı olabilir.
user1306322

Bunu bir .batdosyada ayarlamak ve çift tıklamak işe yaramaz. Ya API değişti ya da ben nasıl yürütmek bilmiyorum. Bu komut dosyası için beklenen "başlatma" yöntemi nedir?
Xavi Montero

7

Yerel çözüm değil - Nircmd için ücretsiz harici program gerektirir . Ancak oldukça kullanışlıdır ve kullanmak için hiçbir şey almaz.

Monitörü kapatmak için:

nircmd.exe monitor off

Monitörü açmak için:

nircmd.exe monitor on

4

Kullandığım Monitör Kapalı Utility birkaç yıldır. Bir kısayol kombinasyonu belirledim ve ekranı devre dışı bırakmak istersem bu tuşa basın.

resim açıklamasını buraya girin

resim açıklamasını buraya girin


Cevabın neden reddedildiğinden emin değilim. Yardımcı programın istediği şeyi yaptığı için etkinin etkisiz hale getirilmesi
Ejaz

Gerçekten bu tür bir yazılım bir komutun yapabileceği bir şey yapmıyor mu? Kapatma zamanlayıcısını düzenleme komutu yok mu?
Andrestand

@ Kabul edilen cevap, hangi API'nin araç tarafından dahili olarak kullanıldığını gösterir.
magicandre1981

-1

Deneyin

%SystemRoot%\System32\RUNDLL32 %SystemRoot%\System32\USER32.DLL,LockWorkStation

Denetim Masası'na gitmeniz ve ekran koruyucunuzu “hiçbiri” olarak yapılandırmanız gerekebilir.


Bu yalnızca LockWorkStationkomut adının önerdiğini yapar - geçerli kullanıcının oturumunu kilitler. Aynı etki, [Win] + [L] tuşlarına basılarak da elde edilebilir.
user1306322
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.