PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка программ

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2008, 14:15   #11
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Собрался тут, попробовал все.
Итог:
1. для того, чтобы переключать радио и mp3 одинаковым образом, команду на переключение трека надо давать не винампу, а РР.
2. Когда я переключаю трек кликая на кнопку РР, то у него срабатывает скрипт, который работает по-разному в зависимости от того, что за .skin файл находится на экране. К примеру, igo.skin после отдавания команды Next затем активирует igo_pc.exe. Я же могу либо клинкуть на экране, либо каким-либо образом послать в РР напрямую команду Next.

Получается, что когда я шлю в RR команду Next, то igo перестает быть активным приложением и перестает работать.

Я пробовал посылать ему текстовую команду напрямую, через wm_copydata. Итог тот же - RR становится активным приложением (видимо, у него это изнутри заложено) и IGO перестает работать...

Получается, что надо клинать на экране?...

То есть я получил ту же проблему, надо управлять RR, не вызывая его активацию.
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Старый 10.10.2008, 15:18   #12
vad3
Пользователь
 
Регистрация: 29.03.2007
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2008\Chevrolet Captiva
Сообщений: 89
vad3 is on a distinguished road
По умолчанию

я igo не пользую, а ситигид работает нормально неактивным.
может попробовать обратно активировать навигашку как тут:
http://compcar.ru/forum/showthread.p...3009#post13009
Код:
^!+f::			; RR command NEXT
IfWinExist, RoadRunner
{
	WinGet, active_pid, PID, A
        WinActivate, RoadRunner
	WinWaitActive, RoadRunner, , 2
	Send n
	WinActivate, ahk_pid %active_pid%
}
return
__________________
Текущий проект
Мой ПРОШЛЫЙ проект: http://forum.pccar.ru/showthread.php?t=2295
Готовность: 80% (уже езжу)
[RR, монитор noname 10.4" touch, мать MSI 945GM3-F, Core 2 Duo E2160 1.8Ghz, усилитель DLS MA41, Sound Creative X-Fi mX Xtreme Gamer PCI, TV-Tuner GoTView PCI DVD2 Deluxe FM internal, БП SL]
vad3 вне форума   Ответить с цитированием
Старый 10.10.2008, 22:52   #13
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

По поводу управления RR без акти вации его: я таки ступил, mw_copydata не активирует RR!

вот код.

Send_WM_COPYDATA( ParameterToSent, TargetTC ) ; функция высылки Тоталу пользовательской команды em_xyz
{
VarSetCapacity( CopyDataStruct, 12 ) ; устанавливаем размер высылаемой структуры данных
InsertInteger( 1, CopyDataStruct ) ; вставляем в структуру то, что требует ТС для исполнения команд
InsertInteger( StrLen( ParameterToSent ), CopyDataStruct, 4 ) ; добавляем собственно команду (+ символ конца строки)
InsertInteger( &ParameterToSent, CopyDataStruct, 8 ) ; добавляем указатель на собственно команду
SendMessage, 0x4A,, &CopyDataStruct,, %TargetTC% ; шлём команду Тоталу, обязательно Send, а не Post (0x4A = WM_COPYDATA)
Return, ErrorLevel ; выходим из функции и возвращаем ответ SendMessage'а
}
;-----------------------------------------------------------------------------
InsertInteger( pInteger, ByRef pDest, pOffset = 0, pSize = 4 ) ; функция заполнения структуры данными
{
Loop, 4 ; копируем каждый байт целого числа в структуру как сырые двоичные данные
{
DllCall("RtlFillMemory" ; заполняем структуру нашими данными
, "UInt" , &pDest + pOffset + A_Index-1 ; указатель на адрес, с которого начинается заполнение
, "UInt" , 1 ; размер заполняемой структуры в байтах
, "UChar", pInteger >> 8*( A_Index-1 ) & 0xFF) ; содержимое заполняемого байта
}
}

F7::
{
ifWinExist, ahk_class ThunderRT6FormDC
{
Send_WM_COPYDATA( "Next", "RoadRunner" ) ; шлём команду РР
return
}
else
{
MsgBox, not found
return
}
}

F6::
{
ifWinExist, ahk_class ThunderRT6FormDC
{

Send_WM_COPYDATA( "Prev", "RoadRunner" ) ; шлём команду РР
return
}
else
{
MsgBox, not found
return
}
}

Пробовал запускать и жать F6 и F7, текущее приложение не меняется, РР активным не становится, это то, что тебе надо!

зы. но Igo почему-то перестает быть активным, в отличие от любого другого приложения :-).
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 09:08.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot