WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Visual Basic
  как отправить данные другому приложению?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

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

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.