Сделайте Паузу Windows Media Player при Блокировке ПК и Игры снова при Разблокировании?

Поскольку в заголовке говорится, что я хочу смочь, делают Паузу Windows Media Player при Блокировке моего ПК и Игры снова, когда я Разблокировал его.

Действительно ли это возможно?

Я действительно пытался сделать это с этим Сценарием AutoHotKey:

;---------------------------------------------------------------
;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}
}

который работает приятно, пока я играю что-то на медиаплеере. Если это приостанавливается, то это начинает играть, когда я блокирую свой ПК.

Я, может казаться, не нахожу, что любые параметры командной строки для Windows Media Player Приостанавливают/Играют.

Кто-либо знает, как заставить этот сценарий работать правильно? Или если у Вас есть лучшая идея о том, как сделать это, скажите.

0
задан 29.07.2010, 19:42

1 ответ

Попробуйте эту небольшую программу.

Для Chris F - Это - программа, которая выключает Ваш монитор, приостанавливает Ваш медиаплеер и помещает Ваши программы IM на AFK, когда Вы блокируете свой ПК.

1
ответ дан 24.11.2019, 12:26

Теги

Похожие вопросы