⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lion-tut-c24.htm

📁 内有一些代码
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke GetWindowRect,hDlg,addr 
rect</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke SetWindowPos, 
hDlg, HWND_TOPMOST, rect.left, rect.top, rect.right, rect.bottom, 
SWP_SHOWWINDOW</B> <BR><B>&nbsp;&nbsp;&nbsp; .elseif uMsg==WM_MOUSEHOOK</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
GetDlgItemText,hDlg,IDC_HANDLE,addr buffer1,128</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke wsprintf,addr 
buffer,addr template,wParam</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke lstrcmpi,addr 
buffer,addr buffer1</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if 
eax!=0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
SetDlgItemText,hDlg,IDC_HANDLE,addr buffer</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
GetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer1,128</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
GetClassName,wParam,addr buffer,128</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke lstrcmpi,addr 
buffer,addr buffer1</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if 
eax!=0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
SetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
GetDlgItemText,hDlg,IDC_WNDPROC,addr buffer1,128</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
GetClassLong,wParam,GCL_WNDPROC</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke wsprintf,addr 
buffer,addr template,eax</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke lstrcmpi,addr buffer,addr buffer1</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if eax!=0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke 
SetDlgItemText,hDlg,IDC_WNDPROC,addr buffer</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .elseif uMsg==WM_COMMAND</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if lParam!=0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov 
eax,wParam</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov 
edx,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shr 
edx,16</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if 
dx==BN_CLICKED</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.if ax==IDC_EXIT</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SendMessage,hDlg,WM_CLOSE,0,0</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.else</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.if HookFlag==FALSE</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke InstallHook,hDlg</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.if eax!=NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mov HookFlag,TRUE</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SetDlgItemText,hDlg,IDC_HOOK,addr UnhookText</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.else</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke UninstallHook</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SetDlgItemText,hDlg,IDC_HOOK,addr HookText</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
mov HookFlag,FALSE</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SetDlgItemText,hDlg,IDC_CLASSNAME,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SetDlgItemText,hDlg,IDC_HANDLE,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
invoke SetDlgItemText,hDlg,IDC_WNDPROC,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
.endif</B> <BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .endif</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .else</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov eax,FALSE</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .endif</B> <BR><B>&nbsp;&nbsp;&nbsp; mov eax,TRUE</B> 
<BR><B>&nbsp;&nbsp;&nbsp; ret</B> <BR><B>DlgFunc endp</B> 
<P><B>end start</B> 
<P>;----------------------------------------------------- DLL的源代码部分 
-------------------------------------- <BR><B>.386</B> <BR><B>.model 
flat,stdcall</B> <BR><B>option casemap:none</B> <BR><B>include 
\masm32\include\windows.inc</B> <BR><B>include \masm32\include\kernel32.inc</B> 
<BR><B>includelib \masm32\lib\kernel32.lib</B> <BR><B>include 
\masm32\include\user32.inc</B> <BR><B>includelib \masm32\lib\user32.lib</B> 
<P><B>.const</B> <BR><B>WM_MOUSEHOOK equ WM_USER+6</B> 
<P><B>.data</B> <BR><B>hInstance dd 0</B> 
<P><B>.data?</B> <BR><B>hHook dd ?</B> <BR><B>hWnd dd ?</B> 
<P><B>.code</B> <BR><B>DllEntry proc hInst:HINSTANCE, reason:DWORD, 
reserved1:DWORD</B> <BR><B>&nbsp;&nbsp;&nbsp; .if reason==DLL_PROCESS_ATTACH</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push hInst</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pop hInstance</B> 
<BR><B>&nbsp;&nbsp;&nbsp; .endif</B> <BR><B>&nbsp;&nbsp;&nbsp; mov&nbsp; 
eax,TRUE</B> <BR><B>&nbsp;&nbsp;&nbsp; ret</B> <BR><B>DllEntry Endp</B> 
<P><B>MouseProc proc nCode:DWORD,wParam:DWORD,lParam:DWORD</B> 
<BR><B>&nbsp;&nbsp;&nbsp; invoke CallNextHookEx,hHook,nCode,wParam,lParam</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov edx,lParam</B> <BR><B>&nbsp;&nbsp;&nbsp; assume 
edx:PTR MOUSEHOOKSTRUCT</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
WindowFromPoint,[edx].pt.x,[edx].pt.y</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
PostMessage,hWnd,WM_MOUSEHOOK,eax,0</B> <BR><B>&nbsp;&nbsp;&nbsp; assume 
edx:nothing</B> <BR><B>&nbsp;&nbsp;&nbsp; xor eax,eax</B> 
<BR><B>&nbsp;&nbsp;&nbsp; ret</B> <BR><B>MouseProc endp</B> 
<P><B>InstallHook proc hwnd:DWORD</B> <BR><B>&nbsp;&nbsp;&nbsp; push hwnd</B> 
<BR><B>&nbsp;&nbsp;&nbsp; pop hWnd</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
SetWindowsHookEx,WH_MOUSE,addr MouseProc,hInstance,NULL</B> 
<BR><B>&nbsp;&nbsp;&nbsp; mov hHook,eax</B> <BR><B>&nbsp;&nbsp;&nbsp; ret</B> 
<BR><B>InstallHook endp</B> 
<P><B>UninstallHook proc</B> <BR><B>&nbsp;&nbsp;&nbsp; invoke 
UnhookWindowsHookEx,hHook</B> <BR><B>&nbsp;&nbsp;&nbsp; ret</B> 
<BR><B>UninstallHook endp</B> 
<P><B>End DllEntry</B> 
<P>;---------------------------------------------- DLL的Makefile文件 
---------------------------------------------- 
<P><B>NAME=mousehook</B> <BR><B>$(NAME).dll: $(NAME).obj</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Link /SECTION:.bss,S&nbsp; 
/DLL /DEF:$(NAME).def /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm\lib $(NAME).obj</B> 
<BR><B>$(NAME).obj: $(NAME).asm</B> 
<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ml /c /coff /Cp 

⌨️ 快捷键说明

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