鱼C论坛

 找回密码
 立即注册
查看: 13350|回复: 88

[原创] 【源码分享】Win32汇编版 【XP记事本】的实现 有图有真相

  [复制链接]
发表于 2013-2-23 19:33:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 lukelqz 于 2013-2-24 09:14 编辑

    其实呢在罗云彬的Win32汇编书里面已经有一章讲RichEdit控件的,个人觉得这个控件用来做编辑控件还是很好用的。
    但是觉得罗云彬后面写的那个类似记事本的程序的功能不是很完善,寒假在家没网,后来我就照着XP记事本,就又写了一个。
还是有些亮点在里面的,比如自动换行的切换,拖放打开文件,XP系统下XP的按钮风格。
另外今天回校在Win7 64位下测试 有点小问题 不过修复了一下,应该好了。
欢迎大家测试BUG联系我
下面放些测试截图:
先来个拼接的
测试截图拼接.jpg
再来张
测试截图02.png
和xp记事本的对比,测试的是F5时间输入功能
测试截图03.png
跳行功能
测试截图04.PNG
字符串查找替换
测试截图07.png
Unix回车转换
测试截图13.PNG
拖放打开
测试截图11.PNG
开发日志2013.2.14    完成Notepad的资源文件
开发日志2013.2.15    完成Notepad的XP按钮风格,字体设置功能
开发日志2013.2.16    完成Notepad的自动换行功能,状态栏切换功能,背景色功能,插入时间功能
开发日志2013.2.17    完成Notepad的syslink控件打开网站功能,转到某行功能,查找字符串功能
开发日志2013.2.18    完成Notepad的替换字符串功能,新建打开保存另存为功能 完成运行状态下拖放打开文件功能
开发日志2013.2.19    完成Notepad的未启动情况下拖放打开文件功能 支持编辑状态的时候,文件可删除
开发日志2013.2.20   完成notepad的扩展功能,可更改tab位大小,实现Richedit右键弹出菜单功能
开发日志2013.2.22    完成Notepad的unix换行转换功能

另外还有一些自己想加的功能但是没实现。欢迎广大鱼油支招。

一、阅读方向的设置,这个功能我翻了很多资料,就是没实现,只能开始注册窗口类的时候用ES_LEFT或者ES_RIGHT来设置阅读方向,运行之后通过getwindowlong和setwindowlong来改窗口风格的方法来实现改阅读方向未成功
二、还有个待实现的功能:注册表的注册,完成双击打开txt等文件自动打开本软件

最后来个源码
游客,如果您要查看本帖隐藏内容请回复

PS:刚刚开了一下360,说我写的软件,故意伪装成系统文件,报毒了呵呵,大家不放心的话,可以直接删掉exe文件,自己拿我源码重新编译一下,对了忘了说了,用的Win32汇编IDE是Radasm,挺好的IDE,关键支持自动API。

明天就是小年了,祝大家2013元宵节快乐~

评分

参与人数 2荣誉 +8 鱼币 +15 贡献 +5 收起 理由
cathe + 8 + 10 + 5 赞一个.
メ㊣逆ご帅☆ + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 20:18:19 | 显示全部楼层
还没学到 先看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 20:29:47 | 显示全部楼层
谢谢分享。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 20:47:14 | 显示全部楼层
看看,顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 21:14:58 | 显示全部楼层
给力。
感谢分享。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 21:18:03 | 显示全部楼层
做的好用心,我做的几乎都是半成品。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 21:23:22 | 显示全部楼层
不错哇,加顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 21:31:36 | 显示全部楼层
我来看看 是什么啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 21:39:30 | 显示全部楼层
赞一个.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 22:00:26 | 显示全部楼层
哇哦,你写的这段KU也。
movzx eax,@stTime.wDay
push eax
movzx eax,@stTime.wMonth
push eax
movzx eax,@stTime.wYear
push eax
movzx eax,@stTime.wMinute
push eax
movzx eax,@stTime.wHour
push eax
mov eax,offset szDataFormat
push eax
lea eax,@szBuffer
push eax
call wsprintf
add esp,28
在确认栈平衡的情况下我想也可以用ebp暂时代替esp,用MOV来哦

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-23 22:55:56 | 显示全部楼层

啊哟,俺是在家无聊,搞搞咯,寒假一个月没上网了,都是手机签到的。你说用mov不太会呢。教教我吧。我只知道ebp是子程序用来读参数和局部变量的,然后子程序leave的时候ebp会把保存的值还给esp,来维持堆栈平衡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 23:10:29 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 2013-2-23 23:55 编辑
lukelqz 发表于 2013-2-23 22:55
啊哟,俺是在家无聊,搞搞咯,寒假一个月没上网了,都是手机签到的。你说用mov不太会呢。教教我吧 ...

一个月没上网。要是我会蛋疼死。。。
其实原本我也不知道这样传参,不过跟着小甲鱼老师调试的时候经常看见他们是这样调用的
VC6也很经常这样做
我已经发现EBP不行了。。。。。EBP会影响到@stTime.wDay之类的,我改用EDI
;其实这个跟PUSH一个道理,PUSH是即时开辟栈空间,即时传参,而这个是一次性开辟,一次性传参
mov edi,esp;用EDI保存当前ESP地址(不能用ESP,会影响到@stTime.wDay之类的结构传值,它靠EBP的)
sub esp,28;一次性开辟,算好需要开辟大小4*7=28,然后就是使劲传参了
movzx eax,@stTime.wDay
mov [edi-4],eax
movzx eax,@stTime.wMonth
mov [edi-8],eax
movzx eax,@stTime.wYear
mov [edi-12],eax
movzx eax,@stTime.wMinute
mov [edi-16],eax
movzx eax,@stTime.wHour
mov [edi-20],eax
mov eax,offset szDataFormat
mov [edi-24],eax
lea eax,@szBuffer
mov [edi-28],eax
call wsprintf
add esp,28;mov esp,edi
测试是可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 23:16:44 | 显示全部楼层
学习学习 来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-23 23:19:13 | 显示全部楼层
lukelqz 发表于 2013-2-23 22:55
啊哟,俺是在家无聊,搞搞咯,寒假一个月没上网了,都是手机签到的。你说用mov不太会呢。教教我吧 ...

你这进步速度超神了$_$,边玩游戏都这么给力。
我win32学习比你久好多。羡慕嫉妒恨。
你一直理解能力都这么好么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-24 00:16:23 | 显示全部楼层
有种 大牛的感觉啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-24 00:47:05 | 显示全部楼层
祝大家2013元宵节快乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-24 01:00:30 | 显示全部楼层
有点厉害啊 佩服呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-24 09:03:41 | 显示全部楼层
メ㊣逆ご帅☆ 发表于 2013-2-23 23:10
一个月没上网。要是我会蛋疼死。。。
其实原本我也不知道这样传参,不过跟着小甲鱼老师调试的时候经常看 ...

soga
明白了,感觉其实和子程序把esp暂时给ebp,然后leave的时候再恢复道理差不多哈。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-24 09:07:42 | 显示全部楼层
メ㊣逆ご帅☆ 发表于 2013-2-23 23:19
你这进步速度超神了$_$,边玩游戏都这么给力。
我win32学习比你久好多。羡慕嫉妒恨。
你一直理解能力都 ...

俺都边学边玩,其实还是耐不下心来学,将近一个学期了,那本罗云彬的书到现在都没看完哦
你的经验肯定比我丰富呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-24 12:27:45 | 显示全部楼层
完全搞不清 套路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 01:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表