Winamp: текущий трек в заголовок окна

Обсуждение программ nnCron и nnCron LITE

Winamp: текущий трек в заголовок окна

Postby Morituruz » Mon, 30 Sep 2013, 14:08

Небольшая задача, ежесекундно подставляющая информацию о воспроизводящемся треке в заголовок активного окна:
Code: Select all
<%
\ слова, необходимые для работы с плагином:
: StringGetPos { a1 u1 a2 u2 -- pos}
a1 u1 a2 u2 SEARCH IF DROP a1 - 1+ ELSE 2DROP 0 THEN ;
: XN>S   \ ( x num -- a u ) \ Конвертировать x разрядов положительного числа в строку
  SWAP >R S>D <# R> 0 DO # LOOP #>
;
%>

#( CLASSIC-TASK-#-Winamp_to_window_idle
\ 18:21 29.09.2013
NoLog SingleInstance
\ строка-разделитель заголовка окна и текущего трека в винампе:
: wtwi_string S"      >>>     " ;
: winamp_status   ( -- a u )
\ в каком режиме winamp?
\ Работает только внутри задачи, т.к. сам не ищет окно, а отправляет уже найденному WIN-HWND
104 0 1024 WIN-HWND SendMessageA
CASE
   0 OF S" stopped" ENDOF
   1 OF S" playing" ENDOF
   3 OF S" paused" ENDOF
   DUP OF S" unknown" ENDOF
ENDCASE
;
: winamp_song_length ( -- a u )
\ длина трека
105 1 1024 WIN-HWND SendMessageA
60 /MOD N>S S" :" S+ 2 3 ROLL XN>S S+
;

CREATE wtwi_winamp_title 256 ALLOT
Action:
BEGIN
   S" Winamp v1.x" WIN-EXIST?
   IF
      FOUND-WINDOW S"  - Winamp" StringGetPos ?DUP
      IF
         FOUND-WINDOW DROP SWAP 1 - S"  (%winamp_song_length%, %winamp_status%)" EVAL-SUBST S+ wtwi_winamp_title PLACE
         ACTIVE-WINDOW wtwi_string StringGetPos ?DUP
         IF      \ на стеке номер символа
            GetForegroundWindow N>S ACTIVE-WINDOW DROP 3 ROLL 1 - wtwi_string S+ wtwi_winamp_title COUNT S+ WIN-SET-TITLE
         ELSE
            GetForegroundWindow N>S ACTIVE-WINDOW wtwi_string S+ wtwi_winamp_title COUNT S+ WIN-SET-TITLE
         THEN
      THEN
   THEN
   1000 PAUSE
AGAIN
)#
Last edited by Morituruz on Mon, 07 Oct 2013, 11:30, edited 2 times in total.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Winamp: текущий трек в заголовок окна

Postby Driverz » Mon, 07 Oct 2013, 09:17

что нужно иметь для применения? ибо выдает ошибку: синтаксическая ошибка в кронтабе!!! В стеке мусор (16)
Line:
Code: Select all
FOUND-WINDOW S"  - Winamp" StringGetPos ?DUP

добавил: :
Code: Select all
StringGetPos { a1 u1 a2 u2 -- pos}
a1 u1 a2 u2 SEARCH IF DROP a1 - 1+ ELSE 2DROP 0 THEN ;
ошибка пропала. трек пишется в заголовке окна!
Driverz
 
Posts: 125
Joined: Fri, 06 Mar 2009, 13:06

Re: Winamp: текущий трек в заголовок окна

Postby SeMa » Mon, 07 Oct 2013, 10:34

Слово StringGetPos есть в плагине extwords.spf.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Winamp: текущий трек в заголовок окна

Postby Morituruz » Mon, 07 Oct 2013, 11:26

Спасибо, поправил первый пост.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 3 guests