Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
d1337r
-
- Начинающий

-
-
- Сообщения: 4
- Зарегистрирован: 08.09.2007 (Сб) 13:26
d1337r » 01.11.2007 (Чт) 19:53
У меня плохо работает событие mouse_move. Делал все по RTFM и MSDN, но на моем экране 1024*768 курсор попадает около верхнего левого угла экрана, то есть не там где надо
- Код: Выделить всё
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const mabsolute = &H8000 ' absolute move
Private Const lmbdown = &H2 ' left button down
Private Const lmbup = &H4 ' left button up
Private Const mmbdown = &H20 ' middle button down
Private Const mmbup = &H40 ' middle button up
Private Const mmove = &H1 ' mouse move
Private Const rmbdown = &H8 ' right button down
Private Const rmbup = &H10 ' right button up
Private Sub Command1_Click()
movemouseto 790, 600
End Sub
Public Sub movemouseto(x As Long, y As Long)
Dim x1, y1 As Long
x1 = x * 65535 / Screen.Width
y1 = y * 65535 / Screen.Height
mouse_event (mmove + mabsolute), x1, y1, 0, 0
End Sub
-
ALX_2002
-
- Мега гуру

-
-
- Сообщения: 2056
- Зарегистрирован: 25.11.2002 (Пн) 20:03
-
ALX_2002 » 01.11.2007 (Чт) 20:20
Прошу прощения, что отвечаю вопросом на вопрос, но всё же:
А
SetCursorPos не подходит по каким то причинам ?
Она координаты в пикселах вроде как принимает

-
AntonGV
-
- Бывалый

-
-
- Сообщения: 234
- Зарегистрирован: 24.05.2006 (Ср) 12:10
- Откуда: г. Пермь
-
AntonGV » 01.11.2007 (Чт) 20:34
d1337r
Не работает, потому что Screen.Width и Screen.Height возвращают размеры экрана в твипах.
Должно быть так:
- Код: Выделить всё
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Function GetMessageExtraInfo Lib "user32" () As Long
Private Const mabsolute = &H8000 ' absolute move
Private Const lmbdown = &H2 ' left button down
Private Const lmbup = &H4 ' left button up
Private Const mmbdown = &H20 ' middle button down
Private Const mmbup = &H40 ' middle button up
Private Const mmove = &H1 ' mouse move
Private Const rmbdown = &H8 ' right button down
Private Const rmbup = &H10 ' right button up
Private Sub Command1_Click()
MoveMouseTo 790, 600
End Sub
Public Sub MoveMouseTo(x As Long, y As Long)
Dim x1, y1 As Long
x1 = x * 65535 / (Screen.Width / Screen.TwipsPerPixelX)
y1 = y * 65535 / (Screen.Height / Screen.TwipsPerPixelY)
mouse_event mmove Or mabsolute, x1, y1, 0, GetMessageExtraInfo()
End Sub
Если долго мучиться, что-нибудь получится
-
Arcady_XQST
-
- Обычный пользователь

-
-
- Сообщения: 85
- Зарегистрирован: 17.09.2007 (Пн) 1:27
- Откуда: Russia, Bryansk
-
Arcady_XQST » 05.11.2007 (Пн) 0:18
AntonGV писал(а):Не работает, потому что Screen.Width и Screen.Height возвращают размеры экрана в твипах.
- Код: Выделить всё
Private Sub Form_Load()
MsgBox Screen.Width / 15 & "x" & Screen.Height / 15
End Sub
А так?
// тили-тили, трали-вали
if (jsLoaded) {
// это дело мне по силе, откажусь теперь едва ли
} else {
// это мы не проходили, это нам не задавали
}
-
Хакер
-
- Телепат

-

-
- Сообщения: 16486
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 05.11.2007 (Пн) 6:29
Arcady_XQST
А не так. 1твип не всегда = 15 пикселям.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
burik
-
- Постоялец

-

-
- Сообщения: 514
- Зарегистрирован: 03.11.2005 (Чт) 22:04
- Откуда: Беларусь, Рогачев
-
burik » 05.11.2007 (Пн) 13:12
- Код: Выделить всё
Private Sub Form_Load()
MsgBox Screen.Width / Screen.TwipsPerPixelX & "x" & Screen.Height / Screen.TwipsPerPixelY
End Sub
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман
-
Arcady_XQST
-
- Обычный пользователь

-
-
- Сообщения: 85
- Зарегистрирован: 17.09.2007 (Пн) 1:27
- Откуда: Russia, Bryansk
-
Arcady_XQST » 05.11.2007 (Пн) 22:34
А от чего зависит количество твипов на 1 пискель?

// тили-тили, трали-вали
if (jsLoaded) {
// это дело мне по силе, откажусь теперь едва ли
} else {
// это мы не проходили, это нам не задавали
}
-
Хакер
-
- Телепат

-

-
- Сообщения: 16486
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 06.11.2007 (Вт) 7:16
Панель управления -> Экран -> Вкладка "Параметры" -> Кнопка "Дополнительно" -> Масштаб (кол-во точек на дюйм).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, PetalBot, SemrushBot и гости: 4