使用Win32 ASM 发送消息改变记事本窗口标题
标签: 汇编语言 masm32 SendMessage FindWindow WM_SETTEXT invoke
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; by bobo
; Send.asm
; 从一个程序向另一个窗口程序发送消息
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
hWnd dd ?
szBuffer db 256 dup (?)
.const
szCaption db 'SendMessage',0
szReturn db 'SendMessage returned!',0
szDestClass db 'Notepad',0 ;记事本窗口的窗口类
szText db '改变记事本窗口的标题!!!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
invoke FindWindow,addr szDestClass,NULL
.if eax
mov hWnd,eax ;找到记事本窗口则发送消息
invoke SendMessage,hWnd,WM_SETTEXT,0,addr szText
invoke MessageBox,NULL,offset szReturn,offset szCaption,MB_OK
.endif
invoke ExitProcess,NULL
end start
程序启动先调用FindWindow,根据记事本窗口的窗口类查找记事本窗口,
然后发送WM_SETTEXT消息;发送完之后弹出一个对话框;
打开没用的记事本窗口进行测试,不然可能把有用的记事本窗口标题改变了;
如果没有使用ASM集成开发环境,按如下操作构建;
set命令设置环境变量只是一次有效;
set path=xxxxx,此命令经试验是把新设置的xxxx追加,不会影响以前设置的path值;
先下载安装MASM32;
智能推荐
纯Ruby创建Win32窗口
前言 所谓纯Ruby是指只用Ruby代码调用API来创建出一个窗口。本文的例子使用了windows-pr和CStruct。 不熟悉的童鞋可以先看这篇文章:在Ruby中方便的调用Win32 API(使用windos-pr和CStruct) : 这里 或 这里 。 本文并不鼓励直接用API来做GUI程序,而是想借这个例子说明在Windows下, Ruby除了本身的强大之外,还可以很方便的使用API,充...
win32 窗口 绘制椭圆
win32 窗口 绘制椭圆 测试环境: win7 64 位 vs2013 建立一个 win32 应用程序 ,空项目,名称是 HelloPaintEllipse, 在项目中添加源文件 HelloPaintEllipse.cpp : 显示效果如下: 坐标标注: 绘制椭圆是使用的 矩形的对角的两点的坐标,该坐标可以是左上角和右下角,也可以是左下角和右上角 绘制的椭圆是对应矩形的内切椭圆...
win32 窗口 绘制矩形
win32 窗口 绘制矩形 测试环境: win7 64 位 vs2013 建立一个 win32 应用程序 ,空项目,名称是 HelloPaintRect, 在项目中添加源文件 HelloPaintRect.cpp : 内容如下: 显示效果如下:...
win32 窗口的本质
学习WIN32的吃力? 没理解 整个框架. 看看一个图 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BT8hiYG7-1589342852974)(窗口的本质.assets/1587912134933.png)] GUI 使用Windows现成的窗口(大部分是user32.dll), 如果你想自己画一个 自己的窗口 GDI(gdi32.dll). 但是GUI 和 ...
win32窗口程序 -----2、绘图
概要: HDC hdc; PAINTSTRUCT ps; HBRUSH Purple_Brush= CreateSolidBrush(RGB(102,0,204)); HBRUSH White_Brush= CreateSolidBrush(RGB(255,255,255));//定义画刷 关键函数: 1、 BeginPaint( HWND hWnd, LPPAINTSTRUCT lpPaint)...
猜你喜欢
python基础(《Python编程从入门到实践》笔记)K
python基础语法 本笔记是对这本书的基础语法部分进行了学习: 因为本身有其他语言的编程基础,所以笔记仅仅对我自不熟悉的部分进行了记录 函数...
QT(C++)面试总结
参考博客 QT信号槽机制的优缺点 (1)问题: 为什么Qt使用信号与槽机制而不是传统的回调函数机制进行对象间的通信呢? 回调函数的本质是“你想让别人的代码执行你的代码,而别人的代码你又不能动”这种需求下产生的。 回调函数是函数指针的一种用法,如果多个类都关注某个类的状态变化,此时需要维护一个列表,以存放多个回调函数的地址。对于每一个被关注的类,都需要做类似的工作,因此这种做...
【数据结构】栈与队列的面试题(一)
栈的简单认识和基本操作:点击打开链接 队列的简单认识和基本操作:点击打开链接 一.实现一个栈,要求实现Push(出栈),Pop(出栈),Min(返回最小值)的时间复杂度为O(1)。 (1.)方法一:创建两个栈来实现(Stack1,Stack2) &...
