hook.asm

来自「驾驶员考试系统,汇编编写,qq332779423」· 汇编 代码 · 共 35 行

ASM
35
字号
;作者  罗云彬
;笑梅  改编
.data
WM_HOOK		equ	WM_USER + 100h
.data?
szAscii         db	32 dup (?)
hHook           dd	?
.code
HookProc            proc        _dwCode,_wParam,_lParam
		local	@szKeyState[256]:byte
		invoke	CallNextHookEx,hHook,_dwCode,_wParam,_lParam
		pushad
		.if	_dwCode == HC_ACTION
			mov	ebx,_lParam
			assume	ebx:ptr EVENTMSG
			.if	[ebx].message == WM_KEYDOWN
				invoke	GetKeyboardState,addr @szKeyState
				invoke	GetKeyState,VK_SHIFT
				mov	@szKeyState + VK_SHIFT,al
				mov	ecx,[ebx].paramH
				shr	ecx,16
				invoke	ToAscii,[ebx].paramL,ecx,addr @szKeyState,addr szAscii,0
				mov	byte ptr szAscii [eax],0
				.if	szAscii == 0dh
					mov	word ptr szAscii+1,0ah
				.endif
;				invoke	SendDlgItemMessage,hTab1,IDC_TAB1EDT1,EM_REPLACESEL,0,addr szAscii
				invoke	SendMessage,hTab1,WM_HOOK,dword ptr szAscii,NULL
			.endif
			assume	ebx:nothing
		.endif
		popad
		xor	eax,eax
		ret 
HookProc            endp

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?