Monitör kapalıyken HTPC'yi uyku


0

Televizyonu kapattığımda bilgisayarımın otomatik olarak uyumasını istiyorum. Bu nasıl yapılabilir? TV açık olduğunda mümkünse htpc'nin de açılmasını istiyorum

Bilgisayar- Windows 8.1 Gigabyte B85 GTX 650


"TV" derken monitör mü demek istiyorsun?
Xavierjazz

Onun bir htpc, yani bir televizyona bağlı
Silicabello

Yanıtlar:


0

Bu aslında bazı kodlama veya kodlama ile mümkün olmalıdır.

Var WMI Win32_DesktopMonitor sınıfı "Kullanılabilirlik" adlı bir özelliğe sahip.

Uygunluk özelliği, monitörün içinde olabileceği 17 olası durumu listeler. Büyük olasılıkla 0x03 (Çalışıyor veya Tam Güç) değerini kontrol etmek isteyeceksiniz. Ancak, en iyisinin hangisi olduğunu görmek için TV’nizin getirdiği değerlerle oynamanız gerekir.

Seçtiğiniz bir frekansta çalıştırmak, TV'nin durumunu tespit etmek ve TV'nin kapalı olduğunu tespit etmesi durumunda OS'ye bir uyku komutu göndermek için bir komut dosyası veya program yazılabilir.


Ben öncelikle bir osx / linux kullanıcısı, Windows'taki script için gerekli olanları detaylandırabilir misiniz?
Silicabello

vbscript veya powershell - Windows içerisindeki komut dosyası. veya gerçek bir program yazmak istiyorsanız, ücretsiz görsel studio express indirebilirsiniz
Keltari

0

Keltari'nin yorumuna bakıldığında, aşağıdaki VBScript döngüler ve her saniye ekranın açık olup olmadığını bildirir.

Do
    WScript.Sleep 1000
    WScript.Echo "Screen is on = " & ScreenOn
Loop

Function ScreenOn()

    Dim objWMIService, colItems, objItem

    On Error Resume Next

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor",,48)
    ScreenOn = False

    For Each objItem in colItems
        If objItem.Availability = 3 Then
            ScreenOn = True
            Exit For
        End If
    Next

    On Error Goto 0

End Function

Saklamalısınız (örn. screenstatus.vbs ) ve komut satırından kullanarak komut satırından çalıştırın. cscript screenstatus.vbs ).

Her şey yolunda giderse, her saniye "Doğru" görüntülenir ve ekranı kapattığınızda "Yanlış" ayarına döner. Bunu tekrar kontrol etmek için ekranı açmanız gerekecek!

Bunun iyi gittiğini varsayarak, üstteki döngüyü aşağıdaki gibi bir şeye göre değiştirebilirsiniz:

If ScreenOn() = False Then
    ' Call command here to sleep computer
End If

ve ardından betiği düzenli olarak çalışacak şekilde programlayın (ör. 15 dakikada bir).

Makineniz hemen uykuya geçmeyecek, ancak komut dosyası yeniden çalıştırıldığında kapanacaktır (bu, verdiğim örnekte 15 dakika içinde olacak).

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.