Страница: 1 |
Страница: 1 |
Вопрос: Имитация нажатия клавиш на клавиатуре
Добавлено: 11.04.07 19:24
Автор вопроса: Vital177abc | ICQ: 250109240
Как симетировать нажатие клавиш на клавиатуре?
Подскажите кто знает.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #1
Добавлено: 11.04.07 20:50
SendKeys
GetAsyncKeyState
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 11.04.07 21:49
А теперь обратите внимание на эту тему
http://vbnet.ru/forum/show.aspx?id=136918
Как мне Vital177abc не послать в поиск? Или я опять флудер, флудераст, флудило, занимаюсь только флудерством и флудингом? Большенство людей такие темы просто игнорируют, а нормальные модераторы на нормальных форумах закрывают тему сразу. Я же, вежливо прошу топстартера попробовать найти ответ самому, воспользовавшись любой поисковой системой в интернете
Номер ответа: 3
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #3
Добавлено: 11.04.07 23:19
Хакер, ты ФЛУДЕР, ибо ответ был уже дан, причем практически полный для среднего уровня программера и ты опять влез со своими претензиями!
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 11.04.07 23:51
Ну и что, что ответ уже дан? За то доходчиво объяснил в каких ситуациях стоит отправлять в поиск...
Номер ответа: 5
Автор ответа:
Vital177abc
ICQ: 250109240
Вопросов: 3
Ответов: 4
Профиль | | #5
Добавлено: 11.04.07 23:55
Спасибо.
Если можешь приведи пожайлуста строчку использования SendKeys, GetAsyncKeyState.
Зарание очень благодарен.
Номер ответа: 6
Автор ответа:
Vital177abc
ICQ: 250109240
Вопросов: 3
Ответов: 4
Профиль | | #6
Добавлено: 11.04.07 23:57
Я прийму к сведению сказаное HACKERом и постараюсь больше не флудить.
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 12.04.07 00:28
Это не флуд, это просто нежелание воспользоваться поиском.
Номер ответа: 8
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #8
Добавлено: 12.04.07 09:20
SendKeys
(из MSDN)
ReturnValue = Shell("calc.exe", 1) ' Run Calculator.
AppActivate ReturnValue ' Activate the Calculator.
For I = 1 To 100 ' Set up counting loop.
SendKeys I & "{+}", True ' Send keystrokes to Calculator
Next I ' to add each value of I.
SendKeys "=", True ' Get grand total.
SendKeys "%{F4}", True ' Send ALT+F4 to close Calculator.
Извиняюсь за GetAsyncKeyState, на автомате вписал. Эта функция возвращает код нажатой клавиши.
Номер ответа: 9
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #9
Добавлено: 12.04.07 09:23
Вот с API:
(Из API-Guide)
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_KEYUP = &H2
Const INPUT_MOUSE = 0
Const INPUT_KEYBOARD = 1
Const INPUT_HARDWARE = 2
Private Type MOUSEINPUT
dx As Long
dy As Long
mouseData As Long
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type KEYBDINPUT
wVk As Integer
wScan As Integer
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type
Private Type HARDWAREINPUT
uMsg As Long
wParamL As Integer
wParamH As Integer
End Type
Private Type GENERALINPUT
dwType As Long
xi(0 To 23) As Byte
End Type
Private Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen 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: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Clear the form
Me.Cls
'call the SendKey-function
SendKey VK_H
SendKey VK_E
SendKey VK_L
SendKey VK_L
SendKey VK_O
End Sub
Private Sub SendKey(bKey As Byte)
Dim GInput(0 To 1) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = bKey 'the key we're going to press
KInput.dwFlags = 0 'press the key
'copy the structure into the input array's buffer.
GInput(0).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
'do the same as above, but for releasing the key
KInput.wVk = bKey ' the key we're going to realease
KInput.dwFlags = KEYEVENTF_KEYUP ' release the key
GInput(1).dwType = INPUT_KEYBOARD ' keyboard input
CopyMemory GInput(1).xi(0), KInput, Len(KInput)
'send the input now
Call SendInput(2, GInput(0), Len(GInput(0)))
End Sub
Номер ответа: 10
Автор ответа:
Vital177abc
ICQ: 250109240
Вопросов: 3
Ответов: 4
Профиль | | #10
Добавлено: 12.04.07 15:30
Большущее спасибо за помошь!