Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
eldar22
-
- Обычный пользователь
-
-
- Сообщения: 91
- Зарегистрирован: 09.09.2008 (Вт) 18:11
eldar22 » 03.05.2010 (Пн) 13:45
Здравствуйте!
Есть код
- Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Command1_Click()
Dim lFoundWindow As Long
lFoundWindow = FindWindow(vbNullString, "Counter-Strike")
Call SetForegroundWindow(lFoundWindow)
Call ShowWindow(lFoundWindow, 9)
Call ShowWindow(lFoundWindow, 10)
Const VK_esc = 27
keybd_event VK_esc, 0, 0, 0 ' press esc
End Sub
По идеи программа должна найти заголовок игры Counter-Strike открыть ее и нажать на кнопку Esc
Программа находит окно открывает его, но не нажимает кнопку Esc
-
Хакер
-
- Телепат
-
-
- Сообщения: 16478
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 03.05.2010 (Пн) 14:19
Вся это идея с открыванием приложений и эмуляции нажатий клавиш с помощью kebd_event — гадость.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
Saturn.65
-
- Постоялец
-
-
- Сообщения: 543
- Зарегистрирован: 13.10.2006 (Пт) 18:46
-
Saturn.65 » 03.05.2010 (Пн) 14:54
eldar22 писал(а):Программа находит окно открывает его, но не нажимает кнопку Esc
Может у клавиши фокуса нет?
Главное, ребята, сердцем не стареть...
-
ExiliM
-
- Новичок
-
-
- Сообщения: 47
- Зарегистрирован: 22.02.2010 (Пн) 4:41
ExiliM » 03.05.2010 (Пн) 15:48
для чего именно посылается Esc? Она ж просто менюшку откроет...
-
eldar22
-
- Обычный пользователь
-
-
- Сообщения: 91
- Зарегистрирован: 09.09.2008 (Вт) 18:11
eldar22 » 03.05.2010 (Пн) 16:17
так кнопку Esc для примера
-
eldar22
-
- Обычный пользователь
-
-
- Сообщения: 91
- Зарегистрирован: 09.09.2008 (Вт) 18:11
eldar22 » 04.05.2010 (Вт) 19:57
Хакер писал(а):Вся это идея с открыванием приложений и эмуляции нажатий клавиш с помощью kebd_event — гадость.
Простите каким тогда методом с помощью чего сделать чтобы это не казалось гадостью?
-
Хакер
-
- Телепат
-
-
- Сообщения: 16478
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 04.05.2010 (Вт) 20:03
Что сделать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
eldar22
-
- Обычный пользователь
-
-
- Сообщения: 91
- Зарегистрирован: 09.09.2008 (Вт) 18:11
eldar22 » 04.05.2010 (Вт) 21:42
Ответ нашел через SendKeys работает
- Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowsName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal cCmdShow As Long) As Long
Private Sub Command1_Click()
Dim lFoundWindow As Long
lFoundWindow = FindWindow(vbNullString, "Counter-Strike")
Call SetForegroundWindow(lFoundWindow)
Call ShowWindow(lFoundWindow, 9)
Call ShowWindow(lFoundWindow, 10)
SendKeys "{ESC}", True
End Sub
Спасибо Хакер!
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 96