Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Нажатие клавиш программой


Автор: GrunT 2.1.2007, 19:09
Нужно создать программку, котора будет как бы "нажимать" клавиши. Т.е. я ее запускаю, она сворачивается в трэй допустим, далее открываю блокнот (или дюбую другую программу), и она мне допустим печатает каждые 2-3 минуты символ "а" (или любой другой символ). Но это только пример, смысл тут не в том, чтобы напечатать символ, а в том, чтобы происходило как бы нажатие клавиши. Подскажите какими функциями и вобще как делать? Программер я не очень хороший. Буду очень благодарен за помощь.

Автор: _hunter 2.1.2007, 19:34
SendInput

Автор: GrunT 2.1.2007, 19:46
Нельзя ли немножко поподробнее? Аргументы какие что значат? Можно ли небольшой пример данной функции, а не только название. Извините, но я ламак просто, поэтому мне надо разжевывать smile

Автор: _hunter 2.1.2007, 20:33
аргументы -- в MSDN'e, пример в гугле...

Автор: GrunT 2.1.2007, 20:56
нафик тогда форум нужен скажи?

Автор: Romikgy 2.1.2007, 21:01
Цитата(GrunT @  2.1.2007,  19:56 Найти цитируемый пост)
нафик тогда форум нужен скажи? 

за тя код писать тогда ищи по форуму Центр помощи,
а здесь те только направление подскажут,
да и в внизу страницы посмотри!

Автор: zkv 2.1.2007, 21:03
Цитата(GrunT @  2.1.2007,  20:56 Найти цитируемый пост)
нафик тогда форум нужен скажи?

ну явно не для чтения лекций, здесь помогают решать проблемы, но не обучают программированию.

Автор: witex 2.1.2007, 21:46
в МСДН всё есть, написанны аргументы, и тд. Если не понимаешь по англиский, переводчики на что?

Автор: GrunT 2.1.2007, 22:17
Так с нажатием разобрался. Если кому пригодиться. 

Код

INPUT inp[2]; 
memset(inp,0,sizeof(inp)); 

inp[0].type=INPUT_KEYBOARD; 
inp[0].ki.wVk=0xBB; //тут код клавиши
inp[0].ki.dwFlags=0;

inp[1].type=INPUT_KEYBOARD; 
inp[1].ki.wVk=0xBB; //тут код клавиши
inp[1].ki.dwFlags=0; 

SendInput(2,inp,sizeof(INPUT));


Ответьте на вопрос пожалуйста: Отличается ли как-нибудь SendInput от самого нажатия клавиатуры? Т.е. можно ли создать такую программу, которая смогла бы различить, нажатие произведено с клавиатуры, либо данной функцией? 

Автор: Romikgy 2.1.2007, 23:32
Цитата(GrunT @  2.1.2007,  21:17 Найти цитируемый пост)
можно ли создать такую программу, которая смогла бы различить, нажатие произведено с клавиатуры, либо данной функцией? 

можно

Автор: leo84 13.10.2009, 04:40
А не подскажете как послать сообщение о нажатии клавиши определенному окну.. Спасибо

Автор: Romikgy 13.10.2009, 09:24
SendMessage+WM_CHAR
or 
WM_KEYDOWN
+
WM_KEYUP

Автор: Comm 13.10.2009, 13:11
Код

KEYBDINPUT kbr;

   kbr.wVk=68;
   kbr.wScan=0;
   kbr.dwFlags=KEYEVENTF_EXTENDEDKEY;
   kbr.time=0;
   kbr.dwExtraInfo=0;

kbr.wScan=0; //Никак не могу понять зачем нужен этот параметр ?
Спасибо за внимание =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)