【第三方】CAPIx 2.0 发布
bat吧
全部回复
仅看楼主
level 14
致敬D大和他的CAPI(注入版)
简介:
CAPI是bathome的defanvie开发的一款第三方,堪称批处理第三方的登峰造极之作
CAPI提供的最大功能就是一个:调用系统API 除此之外,CAPI并没有任何功能
而且其注入式的特点,一方面使得其调用速度得到了飞一般的提升,另一方面也使得其能够保存进程数据
这两个功能,赋予了CAPI无穷的力量
何为系统API?简而言之,是MS为了便利开发者,而封装在dll中的一系列函数
通过这些函数,开发者可以不需要理解系统的内部原理就方便地开发出产品
比如著名的image(第一代),就是调用了gdi32中的API从而实现了绘图功能
而利用CAPI,我们可以轻松地实现这个功能,而且由于CAPI是注入式的,我们可以甚至可以实现双缓冲
即先把图片画到内存中的画布上,等待所有的图片都绘制完成,再将整块画布复制到CMD中
这样做的最大好处就是可以避免闪烁,实现流畅地绘制
然而CAPI有几个问题,导致了它虽然强大,但却很少被使用
1.它采取远程线程注入的方法将dll注入到cmd中,这是病毒的常用伎俩,因此误杀率极高
2.开发者defanvie已经很久没有现身,而且CAPI没有开源.已经无法在最新的系统上运行了
CAPIx就是为了解决这两个问题而开发的
首先CAPIx摒弃了远程线程注入的方式,而是使用一个修改过的提取自win 2003的cmd
这个cmd在启动时会自动加载CAPIx.dll,免去了注入的危险,还提高了兼容性——只要能运行这个cmd.exe,就能使用CAPIx
并且CAPIx在API调用的功能上做出了进一步的加强,主要有下
1.在API Call之外又提供了一个新命令API Exec,用来调用遵循__cdecl约定的函数
简而言之,可以调用其他dll中的函数,比如msvcrt中的大部分函数,像printf, scanf之类的
又比如调用regex2.dll实现正则匹配,还可以自己写dll供Exec调用,比如写一个浮点运算的dll代替set/a之类的
2.增加了浮点型和双浮点型两种类型, 传参更加方便
3.可以指定API返回值类型,比如调用sqrt,就需要指定返回值类型为双浮点型
4.标识符'*'不是单纯地取内容,而是取地址,可以将修改同步到变量中,而且提供了指针类型.
也就是说可以使用set CAPI=API Exec scanf "#%d %d" *;_1 *;_2这样的语句了
CAPIx潜力无限!
下载地址: htt[冷]ps:/[冷]/github.co[冷]m/YinTianliang/CAPIx/tree/master/bin
请务必下载CAPIx.dll和cmd.exe, CAPIx_Help.html为详细帮助,建议下载
使用CAPIx进行的程序只能在上面这个cmd.exe中正常运行
所以建议使用以下JS启动游戏(该cmd.exe需要与js, capix.dll放在同一目录下)
new ActiveXObject('WScript.Shell').Run('"' + WScript.ScriptFullName.replace(/[^\\]*$/,'') + 'cmd.exe" /c 游戏主程序.bat')
或者在批处理开头加上这两行
%1@start "" "%~dp0cmd.exe" "/c %~fs0 :"
%1@exit
PS
这是6个月前的作品...最近突然灵光一闪修正了最后一个bug,然后就发布了
再拖估计就要等到6.8号以后了....
关于回调函数的一点想法:
由于加入了Exec命令,CAPIx现在可以调用libtcc.dll了.而libtcc提供了API可以获取编译后的函数在内存中的地址
或许可以利用libtcc来实现回调函数
GC[谐]D.dll 1.1
封装了一些函数, 供CAPIx调用 http[冷]s:/[冷]/github.com/YinTianliang/GC[谐]D/tree/master/bin
比如绘图 鼠标什么的
2017年02月11日 13点02分 1
level 14
上图是用1白色像素的jpg图片绘制了10000次得到的正方形
可以看到仅仅用了1.5s
代码 codep[滑稽]ad.o[冷]rg/8XDKcG[冷]h5
这幅图是使用256x256的我随手画的图像(jpg),在原地绘制了5000次
这样的绘图速度,bat游戏的FPS是时候飙起来了!
2017年02月11日 14点02分 2
2.0.1 修复了需要msvcrtd.dll的bug(github同步更新)
2017年02月18日 14点02分
level 14
这两个是CAPI作者开发的作品,魔塔和躲避球.两个游戏可玩性都极高
这么多年过去了,现在看来仍然惊艳无比
躲避球的FPS是进行了限制,不然太快受不了...
我将其中的CAPI替换成了CAPIx以提高兼容性和避免误杀
各位可以下载下来,不仅可以体验到CAPI的强大,也能学习其中的代码
[无效] http://pan.baidu.com/s/1eScHPYU
2017年02月11日 14点02分 3
level 14
@tmxk0411 @超人硬汉 申精
@黄田杰 @实验初一电教委 @.....忘了ID是什么
没有群英激斗传的脑洞.imageplus,GC[谐]D,CAPIx都不会出现
这个游戏应该被铭记,虽然它没有开发出来
2017年02月11日 14点02分 4
2017年02月11日 14点02分
我觉得应该建立一个活跃吧友名单,省得大召唤还得翻首页....
2017年02月11日 14点02分
2017年02月12日 04点02分
level 12
好厉害!!!!
2017年02月11日 15点02分 5
level 11
火钳留名~[太开心]
2017年02月12日 00点02分 6
level 12
ahhhhhh终于填坑了
2017年02月12日 01点02分 7
level 12
厉害啊…
2017年02月12日 02点02分 8
的确很6
2017年02月18日 10点02分
@爱的圆周率♬ 只不过不是经常用bat了…唉:-(
2017年02月18日 14点02分
level 13
厉害了我的API,话说究竟怎么用
2017年02月12日 09点02分 9
我现在需要显示图片api,方块加载速度太慢了。。
2017年02月12日 09点02分
capix Picture1.Picture = LoadPicture("block.jpg") 是这么用的吗?
2017年02月12日 09点02分
@射命丸雲 顶楼链接有CAPIx和GCD的帮助, 2楼链接提供了一份示例代码
2017年02月12日 14点02分
level 13
等等,是defan i v e,不是defan v i e[喷]
2017年02月12日 09点02分 10
level 14
https://tieba.baidu.com/p/2499241431
http://www.bathome.net/thread-20410-1-1.html
http://www.bathome.net/thread-20411-1-1.html
@阿狸我的鱼12 这是目前能够找到的三篇CAPI教程,
我的教程可能要下周日才发布
(其实CAPIx没什么好讲的,有C语言基础.再看一点代码,很快就能上手)
2017年02月12日 15点02分 11
level 10
来了
2017年02月14日 09点02分 12
level 12
顶顶顶
2017年02月18日 12点02分 13
level 13
[真棒]
2017年08月06日 16点08分 14
level 11
顶(๑•̀ㅂ•́)و✧
2017年08月08日 12点08分 15
1 2 尾页