Я тут неможко запутался в структурах) Пожалуйста помогите разобратся Код (Text): .386p option casemap:none .model flat, stdcall includelib C:\masm32\lib\kernel32.lib includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\gdi32.lib includelib C:\masm32\lib\advapi32.lib includelib C:\masm32\lib\winmm.lib include C:\masm32\include\Windows.inc include C:\masm32\include\Kernel32.inc include C:\masm32\include\gdi32.inc include C:\masm32\include\advapi32.inc include C:\masm32\include\user32.inc include C:\masm32\include\winmm.inc include \masm32\Macros\Strings.mac MOUSEINPUT struct dx_ SDWORD ? dy SDWORD ? mouseData DWORD ? dwFlags DWORD ? time DWORD ? dwExtraInfo DWORD ? MOUSEINPUT ends PMOUSEINPUT typedef ptr MOUSEINPUT LPMOUSEINPUT typedef ptr MOUSEINPUT KEYBDINPUT struct wVk WORD ? wScan WORD ? dwFlags DWORD ? time DWORD ? dwExtraInfo DWORD ? KEYBDINPUT ends PKEYBDINPUT typedef ptr KEYBDINPUT LPKEYBDINPUT typedef ptr KEYBDINPUT HARDWAREINPUT struct uMsg DWORD ? wParamL WORD ? wParamH WORD ? HARDWAREINPUT ends PHARDWAREINPUT typedef ptr HARDWAREINPUT LPHARDWAREINPUT typedef ptr HARDWAREINPUT INPUT_MOUSE EQU 0 INPUT_KEYBOARD EQU 1 INPUT_HARDWARE EQU 2 INPUT struct type_ DWORD ? union mi MOUSEINPUT <> ki KEYBDINPUT <> hi HARDWAREINPUT <> ends INPUT ends PINPUT typedef ptr INPUT LPINPUT typedef ptr INPUT INPUT_KEYBOARD EQU 1 TIME_CALLBACK_FUNCTION EQU 0000H ; callback is function .data kk db 0 xx dd 0 yy dd 0 AppName db "AutoClicker",0 timid dd ? .CODE main: ;call rAndStartDriver ;jmp uuret RegisterAndStartDriver proc ;arg1 :DWORD, arg2:DWORD, arg3 :DWORD, arg4 :DWORD, arg5 :DWORd LOCAL point: POINT local kip: INPUT local kbd: KEYBDINPUT mov kip.type_, INPUT_KEYBOARD mov kip.ki, offset kbd mov kbd.wVk, VK_CONTROL pp: INVOKE GetCursorPos, ADDR point mov eax,point.y .if eax < yy .if kk == 0 mov kbd.wScan, 19h mov kbd.dwFlags, 0 invoke SendInput, 1, addr kip, sizeof kip mov kk,1 .endif .else add eax,3 .if eax < yy mov kbd.wScan, 19h mov kbd.dwFlags, KEYEVENTF_KEYUP invoke SendInput, 1, addr kip, sizeof kip mov kk,0 .endif .endif mov eax,point.y mov yy,eax jmp pp ret RegisterAndStartDriver endp end main
Со структурами я, кажется, разобрался, но клавиша почему-то не нажимается( Код (Text): .386p option casemap:none .model flat, stdcall includelib C:\masm32\lib\kernel32.lib includelib C:\masm32\lib\user32.lib includelib C:\masm32\lib\gdi32.lib includelib C:\masm32\lib\advapi32.lib includelib C:\masm32\lib\winmm.lib include C:\masm32\include\Windows.inc include C:\masm32\include\Kernel32.inc include C:\masm32\include\gdi32.inc include C:\masm32\include\advapi32.inc include C:\masm32\include\user32.inc include C:\masm32\include\winmm.inc include \masm32\Macros\Strings.mac MOUSEINPUT struct dx_ SDWORD ? dy SDWORD ? mouseData DWORD ? dwFlags DWORD ? time DWORD ? dwExtraInfo DWORD ? MOUSEINPUT ends PMOUSEINPUT typedef ptr MOUSEINPUT LPMOUSEINPUT typedef ptr MOUSEINPUT KEYBDINPUT struct wVk WORD ? wScan WORD ? dwFlags DWORD ? time DWORD ? dwExtraInfo DWORD ? KEYBDINPUT ends PKEYBDINPUT typedef ptr KEYBDINPUT LPKEYBDINPUT typedef ptr KEYBDINPUT HARDWAREINPUT struct uMsg DWORD ? wParamL WORD ? wParamH WORD ? HARDWAREINPUT ends PHARDWAREINPUT typedef ptr HARDWAREINPUT LPHARDWAREINPUT typedef ptr HARDWAREINPUT INPUT_MOUSE EQU 0 INPUT_KEYBOARD EQU 1 INPUT_HARDWARE EQU 2 PINPUT typedef ptr INPUT LPINPUT typedef ptr INPUT INPUT_KEYBOARD EQU 1 TIME_CALLBACK_FUNCTION EQU 0000H ; callback is function INPUT struct type_ DWORD ? union mi MOUSEINPUT <> ki KEYBDINPUT <> hi HARDWAREINPUT <> ends INPUT ends .data kk db 0 xx dd 0 yy dd 0 AppName db "AutoClicker",0 timid dd ? .CODE main: ;call rAndStartDriver ;jmp uuret RegisterAndStartDriver proc ;arg1 :DWORD, arg2:DWORD, arg3 :DWORD, arg4 :DWORD, arg5 :DWORd LOCAL point: POINT local input:INPUT mov input.type_, INPUT_KEYBOARD mov input.ki.wVk, VK_CONTROL pp: INVOKE GetCursorPos, ADDR point mov eax,point.y .if eax < yy .if kk == 0 mov input.ki.wScan, 31h mov input.ki.dwFlags, 0 invoke SendInput, 1, addr input, sizeof input mov kk,1 .endif .else add eax,3 .if eax < yy mov input.ki.wScan, 31h mov input.ki.dwFlags, KEYEVENTF_KEYUP invoke SendInput, 1, addr input, sizeof input mov kk,0 .endif .endif mov eax,point.y mov yy,eax jmp pp ret RegisterAndStartDriver endp end main