Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
Timothy
0 / 0 / 0
Регистрация: 30.10.2008
Сообщений: 3
#1

Как переслать в другое окно нажатую комбинацию клавиш? - VB

30.10.2008, 12:48. Просмотров 1822. Ответов 16
Метки нет (Все метки)

Сабж.
http://www.cyberforum.ru/visual-basic/thread496474.html
Заранее спасибо всем ответившим.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2008, 12:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как переслать в другое окно нажатую комбинацию клавиш? (VB):

Передача нажатий клавиш из Excel в другое приложение.
Попрошу не пинать сразу ногами, если не в тот раздел запостил. И так имеется...

Вввести N и вывести в другое окно значение суммы S=1+2+3...+N
Вввести N и вывести в другое окно значение суммы S=1+2+3...+N

Свернуть окно, развернуть другое и так циклически
Народ, подскажите, в vbs совсем не силен, но задача стоит такая. Есть окно с...

Каким образом отобразить в форме другое окно?
Каким образом отобразить в форме другое окно (например из другой программы)...

Как сделать, чтобы при нажатии кнопки её картинка менялась на нажатую и обратно
Как сделать, чтобы имитировалось нажатие? То есть картинка кнопки менялась на...

16
IgorB
30.10.2008, 16:09 #2
Read about 'Key_Down' and 'Key_Press' events in Help.
messer
30.10.2008, 20:01 #3
Человек русским языком пишет в ДРУГОЕ окно...
Тебе нкжно использовать ф-цию API SendMessage
Timothy
0 / 0 / 0
Регистрация: 30.10.2008
Сообщений: 3
31.10.2008, 13:54  [ТС] #4
А поподробнее можно, плиз, а то я в API не совсем силен. Заранее спасибо.
0
messer
31.10.2008, 20:37 #5
Поподробней в и-нете миллион примеров.
Там не одну ф-цию нужно.Находиш дискриптор окна приемника.
или Находишь окно(API: FindWindow) посылает месадже (SendMessage) с параметрами
anjey
2 / 2 / 1
Регистрация: 16.01.2008
Сообщений: 359
02.11.2008, 11:36 #6
или другой вариант, функция SendKeys
0
vladeD
0 / 0 / 0
Регистрация: 26.06.2007
Сообщений: 59
05.11.2008, 11:32 #7
Столько муры наотвечали, что никто не сможет выполнить поставленную задачу!!! А нельзя конкретно один раз, что бы поняли и малолетки?
0
anjey
2 / 2 / 1
Регистрация: 16.01.2008
Сообщений: 359
05.11.2008, 11:52 #8
ну-у-у. слушай, может и программу за тебя написать....
тебе столько наводок дали.
кстати, хочешь конкретных примеров,ставь задачу конкретнее, что послать,кому,ково, и куда..
0
Timothy
0 / 0 / 0
Регистрация: 30.10.2008
Сообщений: 3
05.11.2008, 13:04  [ТС] #9
Фишка в том, что из проекта VB надо закрыть ДОС-овское окно, послав туда некоторую комбинацию клавишь, например Alt+F10
0
bubuch
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 12
05.11.2008, 16:30 #10
На счет SendKeys Вы батенька это зря. Человек спрашивает про окно Доса, какой такой SendKeys?
Можно попользовать keybd_event.
0
bubuch
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 12
06.11.2008, 10:48 #11
To Timothy: keybd_event-это именно то, что надо. Работает 100%
0
anjey
2 / 2 / 1
Регистрация: 16.01.2008
Сообщений: 359
06.11.2008, 11:26 #12
эй! народ, ну ка колитесь,что за event такой ! keybd_event
0
bubuch
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 12
06.11.2008, 12:08 #13
API однако, имитирует нажатие клавиш
0
AASoft
0 / 0 / 0
Регистрация: 25.06.2008
Сообщений: 129
06.11.2008, 20:21 #14
a mozno mne prislat` primer s ispol`zovaniem keybd_event
Spasibo.
0
Lirco
0 / 0 / 1
Регистрация: 24.03.2008
Сообщений: 20
08.11.2008, 20:59 #15
Только не забывай, что окно, которому ты хочешь закинуть эти клавиши должо к тому моменту, когда ты эмулируешь нажатие клавишь, иметь фокус клавиатурного ввода. Тебе придется использовать функцию, которая может сделать активным окно другого потока (по отношению к вызываюему потоку). Вероятно подойдет SetForegroundWindow. После передачи фокуса ввода можно использовать функцию keybd_event. Где смотреть декларацию этих функций и описание работы? Дэн Апплман 'Win32 API for Visual Basic'. Там найдешь ответы на большинство вопросов. Если с англицким дружишь - в MSDN эти функции оч хорошо описаны.
0
Lirco
0 / 0 / 1
Регистрация: 24.03.2008
Сообщений: 20
08.11.2008, 21:03 #16
вот тебе пример:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib 'user32.dll' (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
    'Print the key on the form
    Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
    'KPD-Team 2000
    'URL: [url]http://www.allapi.net/[/url]
    'E-Mail: [email]KPDTeam@Allapi.net[/email]
    'Clear the form
    Me.Cls
    keybd_event VK_H, 0, 0, 0   ' press H
    keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0   ' release H
    keybd_event VK_E, 0, 0, 0  ' press E
    keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0  ' release E
    keybd_event VK_L, 0, 0, 0  ' press L
    keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' release L
    keybd_event VK_L, 0, 0, 0  ' press L
    keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0  ' release L
    keybd_event VK_O, 0, 0, 0  ' press O
    keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0  ' release O
End Sub
0
bubuch
0 / 0 / 0
Регистрация: 05.11.2008
Сообщений: 12
09.11.2008, 00:34 #17
И про аппаратные скан-коды клавиатуры не забыть. В примере они все 0, в Досе не пройдет.
...(тихо так) имхо
0
09.11.2008, 00:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2008, 00:34
Привет! Вот еще темы с решениями:

Отследить нажатую комбинацию клавиш
Хочу написать для себя маленькую утилиту которая при копировании ссылки...

Как отправить в активное окно комбинацию клавиш Ctrl+T?
Как отправить в активное окно комбинацию клавиш Ctrl t ?

Отправить сочетание клавиш в другое окно
У меня есть игра, я хочу послать в активное окно игры клавиши ( 1 - 3 ) или же...

Как записать комбинацию клавиш?
сем привет! Подскажите пожалуйста, как правильно записать комбинацию клавиш в...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru