Показать сообщение отдельно
Старый 12.02.2009, 22:00   #18
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Цитата:
Сообщение от jabbacat Посмотреть сообщение
Про горячую кнопку - очень надо, чтоб такой функционал был в самой программе. Не все пользователи - программисты, чтоб самому код писать.
Проверить не могу, но должно работь:
Autohotkey код.
При нажатии кнопки s записывает видео из темпа.
Код:
#Singleinstance force

s::Send_WM_COPYDATA("SAVE","CamGrabber")
return


Send_WM_COPYDATA( ParameterToSent, TargetTC ) ; функция высылки  пользовательской команды em_xyz
{
    ; В качестве параметров функция принимает имя команды em_xyz и целевое окно ТС
    VarSetCapacity( CopyDataStruct, 12 ) ; устанавливаем размер высылаемой структуры данных
;    InsertInteger( Asc( "E" ) + 256 * Asc( "M" ), CopyDataStruct ) ; вставляем в структуру то, что требует  для исполнения команд
    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) ; содержимое заполняемого байта
    }
}
Качаешь autohotkey, в текстовом редакторе создаешь файл (лучше с расширением ahk) и кидаешь туда все вышенаписанное. Записываешь. Даблкликаешь, убеждаешься, что все работает, дальше прилагающейся утилитой компилишь этот файл в exe. Запускаешь exe, удивляешься, что Autohotkey не жрет процессор и занимает мало памяти. Ставишь получившийся файл в автозагрузку...

Я так понимаю, что Autohotkey и так работает на очень большом количестве авто-компов, является просто мега-настраиваемой программой. У многих именно эта прога позволяет управлять компом с подрулевого джойстика.
__________________
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

Последний раз редактировалось Wanted; 16.02.2009 в 22:03.
SBorovkov вне форума   Ответить с цитированием