1 (изменено: Kokc80, 2010-10-04 17:42:40)

Тема: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Проблема:

Когда воспроизводишь в * Media Player Classic Home Cinema, *AVI файлы, которые по размеру выше 2гиг, то после отключения *MPC его процесс остается висеть в диспетчере задач.

Решение проблемы:

Loop
{

WinWait, ahk_class MediaPlayerClassicW
; Скрипт ждет окно MediaPlayerClassic!


WinWaitClose, ahk_class MediaPlayerClassicW
; Скрипт ждет отключения окна MediaPlayerClassic!

Process, Close, mpc-hc.exe
; Скрипт завершит процесс MediaPlayerClassic!

}

Но, есть еще одна программа, с подобной проблемой!

Её класс:
ahk_class TFView
И имя процесса:
BootScreenView.exe

Подскажите, как их заставить работать в одном скрипте!

2

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Попробуй так:

   SetTimer, Timer1, 1000
   SetTimer, Timer2, 1000
   Return

Timer1:
   WinWait, ahk_class MediaPlayerClassicW
   ; Скрипт ждет окно MediaPlayerClassic!


   WinWaitClose, ahk_class MediaPlayerClassicW
   ; Скрипт ждет отключения окна MediaPlayerClassic!

   Process, Close, mpc-hc.exe
   ; Скрипт завершит процесс MediaPlayerClassic!
   Return

Timer2:
   WinWait, ahk_class TFView
   WinWaitClose, ahk_class TFView
   Process, Close, BootScreenView.exe
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Kokc80
Может быть проблема решится в корне, если у MPC просто сменить рендер (Playback\Output)?
Знаю, что порой VMR-9 renderless так вешает. На VMR-7 renderless все идет гораздо стабильней, правда при этом могут "пропасть" встроенные субтитры.
Точно знаю, что MPC может играть 40-гигабайтные блюрэйные m2ts и при этом не виснуть, если удачно сконфигурировать.

А так-то да, полезный скрипт.

4

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

jite пишет:

Точно знаю, что MPC может играть.

У меня MPC, настроен под FFDShow.
MKV контейнер, воспроизводит нормально, а вот с AVI капризничает,
но это ограничения самого AVI контейнера!

По теме:

Данный способ не срабатывает, скрипт сам выходит и ничего не ждет.
Я чтоб понять, в каком месте он перестает работать, вставил * MsgBox *

MsgBox, Действие1

   SetTimer, Timer1, 1000
   SetTimer, Timer2, 1000
   Return

MsgBox,  Действие2

Timer1:

MsgBox,  Действие3

   WinWait, ahk_class MediaPlayerClassicW
   
MsgBox, Действие4

   WinWaitClose, ahk_class MediaPlayerClassicW

MsgBox, Действие5

   Process, Close, mpc-hc.exe
   Return

Timer2:
   WinWait, ahk_class TFView
   WinWaitClose, ahk_class TFView
   Process, Close, BootScreenView.exe
   Return

Так вот, после первого действия вылетает!

Я сделал так после:
   SetTimer, Timer1, 1000
   SetTimer, Timer2, 1000
  ( Return вот это удалил)

Скрипт, доходит до третьего действия, и вылетает.

А на команду, Timer2: вообще ни какой реакции!

5

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Пардон, правильно так:

   #Persistent
   SetTimer, Timer1, 1000
   SetTimer, Timer2, 1000
   Return

Timer1:
   WinWait, ahk_class MediaPlayerClassicW
   ; Скрипт ждет окно MediaPlayerClassic!


   WinWaitClose, ahk_class MediaPlayerClassicW
   ; Скрипт ждет отключения окна MediaPlayerClassic!

   Process, Close, mpc-hc.exe
   ; Скрипт завершит процесс MediaPlayerClassic!
   Return

Timer2:
   WinWait, ahk_class TFView
   WinWaitClose, ahk_class TFView
   Process, Close, BootScreenView.exe
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

6

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

teadrinker пишет:

Пардон, правильно так.

Timer2:
Работает идеально!

Timer1:
Не работает!

Еще вопрос, из ряда фантастики,:D может можно,
заставить работать скрипт при запуске файла.
Ну, например, делаю двойной клик по  AVI файлу,
после чего запускается скрипт, и в тоже время AVI,
начинает воспроизводиться в MPC.

7

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Ну это в реестре надо прописать, чтоб .avi файлы открывались не проигрывателем, а скриптом, который, в свою очередь, запускает плеер с требуемыми параметрами. Сам при этом остается жить до тех пор, пока не закроется окно плеера, потом убивает его процесс и сам выгружается.
Проблему с иконками .avi файлов тоже можно решить, если скомпилировать такой скрипт со вставкой нужной иконки.
По вопросам реестра, как я понимаю, надо Серого Кардинала спрашивать.

8

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

Одним скриптом, ожидающим закрытия обоих окон можно так, проверял, вроде работает:

   #Persistent
   SetTimer, Timer1, 100
   SetTimer, Timer2, 100
   Return

Timer1:
   if !mod1
   {
      IfWinExist, ahk_class MediaPlayerClassicW
         mod1 = 1
   }
   Else
   {
      IfWinNotExist, ahk_class MediaPlayerClassicW
      {
         Process, Close, mpc-hc.exe
         mod1 = 
      }
   }
   Return
   
Timer2:
   if !mod2
   {
      IfWinExist, ahk_class TFView
         mod2 = 1
   }
   Else
   {
      IfWinNotExist, ahk_class TFView
      {
         Process, Close, BootScreenView.exe
         mod2 = 
      }
   }
   Return

Но лучше сделать, как советует pant-79. Изменить ассоциацию файла можно через меню окна проводника: Сервис > Свойства папки > Типы файлов.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

9 (изменено: Kokc80, 2010-10-06 11:34:21)

Re: AHK: Проблема, MPC и AVI, которая решается при помощи AHK!

teadrinker пишет:

Bроде работает!

СтПаСиБо, работает, да и я вчера мучил его, сделал так:

Один скрипт, каждых две секунды, следит за окнами:

Loop
{


; MPC!

IfWinExist, ahk_class MediaPlayerClassicW 

{

Run, %A_ScriptDir%\02.!.ahk
Return

}

else

IfWinNotExist

Sleep 2000
}

И если они появились, запускает второй, который ждет их отключения:

; Действие для MPC!

   WinWaitClose, ahk_class MediaPlayerClassicW
   Process, Close, mpc-hc.exe
   Return
teadrinker пишет:

Но лучше сделать, как советует pant-79!

Так вот, чтоб не нагружать систему, первым скриптом, оставляю только второй.

В типах файлов, на AVI файле прописываю его, чтоб запускался не AVI, а этот второй скрипт.

Все дальше стопор:

Скрипт запускается.

НО?

Что нужно, в этом скрипте прописать, чтоб после запуска, он,  уже из себя, запускал нужный мне AVI файл, который после двойного клика выделен, и находится под курсором!:rolleyes: