Тема: AHK и RR
Показать сообщение отдельно
Старый 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 вне форума   Ответить с цитированием