首页
社区
课程
招聘
[旧帖] [原创]自编一个小小的实用程序win32捕捉窗口:请版主帮忙添加一下 0.00雪花
发表于: 2011-10-16 22:12 1072

[旧帖] [原创]自编一个小小的实用程序win32捕捉窗口:请版主帮忙添加一下 0.00雪花

2011-10-16 22:12
1072
问题:求往里添加功能:1、具体功能是通过快捷键把“窗口类名”复制到剪切板里,能在其它程序任意粘贴
具体程序:
;>>>>>>asm部份

;>>>>>开始
.386
.model flat,stdcall
option casemap:none
;>>>>>库文件
include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib
DLG_MAIN EQU 1000
IDC_MSG EQU 10
IDC_TOP EQU 11
IDC_SEL EQU 12
IDC_NEW EQU 13
;>>>>>数据段
.data?
szClass  db 256 dup (?)
szBuffer db 256 dup (?)
.data
hWin dd ?
hWinMain dd ?
.const  
;szText db '%s:%08x:%02d:%02d',0 ;分别为窗口句柄、窗口类名、鼠标X坐标、鼠标Y坐标
  
szText  db '窗口类为:',0dh,0ah,'   【%s】',0dh,0ah
        db '窗口句柄:',0dh,0ah,'   【%08x】',0dh,0ah
        db '鼠标坐标:',0dh,0ah,'   X:【%02d】',0dh,0ah,'   Y:【%02d】',0
.code
_Display proc uses eax
        LOCAL @stPs:POINT
          invoke GetCursorPos,addr @stPs
           invoke WindowFromPoint,@stPs.x,@stPs.y
           push eax
           pop hWin
          .if eax                
                   invoke GetClassName,hWin,addr szClass,-1 ;用OD调试为什么这个函数这里出错。获取窗口类名是不正确
                   invoke wsprintf,offset szBuffer,offset szText,offset szClass,hWin,@stPs.x,@stPs.y                  
                   invoke InvalidateRect,hWinMain,NULL,TRUE        
           .endif
ret
_Display endp
_WinMain proc uses ebx edi esi hWnd:dword,uMsg:dword,wParam:dword,lParam:dword
        LOCAL @stPs:POINT
        mov eax,uMsg       
;********************************************************************
          .if eax == WM_CLOSE           
                   invoke KillTimer,hWnd,1  ;删除定时器
                   invoke EndDialog,hWnd,0   
          .elseif eax == WM_INITDIALOG
                  push hWnd
                pop hWinMain  
                  invoke SetTimer,0,0,500,offset _Display
                  invoke        CheckDlgButton,hWnd,IDC_TOP,BST_CHECKED        
                invoke        SetWindowPos,hWnd,HWND_TOPMOST,0,0,0,0,\
                                SWP_NOMOVE or SWP_NOSIZE               
        .elseif eax == WM_COMMAND
                mov        eax,wParam               
                .if        ax ==        IDCANCEL
                        invoke        EndDialog,hWnd,NULL
                ;>>>>>>>>>实现窗口悬浮如所有窗口之上
                .elseif        ax ==        IDC_TOP
                        invoke        IsDlgButtonChecked,hWnd,IDC_TOP
                        .if        eax == BST_CHECKED
                                invoke        SetWindowPos,hWnd,HWND_TOPMOST,0,0,0,0,\
                                SWP_NOMOVE or SWP_NOSIZE
                        .else
                                invoke        SetWindowPos,hWnd,HWND_NOTOPMOST,0,0,0,0,\
                                SWP_NOMOVE or SWP_NOSIZE
                        .endif
                ;>>>>>>>实现LTEXT控件可写与不可写
                .elseif ax == IDC_SEL
                        invoke IsDlgButtonChecked,hWnd,IDC_SEL
                        mov ebx,eax
                        invoke GetDlgItem,hWnd,IDC_MSG
                        invoke        GetDlgItem,hWnd,IDOK
                        .if     ebx == BST_CHECKED                                       
                                invoke        EnableWindow,eax,FALSE
                        .else
                                invoke        EnableWindow,eax,TRUE                       
                        .endif
                ;>>>>>>>创建时钟,调用时钟回调函数
                .elseif ax == IDOK                                       
                                invoke  SetDlgItemText,hWinMain,IDC_MSG,addr szBuffer                               
                .endif
        .else
                mov        eax,FALSE
                ret
        .endif
                mov        eax,TRUE
        ret

_WinMain endp
Start:
        invoke GetModuleHandle,0
        invoke DialogBoxParam,eax,DLG_MAIN,0,offset _WinMain,0               
        invoke ExitProcess,NULL
end Start
;>>>>>>资源文件部份
#include <resource.h>
#define DLG_MAIN 1000
#define IDC_MSG 10
#define IDC_TOP 11
#define IDC_SEL 12
#define IDC_NEW 13

DLG_MAIN DIALOG 20,70,160,80
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |  WS_MINIMIZEBOX
CAPTION "信息->作者:【残々剑】"
FONT 9,"宋体"
BEGIN
LTEXT "使用说明:\n1、请将鼠标放到窗口上。\n2、单击按钮或按Alt+Z\n3、选中悬浮窗口此窗口将悬浮\n4、选中固定信息选项将锁定信息",IDC_MSG,3,3,83,75,WS_BORDER
DEFPUSHBUTTON "开始获取(&Z)",IDOK, 92,5,60,15
GROUPBOX     "窗口选项",                         -1,     90,25,67,50
AUTOCHECKBOX "悬浮窗口",                         IDC_TOP,92,35,45,15
AUTOCHECKBOX "固定信息",                         IDC_SEL,92,58,45,15

END

[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回