标题: [工具合集] 批处理显示简单动画工具GDI.EXE [打印本页]
作者: caruko 时间: 2011-5-25 17:17 标题: 批处理显示简单动画工具GDI.EXE
更新了之前的PICSHOW,这个更强大。
GDI.EXE
大小:360K
CodeBy:AUTOIT
功能:在批处理窗口(或别的窗口)显示图片、彩色文字,支持延时显示多个图片文字以达到动画的效果。
帮助 /?:- GDI "Options" [Args1] [Args2]...
- Options 选项 只有一个选项时可以省略""号。
- /T:title 设置窗口标题,标题字符串足够区别其它窗口就可以,
- 如:/T:cmd 。
-
- /P 显示该工具炫彩效果,可当作是彩蛋。^_^
- 作者:caruko@qq.com
-
- /C 清除窗口中的内容。如果后面带有参数则先清屏再显示
- 参数对象。
-
- /S:sleep 设置延迟的毫秒数,当GDI工具拥有多个显示对象时,每
- 显示完成一个对象即延迟一次。
-
- /? 显示GDI工具帮助
-
- Args 详细格式:
- PIC 显示图片的格式为“ filename*xpos*ypos ” ,filename 为
- 图片[路径]文件名,xpos、ypos为窗口相对坐标[像素]位置。
-
- TEXT 显示文字格式“string*xpos*ypos*字体*字体大小*32位颜色RGB值”,
- 当string含有空格时,应将该参数用""包裹;"字体"为字体名,
- 如宋体;"字体大小"为数字,如12;32位颜色RGB值包括了透明值,
- 如"FF03F0FF"
-
- 特殊说明:GDI工具根据参数先后顺序显示对象,如果有重叠,后显示
- 的将会覆盖先前显示对象的重叠部分。
-
- 例子:
- GDI "/t:cmd /p" 显示炫彩效果,如果带有参数,参数设置的对象不会显示。
- GDI "/t:cmd /c" 清除屏幕上显示的内容。
- GDI "/t:cmd /s:500" 1.jpg*100*100 "hello world*200*200*宋体*18*FF03F0FF"
- 先在100x100位置显示1.jpg,隔500毫秒再在200x200位置显示一紫色字符串"hello world"
复制代码
复制代码
GDI.7z
http://pan.baidu.com/share/link?shareid=71386952&uk=1124163200
作者: caruko 时间: 2011-5-25 21:56
做了一个网盘外链,节省空间起见,删除了附件。
不知道后台中文件清除了没有,没有的话,管理员可以删一下。
作者: Hello123World 时间: 2011-5-26 15:43
还是别节省空间了吧,那个外链还要注册账号。
作者: caruko 时间: 2011-5-26 16:59
3# Hello123World
地址写错了。。
http://www.diskes.com/index.jsp
但是我这里不用账号啊,即使不登陆,也可以直接HTTP下载。
作者: sxw 时间: 2011-5-26 23:24
可以下载,用浏览器下,迅雷好像不行啊
作者: cjiabing 时间: 2011-5-27 00:11
太变态了!~过目难忘!~
caruko 写了那么多对cmd有用的工具,我们不应该忽视!~
我们到处找第三方,用以拓展批处理的性能,拓展我们在批处理上的自由空间,caruko 正为我们开拓这条路!~
谢谢!~
不过你提供下载的网址如果不注意的话还以为要注册才能下载呢!~
作者: cjiabing 时间: 2011-5-27 00:41
- @echo off
- set gdi=GDI.exe
- %gdi% "/t:cmd" "%ALLUSERSPROFILE%\Documents\My Pictures\示例图片\Sunset.jpg"*1*1 "晚霞,映红了天边的天空*190*100*宋体*18*FFBB00EE"
- pause>nul
复制代码
大哥,你那个设置字体颜色的到底是什么代码啊?搞不懂,要八位数呢,说明一下喂@!~
RGB颜色查询对照表:
http://www.114la.com/other/rgb.htm
作者: caruko 时间: 2011-5-27 01:21
本帖最后由 caruko 于 2011-5-27 01:23 编辑
7# cjiabing
这是32位RGB颜色代码,8个16进制数表示,分别为BGRA。
也就是说,前6位跟RGB 24一样,后面2位代表透明值,00---FF 数值越高,透明度越低。
如果你用不到这些,一律在6位RGB后面增加 FF 就行。
作者: caruko 时间: 2011-5-27 01:27
有了这个工具,用批处理写棋类游戏,画棋盘,棋子;
写扑克牌,麻将类,简单RPG游戏也都没问题了。
作者: cjiabing 时间: 2011-5-27 01:33
9# caruko
正是看到它的发展前景!~
但它的致命伤也是很明显的,一旦批处理窗口退到后台,或者其它窗口覆盖过cmd窗口,比如QQ消息框,所有显示的图片都不见了。
假如有空你看看w3m这个命令浏览器吧,它使用一个插件可以显示图片的,不过我没找到该插件。
作者: caruko 时间: 2011-5-27 01:50
本帖最后由 caruko 于 2011-5-27 01:54 编辑
因为是命令行工具,显示完成后程序就退出,不再驻留内存,所以没有设置让窗口重画...
除非更改CMD窗口属性,但是我没试过。
另外,现在是用循环的方法显示图片,也就是每显示一张图片,就调用了一次API,所以显示多张图略有延迟。
而显示字体时,则调用了好多次API,所以显示字体较慢。
有时间,我将这个再增强一点,使用内存缓存,让所有图片先在内存中组合出最终效果,再一次显示。
另外,关于 /t 开关,很多时候可以省略也没有问题,但不保证不会出错。
作者: CrLf 时间: 2011-5-27 15:11
这个必须要支持
作者: Hello123World 时间: 2011-5-27 15:40
网站右上角输入直接提取下载,无需注册,无需下载工具。——这句话被我无视了,sorry。
作者: caruko 时间: 2011-5-27 15:59
突然有一种更好的实现想法。
1,写一个DLL,将这些代码写进去,然后使用远程线程注入的方法,将这个DLL注入到CMD.EXE中。 (不知道可行不,CMD比较特殊)
2,该DLL线程循环读取一个特定的环境变量名,从该变量中读取控制命令及参数,然后实现DLL中的画图等功能。 (DLL身处CMD进程之中,变量应该是共享的。)
3,DLL 可以设置截取CMD窗口重画消息,就可以保持画面被覆盖也不会消失了。
4,使用的时候先用注入工具注入DLL,然后直接set某个特定变量就能操作,效率更高。
不过要实现还是有不少的代码量啊..
作者: w156445045 时间: 2011-6-7 18:16
这个网站打了半天没打开呢~
作者: firefly 时间: 2011-6-8 20:55
1# caruko
输入提取码后,新打开的页面空白,刷新后也没有下载,不知道是怎么回事。
最好把文件上传到115/DBank/快盘,分享方便啊
作者: tmplinshi 时间: 2011-7-1 19:28
不能下载了,楼主再传一下,谢谢。
作者: yuanxiaochen 时间: 2011-7-2 16:38
同意楼上,还是别省空间了~~
作者: caruko 时间: 2011-7-7 16:55
=.= 晕,最近忙着没怎么来逛。
我重新上传一下。
作者: cy97cool 时间: 2011-7-28 20:34
下载地址呢?!
作者: strong12345 时间: 2011-7-31 11:40
CODE BY AUTOIT........
这让我吃惊了
作者: strong12345 时间: 2011-8-1 17:48
我想把他放到 system32\ 底下
但已经有 gdi.exe 文件了 =.=
作者: 心宇 时间: 2011-8-6 13:37
神马东西 AU3编译好 还不开放源码
作者: defanive 时间: 2012-5-23 15:13
回复 14# caruko
类似的想法很早以前就有过了,但是有以下几点困难没办法克服
1、注入报毒,暂时没找到办法可以不报毒的
2、控制台窗口不是属于cmd进程的,控制台窗口是又另外一个系统进程(忘了是哪个了)直接管理,截取重画消息什么的是不可能的,除非注入到那个系统进程。这也是基本上大部分窗口属性操作API对控制台窗口都无效的原因,因为那个窗口根本就不属于cmd进程,当然操作不了
PS如果能搞定的话,不需要循环读取变脸,API HOOK setenvironmetvariable即可
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |