Послать окну нажатия клавиш!!!?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Послать окну нажатия клавиш!!!?

Сообщение DeMONiZ » 28.01.2009 (Ср) 17:44

Есть определенная программа нужно послать ей нажатие клавишь сначала TAB потом SPACE (если она запущена), если она не запущена то сначала запустить потом послать - делаю так но почему то ни чего не получается:

Код: Выделить всё
Private Declare Function WinExec Lib "Kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
Private Const SW_SHOW = 5

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Const WM_CLOSE = &H10
Const VK_TAB = &H9
Const VK_SPACE = &H20

Private Sub Command2_Click()
Dim hW&
hW& = FindWindow(vbNullString, "VipIP + extra surf" & Chr(0))
If hW& > 0 Then
PostMessage hW&, VK_TAB, VK_SPACE, 0&

Else
Dim rtn As Long
rtn = WinExec("E:\SOFT\retres\vipip (1).exe", SW_SHOW)
hW& = FindWindow(vbNullString, "VipIP + extra surf" & Chr(0))
If hW& > 0 Then
PostMessage hW&, VK_TAB, VK_SPACE, 0&
End If

End Sub


что не так почему не работает?

[Viper] :: Используем теги CODE!

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Послать окну нажатия клавиш!!!?

Сообщение Debugger » 28.01.2009 (Ср) 18:53

Строчка
Код: Выделить всё
PostMessage hW&, VK_TAB, VK_SPACE, 0&

Смущает... Или правильно?

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: Послать окну нажатия клавиш!!!?

Сообщение DeMONiZ » 28.01.2009 (Ср) 20:00

Меня смущает лично мне и кажется что тут что то не то. Подскажи как правильно!?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Послать окну нажатия клавиш!!!?

Сообщение Хакер » 28.01.2009 (Ср) 20:48

Во-первых, есть тег [code], за неюзание которого мы будем наказывать.

DeMONiZ писал(а):
Код: Выделить всё
rtn = WinExec("E:\SOFT\retres\vipip (1).exe", SW_SHOW)
hW& = FindWindow(vbNullString, "VipIP + extra surf" & Chr(0))

Думаешь, программа успевает найтись, запуститься, загрузиться и создать своё окно до того, как ты сразу же после попытки запуска пытаешься его искать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Послать окну нажатия клавиш!!!?

Сообщение Debugger » 28.01.2009 (Ср) 20:49

Код: Выделить всё
    PostMessage hW, WM_KEYDOWN, VK_TAB, 0
    PostMessage hW, WM_KEYUP, VK_TAB, 0

И в таком же духе. Ну, ты понял.

Йода
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 99
Зарегистрирован: 06.01.2008 (Вс) 21:04
Откуда: Московская область

Re: Послать окну нажатия клавиш!!!?

Сообщение Йода » 28.01.2009 (Ср) 20:57

DeMONiZ писал(а): PostMessage hW&, VK_TAB, VK_SPACE, 0&

Не верно. Читать про параметры функций (Send)PostMessage. В часности про параметр wMsg
Как отослать окну нажатие клавиш - viewtopic.php?f=1&t=38467
З.Ы. Пока я набирал, поста Debuggerа не заметил.
Sub or Function not defined

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: Послать окну нажатия клавиш!!!?

Сообщение DeMONiZ » 28.01.2009 (Ср) 21:15

Хакер об этом я и не подумал......поставим паузу
что то все равно ни чего окну не посылает..
Последний раз редактировалось DeMONiZ 28.01.2009 (Ср) 21:30, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Послать окну нажатия клавиш!!!?

Сообщение Хакер » 28.01.2009 (Ср) 21:22

Надо не паузу ставить, а цикл (с паузой) и счетчиком попыток.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

DeMONiZ
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 03.01.2009 (Сб) 18:32

Re: Послать окну нажатия клавиш!!!?

Сообщение DeMONiZ » 28.01.2009 (Ср) 21:37

это дрйгой вопрос мне с этим пока разобраться следует.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Послать окну нажатия клавиш!!!?

Сообщение Хакер » 28.01.2009 (Ср) 23:16

Это не другой вопрос, этот как раз тот самый вопрос, с которым тебе надо разобратся.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 13

    TopList