Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Цитата:
аналогично клавиатуре
Абалдеть!!! другого слова просто не позволяю себе сказать (написать)!

Вот пример, подобный обработке сообщении для элементов GUI (ListView в частности):

Код: Выделить весь код
Global Const $WH_MOUSE_LL = 14

Global $hKeyProc = DllCallbackRegister ("_Mouse_Handler", "int", "int;ptr;ptr")
Global $hmod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)

MsgBox(4096, "", 'После нажатия "Ok" левая кнопка мыши будет заблокирована на 10 сек.')

Global $hHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", "int", $WH_MOUSE_LL, _
    "ptr", DllCallbackGetPtr($hKeyProc), "hwnd", $hmod[0], "dword", 0)

Sleep(10000)

DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hHook[0])
DllCallbackFree($hKeyProc)

Func _Mouse_Handler($nCode, $wParam, $lParam)
    Switch BitAND($WParam, 0xFFFF)
        Case 512 ;Mouse Move
            PrintF("Mouse Moving")
        Case 513 ;Primary Down
            PrintF("Primary Down [Blocked]")
            Return 1 ;Block default processing
        Case 514 ;Primary Up
            PrintF("Primary Up")
        Case 516 ;Secondary Down
            PrintF("Secondary Down")
        Case 517 ;Secondary Up
            PrintF("Secondary Up")
        Case 519 ;Midle Down
            PrintF("Midle Down")
        Case 520 ;Midle Up
            PrintF("Midle Up")
        Case 522 ;Mouse Whell
            PrintF("Mouse Whell")
        Case Else
            PrintF("Event: " & BitAND($WParam, 0xFFFF))
            Return 0 ;Allow default processing
    EndSwitch
EndFunc

Func PrintF($sString, $iMode=0, $iLine=@ScriptLineNumber)
    If $iMode = 0 Then
        ConsoleWrite("+======================================================" & @LF & _
                    "--> Script Line (" & $iLine & "):" & @LF & "!" & @TAB & $sString & @LF & _
                    "+======================================================" & @LF)
    Else
        MsgBox(64, "Debug", "> Script Line (" & $iLine & "):" & @LF & @LF & "Debug:" & @LF & $sString)
    EndIf
EndFunc
Теперь я наконец могу завершить свой проэкт. Спасибо!

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:02, 12-02-2008 | #123