Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.139.62.103] |
|
Сообщ.
#1
,
|
|
|
Надо автоматизировать ввод данных. Есть прога, она кушает данные из командной строки, но топтать клаву - влом. Былобы проще слать ей нажатые клавиши. Но как???
Подскажите... |
Сообщ.
#2
,
|
|
|
SendKeys поможет!!!!
|
Сообщ.
#3
,
|
|
|
А подробнее можно?
|
Сообщ.
#4
,
|
|
|
Я понимаю, что сендкей поможет, но перед его использованием нуно передать фокус той проге.
Как? |
Сообщ.
#5
,
|
|
|
сделай окно (always on top)
|
Сообщ.
#6
,
|
|
|
Public Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
Sub SendIt() Dim rc as Long rc = SetForegroundWindow(ProgramForm.hwnd) SendKeys "HELLO!" End Sub |
Сообщ.
#7
,
|
|
|
это все конечно зашибись, но та прога которой надо переслать нажатие клавиши работает с командной строкой.
поэтому SendKeys нифига не помогает; мне кажется SetForegroundWindow тоже не поможет, ибо я уже пробовал слать сообщения sendmessage - ну не помогает!!! это вообще возможно?? |
Сообщ.
#8
,
|
|
|
SetForegroundWindow всего лишь передаст окну фокус! Если вторая прога - прога DOS, то о передачи клавиш SendKeys-ом и речи быть не может! Можно после передачи фокуса создать искусственное событие нажатия клавиши с помощью ф-ции keybd_event.
Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Система не отличит такой последовательный ввод от настоящего! |
Сообщ.
#9
,
|
|
|
пожалуйста подробнее!
|
Сообщ.
#10
,
|
|
|
Public Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
bVk - код имитируемой виртуальной клавиши bScan - аппаратный скан-код клавиши dwFlags - ноль или одна из следующих констант: KEYEVENTF_EXTENDEDKEY - клавища является расширенной и имеет префиксный код 0xE0 KEYEVENTF_KEYUP - имитировать отпускание клавиши (вроде вызова события KeyUp) А вообще не поленись, полазий в API Viewer! |