С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/36: Рейтинг темы: голосов - 36, средняя оценка - 4.94
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169

Перехват и эмуляция клавиш

23.07.2009, 21:33. Показов 6994. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите написать программу которая будет перехватывать нажатие клавиш в другой программе и эмулировать нажатие других (допустим нажали "к" а вместо неё программа приняла "сд")!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2009, 21:33
Ответы с готовыми решениями:

перехват клавиш
я использую вот эту процедуру procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key...

Перехват нажатия клавиш и сохранение в БД
Ребята, есть простейшая программа перехвата нажатия клавиш клавиатуры. Нужно сделать так, чтоб данные о нажатых клавишах сохранялись в БД....

Эмуляция нажатия клавиш
Всем привет! Помогите написать простенькую программу. Что должна делать? Вводим число в Edit (в секндах) должно использоваться через...

12
 Аватар для red_mail
4 / 4 / 1
Регистрация: 25.11.2008
Сообщений: 107
25.07.2009, 19:52
Антивирус не даст тебе это сделать, посчитает твою прогу вирусом или трояном, т.е. на своем компе ты еще можешь отключить антивирус, но у других твоя программа работать не будет.

Попробуй как вариант:
Delphi
1
if getasynckeystate(vKey: integer) <> 0 then ....
код перехватывает нажатие клавиш, но только на своей форме!
0
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169
26.07.2009, 22:20  [ТС]
Это не троян поэтому мне не важно
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
26.07.2009, 23:41
перехватывать нажатие клавиш в другой программе
ищи инфу по хукам (в нете полно инфы о кейлоггерах на делфи) (Keyboard HOOK)

эмулировать нажатие других (допустим нажали "к" а вместо неё программа приняла "сд")!
keybd_event() (WinAPI)
0
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169
27.07.2009, 10:00  [ТС]
Мне надо чтобы программа эмулировала нажатие клавиш в другие программы
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
27.07.2009, 11:19
Мне надо чтобы программа эмулировала нажатие клавиш в другие программы
А keybd_event(), что по твоему делает?

Пример:
Создай пустое приложение с формой в делфи, два раза кликни по форме, вместо обработчика FormCreate, помести следующий код:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.FormCreate(Sender: TObject);
begin
  while True do
  begin
    Sleep(500);
    keybd_event(VK_NUMPAD7, 0, 0, 0);
    keybd_event(VK_NUMPAD7, 0, KEYEVENTF_KEYUP, 0);
  end;
end;
Запускай прогу только под дельфийским отладчиком.
После запуска измени фокус ввода на другое приложение, типа Блокнота, чтобы фокус ввода имел контрол, спопобный принимать, нажатые клавиши.
Этот прога, непрерывно печатает 7.
1
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169
29.07.2009, 10:26  [ТС]
А как изменить на другое приложение?
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
29.07.2009, 10:44
А как изменить на другое приложение?
кликни по окну мышкой
0
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169
29.07.2009, 11:12  [ТС]
А если заранее известно приложение то как можно посылать нажатие именно в него?
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,893
29.07.2009, 11:20
Если ты знаешь заголовок окна, например, 'Безымени - Блокнот', то можно найти идентификатор, окна с помощью функции FindWindow(), а фокус ввода установить функцией SetForegroundWindow().

Delphi
1
SetForegroundWindow(FindWindow(nil, 'Безымени - Блокнот'));
0
113 / 113 / 13
Регистрация: 01.10.2008
Сообщений: 876
03.08.2009, 15:35
Ставь хуки, нужно сделать DLL библеотеку с функциями -перехватчиками, потом в программе поставить хук с помощью API функции SetWindowsHookEx, эта схема будет перехватывать системные сообщения с клавиатуры
0
50 / 49 / 16
Регистрация: 12.03.2009
Сообщений: 133
05.08.2009, 09:20
Цитата Сообщение от martb1n Посмотреть сообщение
А как изменить на другое приложение?
Либо сделать другое приложение активным и использовать ф-цию GetActiveWindow - возращает Handle активного окна и использовать этот Handle в своем HOOK-е
0
A.S.
21.08.2009, 22:38
не стал создавать новую тему, как перехватить клавишу Ctrl и сделать так что бы она работала как Shift? и блокировать сочетания клавиш с Ctrl, для работы с текстом
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.08.2009, 22:38
Помогаю со студенческими работами здесь

Эмуляция нажатий клавиш
У меня есть залогированы клавиши в блокноте в таком виде(много): Как мне заставить их из блокнота или из Мемо нажиматся в цикле? ...

Эмуляция хитрых клавиш.
Как эмулировать нажатие таких клавиш, как ':', '&gt;', '&lt;', ' &quot; ', &quot;?&quot; ? Заранее спасибо!

Эмуляция нажатия клавиш
помогите с кодом разобраться, не работает( Var PWD, Login : String; procedure PressingKeyboard(Key: byte; extra:...

Эмуляция нажатие клавиш в Windows 8
Доброго времени суток! Очень нуждаюсь в вашей помощи... Есть данный код: hwndb := FindWindow(nil, PChar('Название...

Эмуляция нажатия комбинации клавиш
доброго времени суток) народ, кто знает, подскажите пожалуйста, такая ситуация: зарегистрированы Hotkeys ctrl+J можно ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru