You are not logged in.
Pages: 1
{$CLEO} const Flag=0@ WM_USER=1024 IPC_ISPLAYING=104 CURRENT_RADIO_STATION=0xBA679A SET_RADIO_STATION=0x507E10 MP3_PLAYER=12 RADIO_OFF=13 end 0AA2: 1@ = load_library "user32.dll" // IF and SET 0AA4: 2@ = get_proc_address "FindWindowA" library 1@ // IF and SET 0AA4: 3@ = get_proc_address "SendMessageA" library 1@ // IF and SET while true wait 0 if not Actor.Driving($PLAYER_ACTOR) then Flag=False Continue end 0AA7: call_function 2@ num_params 2 pop 0 0 "Winamp v1.x" 4@ // ищем Winamp if 4@==0 // не запущен then 0AB1: call_scm_func @set_radio_station 2 Flag MP3_PLAYER Flag else 0AA7: call_function 3@ num_params 4 pop 0 IPC_ISPLAYING 0 WM_USER 4@ 5@ // запрашиваем статус if 5@==1 // Winamp в состоянии воспроизведения then 0AB1: call_scm_func @set_radio_station 2 Flag RADIO_OFF Flag // вырубаем радио else 0AB1: call_scm_func @set_radio_station 2 Flag MP3_PLAYER Flag end end end :set_radio_station 0A8D: 2@ = read_memory CURRENT_RADIO_STATION size 1 virtual_protect 0 if and 803B: not 1@ == 2@ // (int) Flag==False then 0AA5: call SET_RADIO_STATION num_params 1 pop 0 1@ Flag=True end 0AB2: ret 1 Flag
Автоматически переключает радио на "любимую" станцию (в данном случае MP3 Player). Если запущен Winamp и он находится в состоянии воспроизведения, то радио выключается.
Last edited by RDH (17-07-2010 10:46)
Offline
Хорошая, свежая идея. Но код можно оптимизировать ))
Offline
Цикл @radio заменить на while true..end, @set_radio_station оформить как scm-функцию, убрать лишние метки
Offline
Pages: 1