powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сэмитировать нажатие клавишь на клаве
16 сообщений из 16, страница 1 из 1
Как сэмитировать нажатие клавишь на клаве
    #32399805
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в своей проге сэмитировать нажатие клавишь на клаве, чтобы в другой программе это отобразилось
--
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399809
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй на АПИ записать в буфер клавиатуры....
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399833
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как я в него запишу?
--
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399848
leTaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще я это делал 1 раз и давно (на 3 курсе)... Поспрашивай у продвинутых С-ишников они должны знать, там есть какая-то стандартная функция работы с 21 прерыванием (или 12)
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399858
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что GetGUIThreadInfo()+SendMessage().
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399870
Gedeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если известно название окна программы, получичить его hwnd с помощью findwindow(), а потом sendmessage()
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32399881
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ничего не известно
--
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32400070
SnowMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если совсем ничего не известно, то и не получится. Надо найти какую-то зацепку и определить HWND требуемого окна с помощью функций:

EnumWindows
EnumWindowsProc
FindWindow
FindWindowEx
GetDesktopWindow
GetForegroundWindow
GetLastActivePopup
GetNextWindow
GetParent
GetTopWindow
GetWindow
GetWindowPlacement
GetWindowRect
GetWindowText
GetWindowTextLength
GetWindowThreadProcessId

Что-то должно подойти в зависимости от зацепки.

P.S. Через прерывание тоже не получится, т.к. требуется работа с портами 60h и 61h, они во всех версиях Windows закрыта, если мне конечно память не изменяет. Модно только методом написания драйвера, чтобы выполнялось в каком-то привелигированном кольце защиты.
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32400403
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как понял, человек хочет программно нажать hotkey, правильно?
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32400986
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, мне надо считать данные из СОМ-Порта, и программно нажать соответствующие клавиши (данные штрих кода).
Считать я считываю, а с эмитировать нажатие на клаву не получается
--
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401164
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А то что я написал, ты пробовал?
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401587
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Окно то я нахожу без проблем, даже ему заголовок меняю:
Код: plaintext
1.
2.
3.
4.
HWND hActive = ::GetForegroundWindow();
if(hActive)
{
        ::SetWindowText(hActive,m_sBarcode);
}

но как вставить текст в позицию курсора? вот в чем вопрос

--
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401636
Snow_Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Набо попробовать:
SendMessаge(hActive, WM_CHAR, символ, 0);
или
SendMessаge(hActive, WM_KEYDOWN, код клавиши, 0);
SendMessаge(hActive, WM_KEYUP, код клавиши, 0);
или
SendMessаge(hActive, WM_KEYDOWN, код клавиши, 0);
SendMessаge(hActive, WM_CHAR, символ, 0);
SendMessаge(hActive, WM_KEYUP, код клавиши, 0);
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401643
Hunter_eea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю тебе строку m_sBarcode надо с имитировать?
тогда вот:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if (m_sBarcode !="")
{
//Имитация ввода с клавиатуры символов штрихкода
for (int i= 0 ;i<m_sBarcode.GetLength();i++)
{
keybd_event( unsigned short(m_sBarcode.GetAt(i)),0x45,KEYEVENTF_EXTENDEDKEY |  0 , 0  );//Нажали
keybd_event( unsigned short(m_sBarcode.GetAt(i)),0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );//Отпустили
}
//Имитация нажатия энтера
keybd_event( VK_RETURN,0x45,KEYEVENTF_EXTENDEDKEY |  0 , 0  );
keybd_event( VK_RETURN,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
}

--
Best regards by
-=]HUNTER[=-
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401744
rst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак вставить текст в позицию курсора? вот в чем вопрос
Edit control что-ли не можешь найти?

EnumChildWindows.

Просто нажатия кнопок эмулировать все-таки нехорошо как-то..
Мало-ли что за прога случайно фокус клавы иметь может..

А что за программа кстати?
Может 'покультурней' варианты найдутся? :)
...
Рейтинг: 0 / 0
Как сэмитировать нажатие клавишь на клаве
    #32401868
DJStealth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прога: универсальный драйвер для сканера штрих-када и терминала сбора данных, висит в трее считывает память сканера(терминала) и если там не мусор, т.е. есть считанный штрих код, то имитирует нажатие соответствующих клавиш+Enter

Спасибо hunter_eea

Тема закрыта

--
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сэмитировать нажатие клавишь на клаве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]