Bilgisayarı Kilitlerken Windows Media Player'ı Duraklat ve Kilit Açıldığında Tekrar Oynat mı?


0

Başlığın dediği gibi, Bilgisayarımı Kilitlerken Windows Media Player'ı Duraklatmak ve Kilidi Açtığımda Yeniden Oynatmak istiyorum.

Mümkün mü?

Bu AutoHotKey Script ile bunu yapmaya çalıştım:

;---------------------------------------------------------------
;Notify Lock\Unlock
;   This script monitors LockWorkstation calls
;
;   If a change is detected it 'notifies' the calling script
;      On Lock
;         This script will call function "on_lock()"
;      On Unlock
;         This script will call fucntion "on_unlock()"
;IMPORTANT: The functions "on_lock()" and "on_unlock()" DO NOT
;exist in this script, they are to be created in the script that
;calls notify_lock_unlock() (presumably your main script)
;---------------------------------------------------------------
;Re-purposed by WTO605
;Last edited 2009-08-18 16:34 UTC
;---------------------------------------------------------------
;Based on Winamp_Lock_Pause by MrInferno
;Posted: Fri Apr 21, 2006 4:49 am
;Source: http://www.autohotkey.com/forum/topic9384.html
;---------------------------------------------------------------
;Winamp_Lock_Pause was/is based on script codes from "shimanov"
;Posted: Thu Sep 15, 2005 12:26 am   
;Source: http://www.autohotkey.com/forum/viewtopic.php?t=5359
;Posted: Tue Dec 06, 2005 9:14 pm
;Source: http://www.autohotkey.com/forum/viewtopic.php?t=6755
;---------------------------------------------------------------

;Initialize global constants
WTS_SESSION_LOCK      :=   0x7
WTS_SESSION_UNLOCK      :=   0x8
NOTIFY_FOR_ALL_SESSIONS   :=   1
NOTIFY_FOR_THIS_SESSION   :=   0
WM_WTSSESSION_CHANGE   :=   0x02B1

notify_lock_unlock()
{
   Global WM_WTSSESSION_CHANGE
   Global NOTIFY_FOR_ALL_SESSION

   hw_ahk := FindWindowEx( 0, 0, "AutoHotkey", a_ScriptFullPath " - AutoHotkey v" a_AhkVersion )

   OnMessage( WM_WTSSESSION_CHANGE, "Handle_WTSSESSION_CHANGE" )

   success := DllCall( "wtsapi32.dll\WTSRegisterSessionNotification", "uint", hw_ahk, "uint", NOTIFY_FOR_ALL_SESSIONS )

   if( ErrorLevel OR ! success )
   {
      success := DllCall( "wtsapi32.dll\WTSUnRegisterSessionNotification", "uint", hw_ahk )
      ;If DLL registration fails, wait 20 seconds and try again
      Sleep, 20000
      notify_lock_unlock()
      ;MsgBox, [WTSRegisterSessionNotification] failed: EL = %ErrorLevel%
   }
   return
}

Handle_WTSSESSION_CHANGE( p_w, p_l, p_m, p_hw )
; p_w  = wParam   ;Session state change event
; p_l  = lParam   ;Session ID
; p_m  = Msg   ;WM_WTSSESSION_CHANGE
; p_hw = hWnd   ;Handle to Window
{
   Global WTS_SESSION_LOCK
   Global WTS_SESSION_UNLOCK

   If ( p_w = WTS_SESSION_LOCK )
   {
      on_lock()
   }
   Else If ( p_w = WTS_SESSION_UNLOCK )
   {
      on_unlock()
   }
}

FindWindowEx( p_hw_parent, p_hw_child, p_class, p_title )
{
   return, DllCall( "FindWindowEx", "uint", p_hw_parent, "uint", p_hw_child, "str", p_class, "str", p_title )
}

notify_lock_unlock()
; Calls function "on_lock()" when computer is locked and "on_unlock()" when computer is unlocked

on_lock()
{
   Send, {Media_Play_Pause}
}

on_unlock()
{
   Send, {Media_Play_Pause}
}

Medya oynatıcıda bir şey çaldığım sürece bu güzel çalışıyor. Duraklatılırsa, bilgisayarımı kilitlediğimde çalmaya başlar.

Windows Media Player'ın Duraklat / Oynat için herhangi bir komut satırı seçeneği bulamıyorum.

Bu betiğin düzgün çalışmasını nasıl sağlayacağını bilen var mı? Ya da bunun nasıl yapılacağı hakkında daha iyi bir fikriniz varsa, lütfen söyleyin.

Yanıtlar:


1

Bu küçük programı dene.

Chris F için - Monitörünüzü kapatan, medya oynatıcınızı duraklatan ve PC'nizi kilitlediğinizde IM programlarınızı AFK'ya yerleştiren bir program.


Çıplak linkler bu yararlı sayılmaz. Bu konuda daha fazla bilgi gönderir misiniz lütfen.
ChrisF,

1
Bu iyi bir program, ancak ne yazık ki Media Player duraklatılırsa, kilitlediğimde oynatıyor ve kilidimi açtığımda duraklıyor ...
Kryten

Bu talihsizlik ... başka bir şey kontrol etmeme izin ver.
JNK,

MonitorES'in geliştirdiği siteye göre, bu sorunu teşhis ettiler ve bir sonraki sürümde düzeltildi. Yine de sana yardım etmediğini biliyorum.
JNK,

Bu iyi. Bir sonraki sürüme kadar bekleyeceğim ... veya kaynağı indireceğim ve sorunu kendim düzeltmeye çalışacağım
Kryten
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.