最近闲的有点无聊,想开一个帖子扫盲一些脚本的原理,比如后台卡

现在开始继续讲解第三部分,卡键模块

楼主 灭绝VR死亡  发布于 2020-04-06 18:00:00 +0800 CST  
刚刚发了两个gif图,然后发现,动不了,很尴尬

楼主 灭绝VR死亡  发布于 2020-04-06 19:25:00 +0800 CST  


楼主 灭绝VR死亡  发布于 2020-04-06 19:47:00 +0800 CST  
终于发出来了,发gif的窍门:图片大小小于5M,而且得手机发。

楼主 灭绝VR死亡  发布于 2020-04-06 19:48:00 +0800 CST  


先上图,咱们先观测一下我写的这个东东。可以很容易的观察出来,我的卡键功能里面,可以同时进行三个(也就是对应了三个线程),此外,对于每一个线程里面,我需要读取的是一个窗口的句柄,以及需要的按键。



而读取需要的句柄,我们可以用GetForegroundWindow(); 延迟三秒后,返回所选中的窗口的句柄,并且将窗口的名字显示出来,告诉自己,读取成功。




然后,填上要卡的按键。



开始执行。

楼主 灭绝VR死亡  发布于 2020-04-06 19:50:00 +0800 CST  
这里教大家写一个C++版的超级简单的


这个网址不知道会不会被屏蔽,大家不用担心有毒,教大家怎么分辨木马网站,看域名能分辨99%的钓鱼木马网站。
https://paste.ubuntu.com/p/w8D9x5Dc8S/


如果显示不出来的话,这里有个截图的代码




然后实测可用


楼主 灭绝VR死亡  发布于 2020-04-06 20:23:00 +0800 CST  
解释一下,我上面写的C++版的简易代码, 基本上有一定的编程语言的同学,基本上不会有什么阅读障碍。


这个的功能,就是打开后,三秒内选中所需要卡键的窗口,然后输入所要卡的按键,如果是卡A键,那么输入A. 如果是卡空格键,那么输入Space。


注意:一定得用管理员身份运行
注意:一定得用管理员身份运行
注意:一定得用管理员身份运行
注意:一定得用管理员身份运行
注意:一定得用管理员身份运行
注意:一定得用管理员身份运行
编译出来之后的exe文件,用管理员身份运行。




楼主 灭绝VR死亡  发布于 2020-04-06 20:29:00 +0800 CST  
如果是想要多窗口同时卡键的同学呢,可以同时打开多个exe文件哦。




如果是对C++不熟悉的同学,大家可以先去下载一个C++的编辑器,我个人的话推荐Dev-Cpp,因为他比较轻量,好像40+M,非常小。
然后把我上面的代码粘贴进去,按F11;(说不定会引起大家对编程的爱好呢

楼主 灭绝VR死亡  发布于 2020-04-06 20:37:00 +0800 CST  
then?这个小程序可以解决同学们的燃眉之急,因为这只是一个命令行代码,所以得一定程度的优化,才可以更好的提高用户体验。


就比如我写的Java代码,编程一时爽一直编程一直爽。各种乱七八糟的坑都踩了一遍。写这个比写课设还累


如果是要Java来写这个功能的代码的话,首先,你需要一定的写GUI(图形用户界面)的能力,然后你的编程基础一定得非常扎实。这两点是刚需,我举个不太恰当的比方。


如果你熟练掌握C语言,但是对C++的面向对象编程,非常不熟悉。那么你从现在开始学Java来写这个代码,得用8周时间学习类与对象。 然后用8周时间学习java swing也就是比较简单的GUI。这十六周时间,是用来玩各种乱七八糟的程序与项目的,用来锻炼自己的代码能力。不然真的很容易自闭的。


所以这里,这里建议各位同学,想学好某一门语言的话,请先打好基础

楼主 灭绝VR死亡  发布于 2020-04-06 20:46:00 +0800 CST  
哈哈哈,终于感受到写教材的乐趣了。前面写了一大堆定义之类的,然后就可以默认大家都会了,都懂了

楼主 灭绝VR死亡  发布于 2020-04-06 20:52:00 +0800 CST  
这里还是提一下,怎么用java来写这个玩意儿。


前置技能:java swing(搭一个图像用户界面框架),thread(多线程),JNA(用来调用dll的),user32函数.


java里面,并不能直接运用user32的函数。必须得外置一个dll文件给他。然后这个世界jna就是一个桥梁,它能够使java能在java环境里面运行c++代码,也就是我们需要的user32函数。

楼主 灭绝VR死亡  发布于 2020-04-06 21:01:00 +0800 CST  
那后台卡键的部分,我就讲完咯~~~
接下来讲解后台喊话的原理。

楼主 灭绝VR死亡  发布于 2020-04-06 21:11:00 +0800 CST  
先说结论:使用方法几乎一样。
只不过这次它跟三国说的话就有点不一样了:“喂三国,你给楼主输入一个字符,不用你按下弹起了,你直接输进去就行,你晓得了吗”, 三国又唯唯诺诺的回复了一个“1”.

楼主 灭绝VR死亡  发布于 2020-04-06 21:38:00 +0800 CST  
如果我要自动喊话的内容是:“加油,欧里给!”
那么我在编程语言里面就应该这样子来写:




s = "加油 ,欧里给!";
for(int i=0;i < s.size(); i ++) //先写一个循环,遍历每一个字符
. PostMessageW (hWnd ,WM_CHAR ,s[i] ,0); //然后将这个字符发送到对应句柄的地方。

楼主 灭绝VR死亡  发布于 2020-04-06 21:43:00 +0800 CST  
贴吧也太不智能了,是不是很久没有维护过了,代码缩进,最后只剩下一个空格了,就不知道弄一个代码块的吗

楼主 灭绝VR死亡  发布于 2020-04-06 21:44:00 +0800 CST  
此外,三国的对话框,其实跟我们的cmd命令有那么点像。很多游戏,都是通过对话的这个步骤,进行一小部分的后台修改的。我估计三国也有,但这是内部机密,我就不得而知了。


也就是,我们如何通过在喊国家频道的时候,喊同屏呢?






我们不妨用a命令来代表同屏喊话。 也就是在喊话内容前面加一个" /a " (不用双引号)
三国的优先级是,
如果有a命令,那么选择的任何频道聊天都会失效,取而代之的是a命令对应的喊话。也就是同屏聊天

楼主 灭绝VR死亡  发布于 2020-04-06 21:55:00 +0800 CST  
今晚人好少哦,大家都自闭了嘛

楼主 灭绝VR死亡  发布于 2020-04-06 21:55:00 +0800 CST  
哈哈哈,各位同学久等了,我刚刚又双叒叕去写了个C++的简易版本。


亲测可用,代码如下:https://paste.ubuntu.com/p/ZppgSVpCbv/






楼主 灭绝VR死亡  发布于 2020-04-06 22:34:00 +0800 CST  
糟糕,我好像发现了一个bug,我的c++代码,不支持中文,有点gg

楼主 灭绝VR死亡  发布于 2020-04-06 22:40:00 +0800 CST  
我初步怀疑是,编码方式有点问题,具体的请下一位追梦人来解决这个bug啦(我没有时间了,不然今晚就更不完了)~~~~~~~~~~~~

楼主 灭绝VR死亡  发布于 2020-04-06 22:46:00 +0800 CST  

楼主:灭绝VR死亡

字数:8042

发表时间:2020-04-05 17:24:00 +0800 CST

更新时间:2021-01-08 05:23:55 +0800 CST

评论数:437条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看