|
#1
|
||||
|
||||
Быстрые фразы
Столкнулся с проблемой, итак:
Есть игра, в которой есть чат на клавишу t, хочу сделать быстро вставляемые фразы через свою прогу! 1. Как сделать горочие клавишы я знаю 2. А вот как передавать заранее записаный текст из edit-ов моей програмы в чужое приложени не пойму=( Какие у кого идеи |
#2
|
||||
|
||||
Нужно получить Handle нужного контрола и передать ему SendMessage
Код:
procedure TForm1.Button1Click(Sender: TObject); var wind,ediwind:HWND; begin wind:=findwindow('класс','имя'); editwind:=findwindowex(wind,0,'класс','имя'); sendmessage(editwind,wm_settext,0,lparam(pchar('text'))); end; Последний раз редактировалось deltas, 15.12.2010 в 19:11. |
#3
|
||||
|
||||
в чужое?.. ну как бы если это не предусмотрено разработчиками приложения и если чат не представляет собой какое-то отдельное окно или объект со своим Handle, а всего лишь нарисованное окошко (если я правильно понимаю в посте слово "игра"), то никак.
Разве что найти, как вскрывать память чужих процессов, нарыть в ней переменную, отвечающую за текст, и прописать туда (см. ArtMoney) Еще могу посоветовать попроще - если фокус ввода стоит на игре с чатом, то можно через KeybdEvent имитировать набор сообщения пользователем. И ещё одно - если активно окно игры, то вовсе не факт, что простые "горячие клавиши" сработают. Имхо тут лучше хук сделать. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 15.12.2010 в 19:13. |
#4
|
||||
|
||||
чат в игре методом нажал t
в низу строчка пишешь текст, жмешь интр и усе. типа как в контре |
#5
|
||||
|
||||
Как бы выразиться... Игра в каком смысле? В смысле формочка с компонентами, и на ней че-то делается (как обычное приложение), или окно, на котором рисуется всё? (LineAge2,Half-life,CS,...)
jmp $ ; Happy End! The Cake Is A Lie. |
#6
|
||||
|
||||
Цитата:
второй вариант |
#7
|
||||
|
||||
В таких играх обычно всё нарисовано, и хэндлов нет. Во всяком случае моя прога поиска окон находила только главное окно.
Тогда проще всего сделать хук для отлова "горячих клавиш", говорить форме твоей проги, мол пора печатать, и делать в цикле KeybdEvent (лучше со sleep()). jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
||||
|
||||
Цитата:
думаю в этом есть смысл, буду разбираться |