Сюда не заходить:)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Wowa
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 30.01.2005 (Вс) 23:41
Откуда: Украина, Хъюстон

Сюда не заходить:)

Сообщение Wowa » 06.08.2005 (Сб) 22:03

У меня такой вопрос, как "поймать" клик от пользователя не только на форме, а вообще на робочем столе с помощью функций Апи или может кто знает другие методы, поделитесь плиз, и пожалуйста програмный код, если с помощью Апи то описание типов переменных(принимаемых или передаваемых), короче если можно полностью робочий програмный код для реализации данной задачи. Пасиб! :roll:

Wowa
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 30.01.2005 (Вс) 23:41
Откуда: Украина, Хъюстон

Сообщение Wowa » 06.08.2005 (Сб) 22:09

И ещё если есть у кого-то есть толковая справка по ВиндовсАпи, то если не сложно поделитесь. Ещё раз спасиба!

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:12

прочитай сначала как надо задавать вопросы
особенно про название тем

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 06.08.2005 (Сб) 22:43

На счет апи функций сюда http://www.mentalis.org/agnet/appdown.shtml :wink:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 07.08.2005 (Вс) 0:30

Не заходил.
Вопроса не видел.
Поэтому ответа не знаю.

Wowa
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 30.01.2005 (Вс) 23:41
Откуда: Украина, Хъюстон

Сообщение Wowa » 07.08.2005 (Вс) 9:22

2 *lord0n*

А что собственно не ясно по поводу вопроса? Ну да тему я назвал что бы сюда побольше людей заходило, виноват, еси шо извените.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.08.2005 (Вс) 11:54

Нормальный топик :) Назван, хоть и не в тему, но суперски :) Улыбнуло в общем :)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.08.2005 (Вс) 16:27

Wowa писал(а):И ещё если есть у кого-то есть толковая справка по ВиндовсАпи, то если не сложно поделитесь. Ещё раз спасиба!
http://bbs.vbstreets.ru/viewtopic.php?t=11721
Надо мне бота написать, который это за меня делать будет... :roll:
Нет меня больше

Wowa
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 30.01.2005 (Вс) 23:41
Откуда: Украина, Хъюстон

Сообщение Wowa » 07.08.2005 (Вс) 20:31

Всё конешно хорошо, но может наконец-то кто то поможет? :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.08.2005 (Пн) 3:15

Вот видишь, A.A.Z., даже прямая дача ссылки не спасёт тебя от повторного вопроса в том же топике :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

coolged
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 22.12.2004 (Ср) 21:42

Сообщение coolged » 08.08.2005 (Пн) 12:15

послушай тут все просто. Есть набор функций и процедур Win GDI API
кот. четко и красиво расписаны в MSDN. Так вот начни с того, что присмотрись к функционалу PtInRegion:

Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long

тут hRgn - ссылка на созданый регион, а X и Y - тупо точки, в кот. был клик маусом. К примеру вот момент из моего приложения где я юзал такое (прописывается в Form_MouseDown ):

' Дескриптор региона
Dim hRGN As Long
'..................
'..................
'..................
' Тут мы создали прямоуг. регион (тоге из Win GDI API)
hRGN = CreateRectRgn(.Left, .Top, .Right, .Bottom)
If PtInRegion(hRGN, X, Y) Then
' Точка в нужной области
' Делаем обработки
End if

Как тут видно .Left, .Top, .Right, .Bottom в CreateRectRgn описывают
верх. левый и прав. нижний угол прямоуг. объекта: формы или любого shap-а..... есть так же функции GDI API: CreateEllipticRgn, CreatePolygonRgn (создают регион-элипс и регион-полигон соответственно).

Тут ничего сложного нету :-) А то что на форуме стало модно УМНИЧАТЬ а НЕ ПОМОГАТЬ - мне очень по этому поводу ЖАЛЬ :-(((( форум по сути клёвый.....

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.08.2005 (Пн) 13:05

2 coolged

Ты немного не по теме ответил...

2 Wowa
Надо хук ставить на мышь...
А я все практикую лечение травами...

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 08.08.2005 (Пн) 15:57

Twister писал(а):Надо хук ставить на мышь...


Тьфу ты блин! ВТорое слово не так прочитал. Аж страшно стало! :roll: :lol:
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.08.2005 (Пн) 16:13

Ну можно и другое поставить, если не будет у чела получаться... :lol:
А я все практикую лечение травами...

Wowa
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 30.01.2005 (Вс) 23:41
Откуда: Украина, Хъюстон

Сообщение Wowa » 08.08.2005 (Пн) 21:10

2 *coolged*
Да, но этот метод будет работать только на форме, мне надо шоб она работала на всём робочем столе я пробовал задавать
hRGN = CreateRectRgn(0, 0, Screen.Height, Screen.Width), но это канешно бесполезно т.к. событие Form_MouseDown происходит только на форме, может я неправ так исправь плз, мне не важно где был клик, мне важно когда он был, и что бы я эго мог заметить на всём робочем столе, даже если форма в момент клика, не активна и даже если клик был не на форме. Если знаеш, то пожалуйста подскажи, но и за это спасибо.:wink:

2 *Twister*
Я догадываюсь, но если знаеш как это зделать то поделись.

2 All
Я тут нашол такую ф-цию как Mouse_event, если кто может розберитесь, бо я там ничё не понял, думаю она была бы полезна.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 08.08.2005 (Пн) 21:38

Wowa

Давай ты мне заплатишь, а я разберусь, и даже напишу за тебя код.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 09.08.2005 (Вт) 6:28

mouse_event генерирует событие мыши, а тебе его надо отлавливать...
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 09.08.2005 (Вт) 6:49

Код: Выделить всё
SetWindowsHookEx(WH_MOUSE, addressof прцедура_обработчик, app.Instance , 0)

Так ставится хук на мышь.

Такие параметры у процедуры_обработчика:
Код: Выделить всё
GetMouseHook(Code as Integer,       ' hook code
                      wParam as long,      ' message identifier
                      lParam as long 'mouse coordinates
                    )

В конце процедуры ставь хук-возврат (чтоб система нормально работала):
Код: Выделить всё
GetMouseHook=CallNextHookEx

События обрабатывай если
Код: Выделить всё
if code=HC_ACTION then
end if

Надеюсь дальше сам разберешься, если нет, то скачай это. Этот компонет реализует хуки на мышь, клаву и окна, с исходниками. Только он на Делфях...
А я все практикую лечение травами...

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 11.08.2005 (Чт) 14:04

Вот ! Юзай и ни в чём себе не отказывай ! :D

Код: Выделить всё
Private Declare Function WaitMessage Lib "user32" () As Long
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Sub Form_Load()
MsgBox "Нажми правую клавишу и будет тебе счааастье !"
Do
If GetKeyState(2) = -127 Or GetKeyState(2) = -128 Then
Exit Do
End If
WaitMessage
DoEvents
Loop
End Sub

Private Sub Form_Paint()
Me.Cls
Me.Print "!!! СЧАСТЬЕ !!!"
End Sub


P.S Честное пиванерское - Я СЮДА НЕ ЗАХОДИЛ ! :oops:


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 143

    TopList