📄 findwindow.asm
字号:
;********************************************************************
; 创建作者: 阿甘(agan)
; 创建时间: 2009年4月27日0:05:07
; 文件名称: FindWindow.asm
;
; 实现功能:
; 在桌面窗口上进行涂写!
;
;
; 程序编写环境: MASM32开发包(MASMPlus编辑器)
;
; 编译于链接方法:
; ml /c /coff /Cp FindWindow.asm
; Link /subsystem:console FindWindow.obj
;
; 个人主页: www.aganhome.com
;*******************************************************************
.386
.model flat,stdcall
option casemap:none
;********************************************************************
;Include 文件定义
;********************************************************************
include windows.inc
include gdi32.inc
includelib gdi32.lib
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include macro.asm
include masm32.inc
includelib masm32.lib
;********************************************************************
;数据段
;********************************************************************
.data?
hStart dd ?
hDc dd ?
TimeId dd ?
lpMsg MSG <>
iCount dd ?
buffer db 100 dup(?) ;控制台输出
hdc dd ? ;找到的桌面的HDC
hFont dd ? ;创建一种字体
;---------------------------------------------------
.const
;********************************************************************
;代码段
;********************************************************************
.code
TimeProc proc
;==================================
;获取桌面DC
;==================================
invoke GetDC,HWND_DESKTOP
mov hdc,eax
;==================================
;创建逻辑字体
;==================================
invoke CreateFont, 100, 40, 0, 0, FW_BLACK, 0, 0, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, \
CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH or FF_SWISS, CTEXT("宋体")
mov hFont,eax
;---------------------------------------------------
;invoke CreateFont, 100, ;字体高度
; 40,\ ;字体宽度
; 0,\ ;旋转角度
; 0,\ ;每个字的倾斜度
; FW_BLACK,\ ;字体粗细
; 0,\ ;要倾斜否
; 0,\ ;要下划线否
; 0,\ ;要删除线否
; ANSI_CHARSET,\ ;字符集
; OUT_DEFAULT_PRECIS,\ ;输出精度输出精度定义了输出与所要求的 字体高度、宽度、字符方向等的接近程度。
; CLIP_CHARACTER_PRECIS,\ ;指定剪辑精度。剪辑精度定义了当字符的一部分超过剪辑区域时对字符的剪辑方式
; DEFAULT_QUALITY,\ ;输出质量DEFAULT_QUALITY (默认质量)DRAFT_QUALITY (草稿质量)PROOF_QUALITY (正稿质量)
; DEFAULT_PITCH or FF_SWISS,\ ;指定字体的字符间距和族
; CTEXT("宋体") ;;它指定的所用的字体名。
;---------------------------------------------------
invoke SelectObject,hdc,hFont ;将这种字体设置给DC
;==================================
;RGB宏是在macro里面定义的!
;==================================
RGB 200,200,50
invoke SetTextColor,hdc,eax ;准备好笔
RGB 0,0,255
invoke SetBkMode,hdc,eax ;准备好背景
invoke TextOut,hdc,800, 50,CTEXT( "阿甘写的DC assembly! "),20 ;写字啦
invoke DeleteObject,hFont ;释放字体
invoke ReleaseDC, 0, hdc ;释放DC
;---------------------------------------------------
;控制台输出
invoke wsprintf,offset buffer,CTEXT("画一下",13,10),NULL
invoke StdOut, offset buffer
ret
TimeProc endp
;********************************************************************
start:
_WinMain proc
invoke SetTimer, 0, 0, 55, addr TimeProc
mov TimeId, eax ;申请一个定时器
;---------------------------------------------------
.while TRUE
invoke GetMessage, addr lpMsg, NULL, 0, 0
.break .if eax == 0
invoke TranslateMessage, addr lpMsg
invoke DispatchMessage, addr lpMsg
.endw
;---------------------------------------------------
invoke KillTimer, 0, TimeId
ret
_WinMain endp
;---------------------------------------------------
call _WinMain
invoke ExitProcess, 0
;********************************************************************
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -