· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› эмуляция клавиши

Посл.отвђт Сообщенiе


Дата: Дек 19, 2003 17:23:30

Как эмулировать нажатие клавиши в Windows?
Я имею в виду - в системе. Мне не надо SendMessage(hWnd,WM_KEYDOWN,VK_???,nKeyState). Даже если посылаешь его десктопу, всё-равно это не системное событие. Мне нужно программно нажимать Scroll Lock. Да так, чтобы лампочка загоралась.
Наилучший вариант, который я нашёл - использовать неприметную апишную функцию "keybd_event" из user32.dll.
Кто знает лучше?


Дата: Дек 20, 2003 11:53:08

Если под НТ, то можно напрямую с клавиатурным девайсом поработать. Пример в аттаче - хотел в следующую версию KmdKit положить, да ладно уж. Кстати это известная фича.

2013696553__KbdGarland.rar


Дата: Апр 13, 2004 18:12:40

А так, чтобы в любой версии винды работала, то видно лишь keybd_event. Но ничего, функция вроде бодрая.


Дата: Апр 13, 2004 18:38:49

Если вы имеете книгу Зубкова, то там есть программка mig.asm, которая циклически переключает светодиоды, там все реализовано через 60h порт и команду 0EDh. Скачать файлы можно на сайте публикации книги, адрес не помню... :)
Может быть тебя устроит этот вариант.


Дата: Апр 13, 2004 19:22:24

SolidCode
Через SetKeyboardState можно лампочки зажигать, да и кнопки нажимать.
Модуль в аттаче (это для делфи, но там все на ВинАпи, так что разберешься).

1061892632__SNDKEY32.PAS


Дата: Апр 14, 2004 04:41:59

KiNDeR
Мне надо из винды, а она так просто к портам не пускает. В Досе я такое делал.
Max
А SetKeyboardState я посмотрю, чем отличается от keybd_event.
А если нужна эмуляция действий мыши, то есть mouse_event.


Дата: Апр 14, 2004 16:53:33 · Поправил: Four-F

SolidCode, смотри SendInput - она более гибка и универсальна.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105