Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
VASYA_A
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 129
1

Как посчитать количество нажатий на кнопку мыши ?

02.03.2014, 17:01. Просмотров 1227. Ответов 3
Метки нет (Все метки)

Здравствуйте . Возникла проблема с подсчётом количества нажатий на кнопку мыши . Как это можно реализовать ? Для левой и правой нужно.
Никак ничего найти для решения не могу . Надеюсь на Вашу помощь. Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 17:01
Ответы с готовыми решениями:

Посчитать количество нажатий клавиши (enter)
Помогите пожалуйста с написание программы, компилирую в tasm При нажатии на...

Подсчет нажатий кнопки мыши
Помогите с программой.. Программа считает количество нажатий ЛКМ, нужно...

Как посчитать количество обращений к жесткому диску?
Знаю, что необходимо перехватывать прерывания, но не знаю как это сделать......

Посчитать количество нулевых битов в каждом элементе массива и вывести общее количество
дан массив из 8 байт. Посчитать кол-во нулевых битов в каждом байте и вывести...

Как посчитать количество нажатий на кнопку мыши ?
Здравствуйте . Возникла проблема с подсчётом количества нажатий на кнопку мыши...

3
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,213
Завершенные тесты: 3
02.03.2014, 18:19 2
SetWindowsHookEx
0
arzrav
73 / 74 / 4
Регистрация: 25.09.2012
Сообщений: 212
22.03.2014, 18:31 3
Основная программа:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
.386
.model flat, stdcall
option casemap: none
 
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\user32.inc
    include HookDLL.inc
    
    includelib HookDLL.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\user32.lib
 
    WinMain proto :DWORD, :DWORD, :DWORD, :DWORD
 
.const
 
    WM_MOUSEHOOK equ WM_USER+6
 
.data
 
    ClassName db "SimpleWinClass", 0
    AppName db "Window", 0
    counter db 0
 
.data?
 
    hInstance HINSTANCE ?
    
.code
 
start:
 
    invoke GetModuleHandle, NULL
    mov hInstance, eax
    invoke WinMain, hInstance, NULL, NULL, SW_SHOWDEFAULT
    invoke ExitProcess, eax
 
    WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
        LOCAL wc:WNDCLASSEX
        LOCAL msg:MSG
        LOCAL hwnd:HWND
 
        mov wc.cbSize, SIZEOF WNDCLASSEX
        mov wc.style, CS_HREDRAW or CS_VREDRAW
        mov wc.lpfnWndProc, OFFSET WndProc
        mov wc.cbClsExtra, NULL
        mov wc.cbWndExtra, NULL
        push hInstance
        pop wc.hInstance
        mov wc.hbrBackground, COLOR_BTNFACE+1
        mov wc.lpszClassName, OFFSET ClassName
        invoke LoadIcon, NULL, IDI_APPLICATION
        mov wc.hIcon, eax
        mov wc.hIconSm, eax
        invoke LoadCursor, NULL, IDC_ARROW
        mov wc.hCursor, eax
        invoke RegisterClassEx, addr wc
        invoke CreateWindowEx, WS_EX_CLIENTEDGE, addr ClassName, addr AppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL, hInst, NULL
        mov hwnd, eax
        invoke ShowWindow, hwnd, CmdShow
        invoke UpdateWindow, hwnd
 
        .WHILE TRUE
            invoke GetMessage, addr msg, NULL, 0, 0
        .BREAK .IF (!eax)
            invoke TranslateMessage, addr msg
            invoke DispatchMessage, addr msg
        .ENDW
 
        mov eax, msg.wParam
        ret
 
    WinMain endp
 
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
 
        .IF uMsg==WM_DESTROY
            invoke UninstallHook
            invoke PostQuitMessage, NULL
        .ELSEIF uMsg==WM_CREATE
            invoke InstallHook, hWnd
        .ELSEIF uMsg==WM_MOUSEHOOK
            inc counter
        .ELSE
            invoke DefWindowProc, hWnd, uMsg, wParam, lParam
            ret
        .ENDIF
        xor eax, eax
        ret
        
    WndProc endp
    
end start


Dll-ка:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
.386
.model flat,stdcall
option casemap:none
 
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
 
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
 
.const
 
    WM_MOUSEHOOK equ WM_USER+6
 
.data
 
    hInstance dd 0
 
.data?
 
    hHook dd ?
    hWnd dd ?
 
.code
 
    DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
        push hInst
        pop hInstance
        mov  eax,TRUE
        ret
    DllEntry Endp
 
    MouseProc proc nCode:DWORD, wParam:DWORD, lParam:DWORD
        invoke CallNextHookEx, hHook, nCode, wParam, lParam
        .IF wParam==WM_RBUTTONDOWN || wParam==WM_RBUTTONDOWN
            invoke PostMessage,hWnd,WM_MOUSEHOOK,0,0
        .ENDIF
        xor eax, eax
        ret
    MouseProc endp
 
    InstallHook proc hwnd:DWORD
        push hwnd
        pop hWnd
        invoke SetWindowsHookEx, WH_MOUSE, addr MouseProc, hInstance, NULL
        mov hHook, eax
        ret
    InstallHook endp
 
    UninstallHook proc
        invoke UnhookWindowsHookEx, hHook
        ret
    UninstallHook endp
 
End DllEntry


def:

Кликните здесь для просмотра всего текста
Assembler
1
2
3
4
LIBRARY   HookDLL
EXPORTS   MouseProc
          InstallHook
          UninstallHook


inc:
Кликните здесь для просмотра всего текста
Assembler
1
2
3
InstallHook proto :DWORD
UninstallHook proto
MouseProc proto :DWORD,:DWORD,:DWORD


Линковать секцию данных для dll нужно с опцией разделяемой памяти.
0
Mikl___
Автор FAQ
11783 / 6087 / 555
Регистрация: 11.11.2010
Сообщений: 11,073
23.03.2014, 03:35 4
Цитата Сообщение от VASYA_A Посмотреть сообщение
Возникла проблема с подсчётом количества нажатий на кнопку мыши . Как это можно реализовать ? Для левой и правой нужно. Никак ничего найти для решения не могу
Посмотри здесь, вывод на экран надписей "Нажата левая кнопка" и "Нажата правая кнопка" на том месте где кликнули мышкой, на 20-ом клике раздается звуковой сигнал
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 03:35

Переместить кнопку по углам формы и посчитать количество нажатий на кнопку
помогите, пожалуйста, переместить кнопку по углам формы и посчитать количество...

Как посчитать количество нажатий по тегу
Всем привет. Продолжаю изучать JavaScript и не могу как реализовать такую...

Как установить нужное количество нажатий на кнопку в скрипт?
Как установить нужное количество нажатий на кнопку HI или LO в этом скрипте?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru