|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.08.2010, 11:44 | #1 | |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
Кликер
Сделал кликер- по принципу записываем коды нажатых клавиш и обрабатываем логи.
Но вот беда, в большинстве случаев при проигрывании записи, эмулируются не те клавиши что я нажимал почему это происходит? Выложил исходник Дело скорее всего в форматах переменных I и S Цитата:
Последний раз редактировалось Federal; 02.08.2010 в 12:31. |
|
02.08.2010, 12:31 | #2 |
Форумчанин
Регистрация: 01.09.2009
Сообщений: 197
|
S:=IntToStr(Ord(UpperCase(Key)));
Проверить возможности небыло. |
02.08.2010, 12:40 | #3 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
Неа не помогло
Нужно что бы I был в формате (key) я думал что это Byte оказалося не так) ord(key)-Возврат номера А как сделать перевозврат возврата?))) Последний раз редактировалось Federal; 02.08.2010 в 12:46. |
02.08.2010, 12:52 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
key это char
будто не посмотреть чтоль... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
02.08.2010, 13:03 | #5 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
Нет все-таки I должен быть Byte
проблема в строке S:=IntToStr(Ord(Key)); просто до меня дошло что функция keybd_event(I, 0, 0, 0); keybd_event(I, 0, KEYEVENTF_KEYUP, 0); не поддерживает числа от Ord(Key) keybd_event(byte, byte, cardinal, cardinal); А Ord(Key) дает число не от формата Byte Теперь я вообще в растерянности Видимо сама функция Ord(Key) дает лишь порядковый номер клавиши а I должно быть кодом типа $0D Последний раз редактировалось Federal; 02.08.2010 в 13:09. |
02.08.2010, 13:13 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
потому что в той функции используется виртуальный код клавиши а не ord-номер символа(код можно в OnKeyUp/Down взять)
хоть бы справку почитали... (в OnKeyPress Key:Char) Цитата:
а ваше $0D=13=#13(перевод каретки) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 02.08.2010 в 13:15. |
|
02.08.2010, 13:28 | #7 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
ЗАРАБОТАЛО)))
Вот исходник (кому надо) самого простого кликера... Спасибо большое 'Пепел Феникса'- тока вот в весы пока не добавляются, ну да ладно позже добавлю. О добавил... Блин а как записать нажатия клавиш без фокуса программы? Последний раз редактировалось Stilet; 03.08.2010 в 08:52. |
02.08.2010, 15:47 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
через глобальный хук(в поиске есть примеры кей логгера)
блин, когда, наконец, мой ник склонять начнут Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 02.08.2010 в 15:53. |
02.08.2010, 15:56 | #9 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
Да легко :
Код:
Никогда не знаешь, где тебе повезет... (Фрай)
|
02.08.2010, 19:56 | #10 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
Слямзил библиотеку
Вот только одного не понял как сделать что бы в лог писался код клавиши а не 'S D F G H J' Код:
Последний раз редактировалось Stilet; 03.08.2010 в 08:53. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно написать кликер | promiks | Фриланс | 4 | 30.05.2010 01:05 |
Кликер ссылок | SoftKoc | Работа с сетью в Delphi | 8 | 04.04.2010 04:26 |