📄 toolbuild.asm
字号:
db ' mov eax, hwnd',0dh,0ah
db ' .if eax != hWndFloat',0dh,0ah
db ' mov eax, 1',0dh,0ah
db ' ret',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' .if wmsg == WM_MOVE',0dh,0ah
db ' INVOKE SetFocus, hREdit',0dh,0ah
db ' .if !ToolW',0dh,0ah
db ' mov eax, TRUE',0dh,0ah
db ' ret',0dh,0ah
db ' .endif',0dh,0ah
db ' and swOn, 0',0dh,0ah
db ' INVOKE GetWindowRect, hWndFloat, addr rectF ; Rectangle of Float',0dh,0ah
db ' INVOKE GetWindowRect, hREdit, addr rectE ; Rectangle of Edit',0dh,0ah,0dh,0ah
db ' mov eax, lparam ; Get xPos',0dh,0ah
db ' and eax, 0ffffh ; Lowword',0dh,0ah
db ' mov ecx, lparam ; Get yPos',0dh,0ah
db ' shr ecx, 16 ; Hiword',0dh,0ah,0dh,0ah
db ' add rectE.left, 6',0dh,0ah
db ' add rectE.top, 6',0dh,0ah,0dh,0ah
db ' .if eax < 5 || eax > 7fffh || ecx > 7fffh',0dh,0ah
db ' .if eax > 5',0dh,0ah
db ' push eax',0dh,0ah
db ' INVOKE GetWindowRect, hWndFloat, addr rectF ; Rectangle of Float',0dh,0ah
db ' push rectF.left',0dh,0ah
db ' push rectF.top',0dh,0ah
db ' INVOKE GetClientRect, hWndFloat, addr rectF ; Rectangle of Float',0dh,0ah
db ' pop ecx',0dh,0ah
db ' pop edx',0dh,0ah
db ' pop eax',0dh,0ah
db ' .if eax > 7fffh',0dh,0ah
db ' mov rectF.top, ecx',0dh,0ah
db ' .else',0dh,0ah
db ' mov rectF.left, edx',0dh,0ah
db ' .endif',0dh,0ah
db ' add rectF.right, 6',0dh,0ah
db ' add rectF.bottom, 6',0dh,0ah
db ' INVOKE MoveWindow, hWndFloat, rectF.left, rectF.top, rectF.right, rectF.bottom, TRUE',0dh,0ah
db ' .endif',0dh,0ah
db ' .if FloatLock && LockOn',0dh,0ah
db ' mov eax, 1',0dh,0ah
db ' ret',0dh,0ah
db ' .endif',0dh,0ah
db ' and FloatLock, 0',0dh,0ah
db ' xor eax, eax',0dh,0ah
db ' ret',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' mov ebx, eax',0dh,0ah
db ' .if eax > 9',0dh,0ah
db ' sub eax, 10',0dh,0ah
db ' .else',0dh,0ah
db ' xor eax, eax',0dh,0ah
db ' .endif',0dh,0ah
db ' add ebx, 10',0dh,0ah
db ' mov edx, ecx',0dh,0ah
db ' sub ecx, 10',0dh,0ah
db ' add edx, 10',0dh,0ah,0dh,0ah
db ' .if eax < rectE.left && ebx > rectE.left &&\',0dh,0ah
db ' ecx < rectE.top && edx > rectE.top || LockOn',0dh,0ah
db ' and LockOn, 0',0dh,0ah
db ' mov FloatLock, 1',0dh,0ah
db ' INVOKE GetClientRect, hWndFloat, addr rectF',0dh,0ah
db ' INVOKE GetWindowRect, hREdit, addr rectE',0dh,0ah
db ' mov eax, rectE.left',0dh,0ah
db ' add eax, 6',0dh,0ah
db ' sub rectE.right, eax',0dh,0ah
db ' mov eax, rectE.top',0dh,0ah
db ' add eax, 6',0dh,0ah
db ' sub rectE.bottom, eax',0dh,0ah
db ' mov eax, rectF.right',0dh,0ah
db ' .if eax > rectF.bottom',0dh,0ah
db ' mov WH, 1',0dh,0ah
db ' mov eax, 22 ; Height',0dh,0ah
db ' push rectE.right',0dh,0ah
db ' push eax',0dh,0ah
db ' .else',0dh,0ah
db ' mov WH, 2',0dh,0ah
db ' mov eax, 23 ; Width',0dh,0ah
db ' push rectE.bottom',0dh,0ah
db ' push eax',0dh,0ah
db ' .endif',0dh,0ah
db ' jmp NewPos',0dh,0ah,0dh,0ah
db ' .else',0dh,0ah
db ' INVOKE GetClientRect, hWndFloat, addr rectF',0dh,0ah
db ' and FloatLock, 0',0dh,0ah
db ' call SetSize',0dh,0ah
db ' INVOKE GetWindowRect, hWndFloat, addr rect',0dh,0ah
db ' INVOKE SendMessage, hWndToolF, TB_BUTTONCOUNT, 0, 0',0dh,0ah
db ' mov Cnt, eax',0dh,0ah
db ' .if rectF.right == 23 || rectF.bottom == 22',0dh,0ah
db ' .if rectF.right == 23',0dh,0ah
db ' imul eax, 22',0dh,0ah
db ' mov rectF.bottom, eax',0dh,0ah
db ' .elseif rectF.bottom == 22',0dh,0ah
db ' imul eax, 23',0dh,0ah
db ' mov rectF.right, eax',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' mov WH, 1',0dh,0ah
db ' push rectF.right',0dh,0ah
db ' push rectF.bottom',0dh,0ah
db ' jmp NewPos',0dh,0ah
db ' .endif',0dh,0ah
db ' .endif',0dh,0ah
db ' mov eax, TRUE',0dh,0ah
db ' ret',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' .if wmsg == WM_SIZE',0dh,0ah
db ' INVOKE SendMessage, hWndToolF, TB_BUTTONCOUNT, 0, 0',0dh,0ah
db ' mov Cnt, eax',0dh,0ah
db ' .if !eax',0dh,0ah
db ' jmp DefWin',0dh,0ah
db ' .endif',0dh,0ah
db ' INVOKE GetWindowRect, hREdit, addr rectE',0dh,0ah
db ' mov eax, rectE.left',0dh,0ah
db ' add eax, 6',0dh,0ah
db ' sub rectE.right, eax',0dh,0ah
db ' mov eax, rectE.top',0dh,0ah
db ' add eax, 6',0dh,0ah
db ' sub rectE.bottom, eax',0dh,0ah,0dh,0ah
db ' INVOKE GetWindowRect, hWndFloat, addr rect',0dh,0ah
db ' mov eax, lparam ; Get width',0dh,0ah
db ' and eax, 0ffffh ; Lowword',0dh,0ah
db ' mov ebx, lparam ; Get height',0dh,0ah
db ' shr ebx, 16 ; Hiword',0dh,0ah,0dh,0ah
db ' .if !ToolW',0dh,0ah
db ' mov ToolW, eax',0dh,0ah
db ' mov ToolH, ebx',0dh,0ah
db ' dec ToolW',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' and swOn, 0',0dh,0ah
db ' xor edx, edx',0dh,0ah
db ' .if FloatLock && ebx == ToolH && eax != ToolW',0dh,0ah
db ' mov WH, 1',0dh,0ah
db ' mov eax, 22 ; Height',0dh,0ah
db ' push rectE.right',0dh,0ah
db ' push eax',0dh,0ah
db ' mov swOn, 1',0dh,0ah
db ' jmp NewPos',0dh,0ah
db ' .endif',0dh,0ah
db ' .if FloatLock && eax == ToolW && ebx != ToolH',0dh,0ah
db ' mov WH, 2',0dh,0ah
db ' mov eax, 23 ; Width',0dh,0ah
db ' push rectE.bottom',0dh,0ah
db ' push eax',0dh,0ah
db ' mov swOn, 2',0dh,0ah
db ' jmp NewPos',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' .if eax != ToolW || ebx != ToolH',0dh,0ah
db ' mov WH, 1',0dh,0ah
db ' mov ecx, 22',0dh,0ah
db ' .if ebx != ToolH',0dh,0ah
db ' mov WH, 2',0dh,0ah
db ' mov ecx, 23',0dh,0ah
db ' mov eax, ebx',0dh,0ah
db ' .endif',0dh,0ah
db ' div ecx',0dh,0ah
db ' .if edx',0dh,0ah
db ' inc eax',0dh,0ah
db ' .endif',0dh,0ah
db ' .if eax > Cnt',0dh,0ah
db ' mov eax, Cnt',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db 'DoAgain:',0dh,0ah
db ' .if !eax',0dh,0ah
db ' mov eax, 1',0dh,0ah
db ' .endif',0dh,0ah
db ' mov ebx, eax',0dh,0ah,0dh,0ah
db ' mov Var, 22',0dh,0ah
db ' .if WH == 1',0dh,0ah
db ' mov Var, 23',0dh,0ah
db ' .endif',0dh,0ah
db ' imul eax, Var',0dh,0ah,0dh,0ah
db ' push eax ; W if WH == 1',0dh,0ah
db ' xor edx, edx',0dh,0ah
db ' mov eax, Cnt',0dh,0ah
db ' div ebx',0dh,0ah
db ' .if !eax',0dh,0ah
db ' inc eax',0dh,0ah
db ' .endif',0dh,0ah
db ' .if edx',0dh,0ah
db ' inc eax',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' .if WH == 2 && eax == 2 || WH == 2 && eax == 3',0dh,0ah
db ' imul ebx, eax',0dh,0ah
db ' .if ebx > Cnt',0dh,0ah
db ' .if eax == 3',0dh,0ah
db ' pop eax',0dh,0ah
db ' xor edx, edx',0dh,0ah
db ' mov eax, Cnt',0dh,0ah
db ' mov ebx, 3',0dh,0ah
db ' div ebx',0dh,0ah
db ' jmp DoAgain',0dh,0ah
db ' .endif',0dh,0ah
db ' pop eax',0dh,0ah
db ' mov eax, Cnt',0dh,0ah
db ' jmp DoAgain',0dh,0ah
db ' .endif',0dh,0ah
db ' .endif',0dh,0ah,0dh,0ah
db ' mov Var, 23',0dh,0ah
db ' .if WH == 1',0dh,0ah
db ' mov Var, 22',0dh,0ah
db ' .endif',0dh,0ah
db ' imul eax, Var',0dh,0ah
db ' push eax ; H if WH == 1',0dh,0ah,0dh,0ah
db 'NewPos:',0dh,0ah
db ' INVOKE GetWindowRect, hWndFloat, addr rect',0dh,0ah
db ' .if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -