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

📄 findwindow.asm

📁 把桌面当成DC,在上面作图,有兴趣的可以研究下! 非常简单!里面注释写的很明白,我就不多说了
💻 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 + -