Sendkeys

  • Автор темы T1000
  • Дата начала
T

T1000

Доброго всем!

Заранее извиняюсь за возможность кривого изложения моих желаний, поэтому начну издалека.
Вопрос первый. Как правильно пользоваться функцией "SendKeys", ибо даже пример из хелпа выдает ошибку "Illegal fuction call".
Буду просто премного благодарен за разъяснения, где\как и при каких условиях можно пользоваться данной функцией.

Вопрос второй. При работе документами в базе, время от времени приходится загружать библиотеку (dll). При инициализации оной dll выскакивает обычный messagebox. Как сэмитировать нажатие на него кнопки Enter, чтобы этим не заморачиваться.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
это какое-то хакерство :RTFM:
а нет ли библиотеки без оной особенности, но с нужным функционалом - может стоит так решить "проблему"
 
N

nvyush

Справку внимательно читали?
SendKeys is not supported on Macintosh and UNIX platforms and is not supported in Lotus Domino and Notes.
Если речь о винде, то можно попробовать WinAPI: keybd_event
Код:
Declare Public Sub keybd_event Lib "user32" (Byval bVk As Byte, Byval bScan As Byte, Byval dwFlags As Long, Byval dwExtraInfo As Long)

Public Const KEYEVENTF_KEYDOWN = &H0
Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_RETURN = &HD ' ENTER key

Sub Enter()
keybd_event VK_RETURN, 0, KEYEVENTF_KEYDOWN, 0
keybd_event VK_RETURN, 0, KEYEVENTF_KEYUP, 0
End Sub
 
T

T1000

2nvy конечно же я прочел предварительно справку. вопрос - на фиг тогда вообще эта функция нужна?
с винапи щас буду пробовать. (но заранее "спасибо" все равно скажу!)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
T1000
есть ещё КОМа :RTFM:
 
T

turumbay

Вопрос второй. При работе документами в базе, время от времени приходится загружать библиотеку (dll). При инициализации оной dll выскакивает обычный messagebox. Как сэмитировать нажатие на него кнопки Enter, чтобы этим не заморачиваться.
вопрос не по адресу. это к спецам по win api.
для начала можно почитать здесь:
по ссылке: понравилась мысль, что не нужно ставить hook - достаточно по таймеру проверять, что окно всплыло и гасить его.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!