Автор
|
Тема: как отправить данные другому приложению?
|
Vasya2000 |
опубликован 25-08-2001 12:00 MSK
Надо автоматизировать ввод данных. Есть прога, она кушает данные из командной строки, но топтать клаву - влом. Былобы проще слать ей нажатые клавиши. Но как??? Подскажите...
|
Lamer
|
опубликован 27-08-2001 02:12 MSK
SendKeys поможет!!!! |
Vasya2000
|
опубликован 27-08-2001 14:42 MSK
А подробнее можно? |
Vasya2000
|
опубликован 27-08-2001 15:47 MSK
Я понимаю, что сендкей поможет, но перед его использованием нуно передать фокус той проге. Как? |
akif
|
опубликован 28-08-2001 14:32 MSK
сделай окно (always on top) |
Lamer
|
опубликован 15-09-2001 00:27 MSK
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 |
Vasya2000
|
опубликован 22-09-2001 07:33 MSK
это все конечно зашибись, но та прога которой надо переслать нажатие клавиши работает с командной строкой. поэтому SendKeys нифига не помогает; мне кажется SetForegroundWindow тоже не поможет, ибо я уже пробовал слать сообщения sendmessage - ну не помогает!!! это вообще возможно?? |
Lamer
|
опубликован 22-09-2001 00:12 MSK
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) Система не отличит такой последовательный ввод от настоящего! |
Vasya2000
|
опубликован 23-09-2001 16:05 MSK
пожалуйста подробнее! |
Lamer
|
опубликован 24-09-2001 00:29 MSK
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! |