这一期来给大家分享一下如何使用 python 来监听键盘的按键。我们使用到的第三方库是 p y n p u t。 老规矩,我们修派五 mini 将它安装好,然后从中导入 keyboard 这个模块。首先我们要准备好两个回调函数, 一个是 on press, 这个里面我们要写上摁下摁键时执行的代码。这四行代码其实就是打印出我摁了哪个键。之所以使用 try 呢,是因为当我们摁下键盘上的空格键,回车键这种键的时候,我们需要使用 key name 来获得到这个摁键的名称, 他的按键我们就直接使用 k 点叉就能获取到。第二个函数是 on release, 这个函数里面我们要写上松开这个按键时执行的代码。同样前面四行我也是打印了哪个按键被松开了,然后接下来两行呢? 是当按键如果按的是这个 e, s, c 的话,我就 return force。 如果当这两个回调函数中任意一个函数 成了 force, 那么整个监听进程就会结束。最后我们使用 keyboard 点 listener, 将这两个回调函数传给这里面的两个参数名字是一样的,开启一个 listen 绘画,然后我们再用 listen 绘画的照影方法开启整个绘画即可。接下来给大家演示一下。我们先把整个程序跑起来,然后我准备了一个空白的文档, 我在这里面随便按键,然后这个控制台就会打出哪个键被按下,哪个键被松开, 然后我按下 esc, 整个进程就会结束。
粉丝1.8万获赞35.9万

好,现在讲第五按钮点击事件。呃,按钮啊,其实呢就是被点解的,否则要按钮有什么用呢? 那么在程序中怎么实现?它就是在那这个衣服的后面加上衣服,你用它等于确认这个按钮是确认按钮。那么这个时候 就来一个我们本弹窗执行确认任务。 再加一个,如果因为他等于取消这个按钮,那么我们本店 全款是执行取消任务。这里大家要注意一点, 确认和学校的按钮,他实际的作用肯定不是弹出一个文本的弹窗, 而是去执行呢其他的任务和取消什么。那么这里其实也就告诉我们 按钮可以产生时间。当你弹吉他的时候, 就是用一句话应付英文等于确认。后面这一句话才是他真正的去执行的什么任务。 在实际的这个程序中,他不会是这样一句话的,他肯定是可能去执行什么某一段计算,或者是执行某一段其他的什么程序。 但是呢,这里他就叫了我们这个陈书店的写法以及呢思路。下面呢我们看一看, 在这个衣服后面加上了衣服。一问他等于确认 文本。谈创时执行确认任务。学校也是这样的, 我们运行一下看 确认按钮,我点一下那弹窗是执行确认任务。 ok, 点一下取消这个按钮, 我们谈创是执行取消任务。好,我们在这里加一句话,加一个我们就是我们执行确认任务。我们看一看是不是有改变, 打开确认啊,我们执行确认任务。好,今天我们就讲这一点,谢谢。

大家好,我是德胜刘,今天给大家分享一下如何使用拍摄开发小游戏。这是第二讲, 这一讲的内容是如何使用借牌控制这个人物对象移动。上一讲我们把那个小猫的图片换成马里奥的,然后我们就改了这个, 因为 py game, 然后以妹子露的,然后换成马里奥的照片,然后我让他运行一下, 那他就开始移动了,移动到右边,然后他方向换,换了之后他又开始移动,这样一直绕圈圈, 我们看一下带吗?他在这控制他的方向,如果到了右边, 他就改变他的方向往下走。然后我们今天要增加一个键盘世界,我们看一下这个, 你看我按了下左,然后他就往左一动,我按了右,他就往右,往下他就往下,然后往左,他就往左,然后我再往右,我按了下右姐,他就往右,这样我们就能控制马里奥这个移动的方向, 然后再这样上下左右控制的话,就感觉有点弹出舌的意思了,这个就是他受了一个接盘直接的控制, 让我们看一下。哎,我们直接在直接在这改吧。 嗯,这块不需要,然后我们要在这增加一个世界,然后我们要判断这个世界 类型日不适。键盘按下, 如果是的话,我们再我们再判断这个他的 k 是什么,如果他是 k 向上,那么我们修改一下他的那个方向,嗯, direction, direction 就等于二, 然后同样我们修,我们把比他的基础也写上,然后这我们就不要让他根据是否都是否到边界来修给他们方向,方向是由我们通过键盘制定的, 我们把它都删了,然后看一下效果, 哎,我按了个左,然后这就 crush, 他说 kf 为第一,我们再看一下 这个 app 之间是怎么写的,哎,不对啊,它是英文的, k 等于 k ride k 单 让我们月薪一下,我按了个右,可以往右,我按了个左,往,我按了个向,这样子, 然后我按了个沙特就往上走,但是这个我明显他没有边界控制,所以他一直走走走,走到这个窗口外面去了,这样呢他就可以受到键盘控制了。 那我们可以稍微修改一下,让他,让他在这个走到那个上坡边缘的话,比如不要让他再往后走了, 那么在这我们修改他的 x 方向的坐标的时候,位置的时候,我们要加个条件, x 是从左往右走,那么 当这个我们只有让他小鱼这个边框的时候,他在往后走,往右走,那么我们在这设置成, 设置成六百二十,六百七十, 因为这个 啊,这个图片的宽是一百二十,高是一百四十,然后下我们也,我们也给他再加上 大于四百六十,然后这边左边的话,我们让啊大于十的时候, 然后一直往上走,然后再加一个叠接空,不要让他掏出,嗯,掏出我们的窗口,然后我们再试一下, 我往上,然后他到了边界,然后不往上,我往下,然后他到了边界也不往下,然后我往右边,他到了右边界,往左,到了左边界, 我们可以用键盘控制他,那么我们要让他 按一下,他走一下,而不是他自动的走,那么应该怎么搞呢?啊?这我们就不要搞这个方向了,我们直接把 他响应的这个处理放到这,我们不要响应这个键盘世界的时候,如果按了上,我们就 小心上的时间显示上的话就是让这个歪坐标,歪坐标沿,我们就把它移到这,然后同时我们再加上这个边界控制,就把上面的移下来就可以, 那这一颗代码我们就可以删掉, 保存一下,然后用心,然后我按下,我按下他往前挪十个,我按右他就往右边挪一个, 他这个只能响应一个世界,就是我按下的那一瞬间让他会 响应这个事件,然后往下挪,但是如果我长按的话,就是另外一个事件就得单独做处理,所以我只能按一下 他,他移动一下,按下移动一下,然后我按上他往上走,我按下他往下走,往往左往左,他往左走,然后我一直按下按到下边键,他可是不动了,然后我按左按,这样马里奥我们就可以通过上下左右键,然后控制他的移动, 后面我们会再去设计让他跳起来,我们看一下这个效果, 我按了一个上啊,他开始跳,他跳的时候同时我给他加了一个水平方向的一个速度,所以他可以他跳起来是这样 一个弧形的,这个啊,我们下一家讲这个。好,今天的分享到这就结束了,谢谢大家。

今天教大家如何使用拍摄来监听鼠标和键盘的输入。 我们这里用了应用了一个拍摄的包,叫做 py and port, 这应用到了里面的两个对象,一个是 k boar 的,一个是 mouse。 我们先看如何监听键盘输入,并把输入的键录的那个键的字打出来。 所以第一个方法 监听 on press 的输入按键盘按键的方法,然后这里使用 k border 的 listen 方法监听到 on press 这个事件指向的这个方法,然后它有一个参数,参数顺应输入键的对, 然后我们这里用脚印等待他的输出。好,接下来我们看一下鼠标的监听事件, 鼠标这里用了冒死对象, 我们这里监听到了鼠标的一个昂克力克事件,昂克力克他有一个 x y, 一个 button 和一个 pressed button, 就是监听到的你当前的这个事件的对象。 如果巴特等于你,貌似里面巴特的相当于是点击左鼠标的左键等于 rat, 点击右键 钥匙就是其他的点击,这里和键盘接听一样,也是 mose。


你喜欢用左右键还是 ad 键来控制角色左右移动呢?在这个视频中,我将跟大家一起编程,从零开始用拍粉做一个飞机大赞, 没有变成基础的伙伴,建议先点赞收藏,从主页找一个感兴趣的 spr 的项目来练习。我发布的 spr 中高级教程已经有数万学生在学习了,虽然教程难度比较大,但是含金量也比较高。很多小伙伴 通过跟学这些教程,在提高编程能力的同时,也在当地编程比赛中获得了奖项。掌握 spratch 之后再来进行拍摄项目的实战会更合适。 当然这个飞机大战难度不大,高年级的同学也可以直接大胆尝试,遇到问题多多思考。上一集我们实现了角色的自动移动,本集我们来实现通过键盘控制决策移动画 多说开始编程。首先打开我们上一次的文件,我们找到控制移动的地方,在啊不对的函数里面,我们有一个 自动修改 x 坐标的代码,我们呢要把这个地方改成去判断他按下了哪一个键,从而决定是 x 增加,孩子减少。所以这个之前我们加一个获取按键的一个功能。首先定一个函数叫 k process, 意思是把一个键按下去了, 怎么得到呢?在 py game 里面有一个 t 点 get pressed 好,这个函数呢,会返回给我们所有键盘的按键的一个情况,如果每一个键按下去了,在列表里面就是处,没按下的话就是。 所以呢,我们就可以把它取出来看一看这个数据里面我们想要检测的这个右键 t 下滑线 right 好,是不是有,如果有的话,这样取出来的话是 boss, 那这个衣服判断呢就会成立,成立的话我们就在他的成立代码里面写上一个 x 坐标的变化,这个呢可以 放到上面来,那如果我们检测到的是左键被按下了,我们就把它减少就可以了,复制一下,这个呢改成 left, 这个地方改成 加等于负三,或者减等于三都行,改成减好,因为这个三呢是一个统一的速度,所以为了避免不一致的情 情况呢,我们直接在角色的属性里面给他先加上一个叫 self 点 speed x, 也就是他的 x 速度呢等于一个数字八,之后的话呢,你只要调节这个数字就可以了,我们这个地方直接用 speedx, speedx 这样的话不容易出现错误,我们来实验一下。 好,现在呢他没有自动移动了,我们按下左键,按下右键,而且是没有问题的,对吧?但是呢我们发现他有这个穿墙的效果,对不对?另外呢就是我们这个飞机呢太靠上了, 并且一开始的时候呢,他并不是一定会在下方,那我们把这两个小问题呢给他优化一下。首先来解决这个定位的问题,让这个飞机一出来的时候呢,在舞台的下方,我们 回到定位的这个地方之前我们用的是森特这个属性,直接把它设定成了,嗯,舞台的中间,那为了实现它 x 坐标在中间, y 坐标在下方的这样一个操作呢,我们要把这分开, 我们这个生产呢加一个 x, 这样的话就会只设定他的 x 坐标,我们把它设定成宽度的二分之一,然后这个 y 坐标呢,我们可以用生产歪去设定,也可以用另外一个方法,我们直接设定 这个长方形的底部,他底部的坐标,他底部的坐标是多少呢?我们知道我们整个舞台的高度是存在这个变量里面的,对吧? 我把这个高度减去十好,那是不是就意味着这个长方形它的底部距离我们的窗口有多少啊?这样的话会更精准啊, 我想让他离底部有多远,只要改这个数字就可以了,我们来试验一下,好,到这了对不对?假如说我觉得十太靠下了,我就可以把这个十调整成二十,来试验一下 他往上走了一点点,对不对?好?大家根据自己的喜好呢,来调节一下这个高度。接下来还有一个穿墙的问题对不对?穿墙的问题怎么解决呢?我们还是呢去判断一下他左右两边的这个位置,让他不能够穿过左边,也不能够穿过右边。 我们到阿巴队的这个地方之前,我们有一个如果这个飞机的左边大于宽度的话,是不是让他重新到舞台的最左边了呀?这是这段代码的作用,我们不想让他穿过去怎么办呢?我就判断一下这个飞机也就是这个长方形的右边缘, 这个右边缘如果大于宽度了,我就直接让他固定在这个位置不动了,所以呢就把他的这个坐标呢设定成这个宽度,这样的话他就不会穿过去了。那同样的对于左边我们怎么来控制呢?我们复制一下, 把它改成它的左边,如果我发现它的左边小雨零了,我就把它设定成零,比如说它想变成负一,不可能立马就把它变成了零,也就是说它不能往左再走了。我们来试验一下往右走, 咦,他怎么消失了呢?出现问题之后呢,我们回到我们的代码里面,再仔细看一下,当他的右边大于宽度的时候,我把他的右边呢设定成宽度,啊,这个地方不应该是 x 啊,应该是右边等于宽度,那这个 left 同样的问题我们提前预料到了,我们就给他改掉。再次试验一下,往右边走好,走不动,大家能听到我在按键盘的声音,走不动,往左 好,也是走不动的。好的,这一集的视频就先到这里了,我们实现了按键控制飞机左右移动,并且呢限制了不能突破边缘的这样一个功能。 下一集我们来实现陨石掉落的效果。如果你有什么问题或者好的建议的话,欢迎在评论区里留言,记得点赞收藏, goodbye, 下期见!

大家好,之前给大家介绍过一个框架叫拍奥特柜,可以做一些呃图形界面的键盘鼠标操作。今天给大家介绍一个新的框架叫拍, 我们使用可以本音自动安装,它可以做一些鼠标和键盘的一些控制。那今天呢,我们用它来做一个键盘记录器,就是我们记录 在某一个时段内,那用户键盘上敲的哪些按键,单做鼠标操作记录也是可以的,那或者是控制鼠标键盘也是可以的。 今天我们会用到里边的一些组件,是来自于拍 apple 点 kbod 的美美空间,下边我们导入 k 以及 nice 监听器。那做一个键盘的鉴定器呢?非常简单,我们使用刚才导入的 nins 的这个类,然后把这个位置的一个上下纹里边 构造的时候呢,传两个,那至少要传一个就是回调函数,一个是当按键按下的时候叫 oppos, 我们只向一个名叫 opple s 的函数,当释放的时候,我们只向一个叫 orry ex 的函数,但那个函数还没写。像刚才的这个监听器呢,放在一个变量离损小写的里边, 然后只要写 miss 教你就可以了。然后接下来呢,我们把两个挥掉函数,把它定义出来,一个叫 opple s, 就是当我们按一下某一个按键的时候执行这个 k 呢,就是你按一下的那个按键。好,那释放的时候呢,我们写 orenes, 那接下来的话,我们来看一下里边的代码。当按下某一个键的时候呢,我们现在目前做一个简单的操作,就是把这个键呢打印在控制台上,那我们直接打印,然后通过格式化四部串说某一个键被按下了。 好,到底哪个键呢?就把刚才那个 k 传到里边。好,这里边用了格式化字不串。那三点六之后呢?我们直接加个 f, 后边直接写上我们要展示的变量 k 就可以了。 好,要释放的操作是什么呢?就是当你按下的某一个键,注意是等于键盘上的 esc 的时候,我们就终止当前的程序。就是当这个键 是等于当前键盘上的 esc 的时候,就返回 boss, 就可以终止我们当前的程序。那作为演示呢?我们打开一个记事本,那我们在记 本里边打某些字的时候,再走到程序里边,就记录下来刚才哪些按键被按下去了。好,这非常简单。当然呢,不仅仅是在积蓄本,在任何地方,在操作这个电脑的过程中,每个键都会被记录下来, 如果你认为只是在控制台上打印按一下的键呢,意义不大,其实也可以把它写入到某一个日志文件里边。 好,那我们这边准备好的有一个案例,我们看一下在当前目录下之前写好的一个叫 klog 点派的一个脚本,就是将我们的按键操作呢记录的日制文件,目前桌面上是空的,说拍散帮我运行 klog 点派这个文件,他里边就开始记录我们键盘操作了。 这个时候不管是打开记事本或者别的界面操作按键的时候,他就会写入我们刚才按的按键的一些记录 到桌面的一个叫 log 点 tse 这个文件里边。比如说我在 vsco 的里边写字打字,他会把这个记录操作存起来,然后按 esc 的时候退出,按 enc 的时候呢,是中指刚才记录器的记录 好,然后我们试一下按一下 esc, 这时候程序已经终止运行了,我们打开桌面的落个点 tst 文件看一下, 我们可以看到他记录了我们的日期时间,精确的好秒。那你在键盘上做了什么样的操作? 好,这是我们写好的一个脚本,那我会提供给大家下载这里边的核心代码跟我们刚才看的那个视力里边是基本一致的。那重点就在于我们在干 刚才的回调函,说 oppos 里边呢,我们做了一个写不日志的操作,这里边我们用到了内置模块罗给你来帮我们完成的。 好,如果说你这个功能调试通过之后呢,我希望在某一台电脑上开机就能够运行的话,其实也可以。这个时候呢,我们找到本机 windows 里边的一个程序启动的那个目录, 在什么地方去找呢?我们就是在 windows 按一下 windows 加 r 运行,在这里输入泄啊冒号找到是加大的,这个时候他就会自动帮我们打开启动的目录,我们把刚才的那个 klog 点派这个脚本拖到这里面来,这样的话呢,电脑启动的时候他就开始帮我们记录, 但是目前我写的是退出的机制是当我们按下了 emc 键的时候,如果说你想修改, 你可以调整自己的代码,有需要的小伙伴可以关注我们的微信公众号,优特编程,然后回复关键字键盘记录,就可以下载我们刚才写好的 klog 点派这个原代码文件。

psn 是通过音铺的接收键盘的输入来看这行代码,请输入姓名,那我们就输曹孟德,按 a 的值就已经成功了,是不是非常简单。

你有没有想过将一些繁杂重复的工作整起来,让电脑自动帮你做一排 oto g u i 就能帮你实现。它可以将鼠标移动到屏幕的任意位置进行点击,输入屏幕左上角坐标是零,零 往右 x 内加,往下 y 内加。它还可以通过 look 的方法找到图片在屏幕上的元素位置。我们这里通过 look 的方法找到了解除按钮的位置,并且对于该位置进行了点击。如果你喜欢这个内容,请给我点赞加关注吧!

okay, 今天介绍一下这个简单的测试代码测试项目。首先我要讲一下我的,嗯,测试需求是什么?我的需求是 假,假如这里有一个按钮,我要点击他,他并且是每次出现我都要点击他一次, 每次这样点击点击他会就跳转到这个页面,这个这些我就不管了,我先完成这个一个小的项目啊,小的一个测试键, ok, 来看一看啊,一个代码的效果,我运行一下,给你们看一下,我的鼠标的还在这里看,我运行他就会帮我点 弄点,点击一下这个这个按钮,我要的就就这个小效果,已经达到了啊,他现在这里没有没有这个按钮了吧,所以他 他不帮我点击了,找到按钮,点击我返回,他会又又又会又会有那个按钮了吧大家,然后又会帮我点击,就是这样一直 我需要的就是这么一个简单的效果,我返回他也帮我点击,我返回我的鼠标还在这里,这里再返回,他也帮我点击一次啊,我要的就是一个这么一个简单的效果,这段代码, ok, 我会在想这个测试代码应该怎么写呢?我首先想到的 是啊,点击点击鼠标吗?点击按钮吗?不就鼠标移过去,然后点击它不就完成了吗?这么这么简单一件事情, 首先我想到的是,就就是就这么简单,开始想到就是很简单的,然后我就去网上找一个点击鼠标的代码,就直接在网上直接找就行了,找一个代码,嗯, 点击点击代码,直接拿这个代码来用就就可以了,再复制过来,然后在这里 就是这样一个方法,然后转就是两行代码,在其他代码其实可以不要的,不管他就这两行代码是重要的,设置鼠标的位置,直接给他一个 外组的位置,然后再再把鼠标点点下去弹上来。 ok, 就这么简单的两行代码给他一个位置,然后你调用的时候就要给他一个位置, s 轴, y 轴的位置,这 y 轴的位置怎么拿得到?直接我下载了一个工具,工具就可以 看到我鼠标所在的位置,看我指到这里大概是六二六到六十六左右吧。啊,这里我 嗯有一个保存有一个位置的信息,所以我现在直接运行一下,看看他有什么效果。我 点击一下运行,我鼠标还在这里来看一下。咦,他飞过去了哦,这个鼠标直接直接飞到这里,他帮我点击了哦,点击了,我看再再点,再试一次,嗯,还是可以。 嗯,还是可以,就直接帮我飞过去点到,好像这个方法也是可以哦,大家有没有想到这个方法会有没有什么问题呢?万一我把这个移动一下,你说他还会还能不能点得到呢? 嗯,好像这个飞过去就点不到了,又要又要把这个参数改掉才能点得到,但是这这样就显得很很麻烦了嘛,每次都要改,所以 这个方法在这个我这个测试里面不适用,所以淘汰,就这个方法 又会在想有什么方法可以,嗯,帮助到我呢。

学会这个拍放的代码悄悄监控。你朋友拿你电脑做过什么?看好了,桌面又齐新建文本文件输入这段代码, 双击打开,当别人动你电脑的时候,程序就会把它记录下来,哈哈哈哈哈哈哈。

哈喽,大家好啊,今天跟大家分享的拍摄功能呢,是关于拍摄在游戏这部分的制作,之前有朋有朋友呢问我说拍摄能不能做游戏啊,这对于强大万能的拍摄来说,答案当然是肯定的, 那今天跟大家分享一下,就是拍摄在做游戏过程中最基础也是最普遍用到的一个功能啊,就是让我们游戏中的角色跟随着我们的键盘啊,上下左上下左右,跟随着我们键盘自由的移动。那我们今天做的一个小案例呢,就是啊, 跟随键盘上下左右移动的一只鱼啊,我们先看一下这个,这是代码,那我们先看一下最终的成品是什么样的啊,大家能看这是一只鱼啊,这个这个小鱼其实最简单的,这有几个?有几个 游戏中角色,一个背景背景一片海洋,另外一个角色呢就是一张鱼的图片,那么你看我在这游戏中就实现最简单的,那这个鱼可以跟随我这个,我这边正在操作这个鼠标键盘啊,正在操作这个键盘哈,上下左右的这个任意的移动 啊,这就是游戏中啊最简单的一个键盘跟随啊这个动作,那具体怎么实现呢啊?我们看一看啊,这里主要用到的拍摄中游戏主要是用到的 pr 盖这个酷包啊, 那接下来的话,呃,这里呢是进行 p i g n i t 进行游戏的初始化,然后这边呢是设置游戏屏幕的一个长宽高,然后这个开不选呢?是开不选,设置我们游戏左上角的一个名称,然后呢我刚才说 这边我用到要导入游戏个背景图片吧,啊,这个背景图片要先准备好,把背景图片导入,然后我们还有一个游戏中还有一个对象,就是这个游泳的鱼,那同样我们也是把鱼的图片准备好啊, 啊,然后后面的话就进入一个这个整个程序这个循环,然后一直啊循环啊,循环过程中呢,我肯定要不断的监听吗?我要监听我们用户产生那个键盘鼠标的事件, 如果监听到是关闭的,这里监听到 q 关闭的,那我直接退出程序,如果监听到是键盘的按下的操作,就是这段按下的操作 啊,那我们就是吗?啊,我们这边对应的设置,我们移动方向移动啊,零点五零点五个的位置啊, k 二跑呢是检测到,是啊, 键盘的示范一旦释放就说明我们呢把我们的这个游戏的角色对象也就这个鱼,他的运动呢,停止,这边射为零,射为零啊,他就停止运动, 然后最后呢这一段是用来设置指定好我们这个游戏角色要在我们屏幕的范围内啊,这边做一个这个判断,不能超过屏幕范围,最后把我们游戏中所有的角色布里特这个显示在屏幕中,最后这个是阿布对的,迪斯布里的,阿布对呢进行是刷新屏幕的内容啊, 这就是啊,这个游戏就是这样的啊,我们看下执行,最后看一看就是这样的啊,希望,希望大家会喜欢,谢谢。

首先我们运行一下代码,运行开始后我们先测试 steam, 输入一个用户名, q w e r t i u i 然后为了方便演示,我们悄悄回车,然后再输入密码,一二三四 q w e 啊,没有问题。接着我们测试下 qq, 随便输入一个 qq 号,一一二二三三四四。 然后我们再随便输入一个密码, a s d f g h j k 好,没有问题,演示到这里,感谢您的观看。

啊,大家好,接下来我们来看一下关于鼠标的事件,我们之前知道了鼠标有移动以及按下和弹起这三种事件,那么我们要在什么地方来使用呢啊, 那么我们同时我们可以在这里在这个复循环里面也来进行使用,比如说 l e 事件,他的一个 type 类型,如果是等于拍 gm 的这个 mouse, 然后模型移动啊, 那么这个时候我们就打印一个什么东西呢?就打印这个事件的一个叫做 pos 的属性,那么这个 pos 属性它是一个 原主啊,里面存放的内容呢是一个 x 以 y 的坐标啊, 那么我们现在来运行一下,那么当我们鼠标移动的时候,就会不停的显示鼠标的这个位置啊,我们看一下 减运行好,然后移动鼠标,那么这个时候会在左下角里面一一直不停的滚动,显示我们鼠标所处在的位置啊, 那么这就是我们在鼠标移动的时候去读取事件的 pos 属性啊, pos 属性是指鼠标指针的位置,那还有一种呢,就是鼠标的这个 除了他的这个属性位置属性以外,那么还有一种我们看看叫做 r e l 啊,那么这一个也是一个原组数据, 但是呢他也他也是两个数啊, x 与 y, 但是呢这个是啊相对移动速度,相对移动增加速度啊,相对增加增加数值啊, 或者坐标吧,应该叫数值,那么我们现在再来演示一下,大家一看就知道了, 由于我们这个代码他在执行的时候,他并不是说很快啊,他还是有一个频率,也就说当我们鼠标移动的时候,他始终并不是一个 可以一个像素,一个像素增加,他会受限于我们这个代码运行的一个间隔速度,那你看像我们慢慢的移动的时候,向右移动的时候,那么他表示在 x 方向增加了一啊,在 y 轴增加了零, 那如果说我们是往下移动,那么 x 增加就是零, y 就是一,那如果说这个时候我们移动的很快,比如说忽然往右面一移,对吧? 那这个你看 x 还有七一这一样的数字,也是说在某个循环的这个间隙当中, x 方他的坐标轴 忽然增加了相对一个七的像素值啊,那这这就看我们鼠标移动的快与慢了啊,移动的快那么 数字就大,移动慢的话数字就小,那么这个呢,就是 eventy 的一个 r、 e、 l 属性,那么就是相当于我们呃相对增加的一个数值啊,这是他的坐标的一个属性, 那么我们对于这个移动的话应该就只有这两种啊, 那接下来我们再看一下,还有一种呢,是什么呢?就是啊,鼠标按下或者是弹起,我们先看一下这个鼠标按下啊, led, 如果事件的类型 等于拍 gm 点 mouse, 然后巴成档啊,就说如果发生了 是鼠标按下的这个属啊事件,那么这个时候我们其实对应的这个事件还是有多个属性,一是 pos 还是代表的这个属光标所处的这个位置啊, 还有一个呢是 event 点啊, button, 那么这个表示什么呢?表示我们按的是哪一个键啊? 那么这里我们先看一下,比如说 print, 我们先打印一下,如果在按下某个键的时候,我们就直行显示这个按键光标所在的位置,他的坐标呐, 同时我们也打印出对应的是按的哪个键,那么现在我们来执行,我们先把这个 这里去站,先注视点啊,不然的话按键以后他会出现多次按键。好,我们现在演示, 然后我们我先把这个移动移动性的鼠标显示的内容,我们也先把注视掉呐,只保留按键的时候出现的运行的代码。 好,那么我们现在看移动的时候,刚才那个移动代码就没有了,是吧?那如果说我们在这里点击左键, 那么这个时候他会显示出我们光标所处在的位置是五,是五零四九啊,同时显示了一个一,那我们一到这里按鼠标右键,那么我们发现除了 坐标值以外,又显示了一个三啊,也就代表着按左键是一,按右键是三,那我们一到这里按鼠标中键呢?一般都会,现在鼠标都有滚轮键啊,滚轮键我们也按一下,那么这个时候呃,会发现 会出现一个坐标以及数字二啊,数字二的话,那么代表的其实就是这个鼠标的中间,但是这个时候我们还有一个事情,我们移到这右上角,然后滚动鼠标中间, 那么这个时候我们发现啊,他出现的是一个数字五这么一种类型啊,也就意味着我们是五的话,那么是滚动键,如果按住这个中键 是二, 哎,我刚才看好像看到有个事啊,我不知道这个事是怎样产生的。好,那么我们这个地方对进行一下注视啊,那么这个地方 啊,一问他 pose 得到的是啊,当鼠标按键鼠标的键按下的时候,所处所处的 按下的时候啊,光标所处的坐标位置啊,那么下面的巴特啊代表的是什么呢啊?表示按下的是哪个键,那么对应的是一 是左键,二是中键,三是右键,然后五是滚动中键啊, 那么这就是这个鼠标呃,按下的时候一个次键啊,除了这个按下,那么我们对应的还有就是这个弹起,那么弹起的话其实跟这个按下是一样的啊,我们把它复制过来以后进行一下修改, 把最后这个档改为 app 啊,那么这些代码就只会在弹起的时候再执行,比如说我们现在来运行, 运行以后,那么我们 先按住鼠标左键,但是我们不松手啊,这个我们还能移动,移动一旦在这个地方松手好,那么他就能他才检测我们的这个相应的这个事件啊, 然后比如说我右键按了以后移动到其他地方再松啊,那么我们就能看到他会出现不同的这个 啊位置,那其实呢,这个 r 与档区别就在于这是一按下就检测,而这个是按下并弹起以后松掉以后才检测。拿 那么绝大多数呃,比,比如说我们玩游戏啊,一般是在鼠标某个键按下的时候,他就开始检测啊,不会在 在谈起的时候检测,但是这也不是绝对的,一般需要看场景,至于在什么情况下谈起检测,这个目前我并不太清楚啊啊,没有关注这方面的内容,但是啊,大家一定要知道他这个检测的时机是有不同的, 那么至于这些在检测对应这个事件,然后 可以读取相关的这个属性究竟来能拿来干嘛?那么我们可以在第四章的这个最后的一个例子当中来呃,了解啊,那么第四章它内容不足,我们现在介绍了这个键盘事件跟鼠标事件以后, 那么我们后面就要去介绍有一个小游戏啊。好,那么这一节内容呢?我们就先暂时啊分享到。

前面几节课介绍的都是 gpio 口输出的使用,本节课我们介绍 io 口作为输入的使用,并通过按键电路实现这个开关灯的效果。 按键他是一种电子开关,使用时轻轻按开关的按钮就可以让开关接通。手松开时,开关断开。按钮呢,他有两组引脚,也就是四个触点,当按下按钮时,他会连接两个触点, 一般来说四角开关相距比较远的是永远相通的,离得比较近的呢,就是一组开关。 我们来看一下这个按钮的内部连接图啊的这四个银角红色的是一二还有三四,即便你不按下按键,这一二和一二是相通的,三四也是相通的,但 你如果想要让一联通三或者四的话,或者让二联通三或者四的话,你就需要按下按键了,我们来看一下啊, 我们来看啊,这是咱们的这个按键,他们两个离得比较远,所以就是同侧,就算你这个按键不按下,他们两个也是相通的,而他们两个呢又是一组开关,这一组开关呢,只有你按下按键的时候他才会连通。 还有呢,就是这两个对角,他们是肯定能形成一组开关的。使用按键的时候,通常情况下我们都需要进行一个消抖,那什么是按键消抖呢? 因为咱们这个实验中用到的这个开关是一个机械弹性开关,咱们这个机械触点断开和闭合时,由于机 触点的弹性作用,一个按键开关呢,在闭合时他不会马上稳定的接通,在断开时呢,也不会一下子断开,因此在闭合还有断开的瞬间,都会伴随着一连串的抖动,为了不产生这个现象而做措施,就叫按键消抖。 按键的抖动呢,对人来说是感觉不到的,但对单片机完全可以感受的到,而且还是一个很漫长的过程,因为单片机的处理速度是在微秒级的,而按键的抖动呢,至少是毫秒级, 这是一次按键动作的电瓶波行,抖动时间呢是在十秒。由于单片机运行速度非常快,咱们刚按下这个按键的时候,检测到一个低电瓶,判断按键按下,但是呢,我们还没有按到底, 而且这个按键存在抖动,单片机在这个时候呢,也会检测到高电瓶,误以为你已经松开按键了,紧接着又检测到这个低电瓶,又是高电瓶,低高低高低高来回往复。 在这个十毫秒内呢,可能会出现很多次的按下动作,而且每次按下判断的次数也都不相同, 这种抖动可能会导致程序误判,造成严重的后果。一般我们采用两种方式对按键进行消抖, 一种就是硬件消走,硬件消走的电型做法呢是采用 rs 触发器和 rc 积分电路。 第二种呢,我们通常会采用一个软件延时来消抖,比如我们按一下按键后,先读取一下引脚状态,然后延时十毫秒,再读取一下引脚状态, 如果前后两次的电瓶一致的话,说明这个按键按下稳定了对不对?而硬件方法一般用在对硬件操作过程比较严格,而且按键数量较少的场合,所以通常情况下我们还是采用软件消抖。 了解完原理后,我们就可以来搭建我们的电路了,首先要用到一个 led, 一个电阻,一个按键,面包板和跳线,按照右边这个图搭建电路, led 用一个电阻连第二引脚和接地按键呢?连一个三点三伏的电源引脚和第十四引脚。 最后我们就可以写代码了,在这个地方我们需要使用到还是 p 模块,对不对?但是我们使用到 p 模块之前用的就是输出模式,现在我们就 就需要用到输入模式,和输出模式不一样的是,设置输入的时候,我们还需要配置一个上拉或者下拉电阻,目的呢是确定电路中的高低电瓶。上下拉电阻的作用呢,是提高电路的稳定性,避免引起误动作。 如果你不认识上拉电阻和下拉电阻,在这个阶段是无所谓的,你只需要了解他们的存在呢,是为了确定高低电瓶 选择上拉电阻啊。 gpl 银角就默认为高电瓶,那我们想要改变他的信号,就需要传入一个低电瓶,就接地 选择下拉电阻呢?这个 io 口默认就是低电瓶,那我们想要改变信号就需要传入一个高电瓶,也就接电源。在我们写代码之前,我们再回头看一下我们搭建的这个电路,那咱们同学们先想一下哈, 这里这个第十四引脚,也就是按键对应的 g p i o 引脚,咱们给它设置应该是上拉电阻还是下拉电阻, 应该是下了,因为另一端我们接的是电源,按默认是低电瓶,也就是零,那我们按下按键,他一连通就会给他一个高电瓶。 如果我这个按键的一角接的是接地的话,那另一端再接它,我们就要选择一个上拉电阻了,因为默认状态下他就是一个高电瓶,联通之后呢会给他一个低电瓶, 因此我们的代码呢,需要这么写,先导入模块 pro 的 time, 再 from machine import p。 然后呢我们要定义这个 g p l 引脚了,一个输入引脚就是个按键引脚,一个输出引脚要他 in 等于一个 pin 十四引角对不对?状态的话就是 pin 点 in 输入模式,再就是给他一个连到三点三伏,所以我们要给他一个这故事的是一个低电瓶,低电瓶的话就是接下拉电阻并点 pro 大, 接着定义这个 led 引角 并调 led, 它就等于一个频。第二定点 alt 输出模式, 接着我们就可以写我们的循环了,就 yo 处我们要判断一下啊,下拉电阻他默认是低电瓶,那如果检测到高电瓶,也就是一的时候,说明按键被按下了,对不对?所以我们第一次判断这个按键有没有被按下的时候,就是衣服 pin 点 等等一个一,接着呢,就是对按键进行一个消抖,按键按下之后呢,我就立刻进入一个十毫秒的一个延时,也就是 tam 点 sleep 毫秒,十毫秒,十毫秒。之后呢,我们再判断一下它的状态, 就 if 拼 button 点 value 等等于一,如果它依然是一的话,那这是不是就说明这个按键按下已经稳定了,对不对? 那是不是就说明我们已经销走完成了?所以这个时候呢,我们就可以改变一下 led 的状态了,之前我们讲过这个 tin 杠 led 点 value, 修改状态的话就是 note in 杠 led 点 value, 然后我们运行一下,咱们按一下这个按键,哎,我们来看一下哈,我们点击的时候,他好像并不是切换状态,对不对?这是为什么呢?我们先把这个时间拉到八十毫秒,重新运行看一下啊, 咱们看他现在一直在闪烁,对不对?这是什么原因呢?我们来盘一下这个逻辑代码,执行到永贞循环之后呢,就开始判断按键的状态了, 那如果按键是刚被按下的时候,就进入了这个消抖,先进行一个延时,然后延时结束呢,再进行一个判断这个按键状态,如果他依然是按下的状态,我们就改变这个 led 当前的一个电瓶,接着我们就进入了下一轮 的循环,就又来到这一行,你们看啊,我这个手是不是还没有松,所以我们依然进入了当前这个函数,然后就是又对按键进行了一次消抖,又延时了八十毫秒。接着我到这里呢,我手还是没有松开,他就再次翻转了这个 led 的一个状态, 也就是说如果我这个手一直按着不松开,那他就会一直不停的切换状态,但是我们想要的是什么结果呢?我们只需要检测到按键稳定的状态,然后切换一次就够了,对不对?所以呢,我们需要用一个变量来记录当前这个状态, 记录 led 是否被修改过的状态,那就叫 states 吧,等于零,零就是没有修改过,一就是修改过,把它写在这个 循环外面, led 的状态还没改变过,所以 status 的值呢是零。当这个按键按下之后呢,我们就是开始进入延时,延时结束之后继续判断按键状态,如果这时候我们依然判断到按键是按下状态的话, 我们不仅要修改一下这个 led 的状态,还要修改一下 status 的这个变量值,把它改成一,所以我们这个条件呢,也需要变一下,不能只判断这个输入音角的状态了, 还需要判断一下咱们这个 status 的状态,就是按的 status 的值,它是等于零,也就是之前 led 的状态并没有修改过,这是第一次修改,所以我们才进入这个状态,那我松手呢?松手的时候,那就是 l e f p 杠 b u t t n but 点 y 六等于零的时候,这说明我松手了对不对?松手的话,我们只需要把这个 state 改回零,等待我们下一次按下即可。我们重新运行下这个代码, 点击这个按键。哎,咱们看啊,现在咱们是不是就实现了这个开关灯的一个效果, 但是对于复杂并且多任务的单片机系统来说,如果简单地采用循环制令来实现软件延时,会非常占用这个 cpu 的资源,大大降低了系统的实时性。 所以呢,更好的做法是利用定时中断的方法来实现软件消走,这个我们后面会讲。

朋友们大家好,今天给大家带来一期黑客编程科普,主题为钩子注入与键盘记录器。开之前先声明,技术本分,不分善恶,请勿利用他行不法之事,请遵守国家法律,谢谢! 隐蔽运行代码的方式有很多种,主要为进程注入、进程替换、钩子注入、 apc 注入等等。本期的主题为钩子注入于了解进程注入,请参考本系列科普的第一期与第六期。 钩子注入的原理非常简单,它的 api 只有一个,名为 set window 后撇。它有四个参数,第一个代表钩子类型,第二个代表钩子函数的指针。 第三个代表钩子的 drl 巨柄,无需 drl 的情况下可以为空。第四个代表被安装钩子线程的 id, 若传入 id 为零,则为全局钩子,该钩子会勾取所有相关线程。下 代表展示了 window 系统的钩子类型。根据不同的需求,我们需要使用不同的钩子来完成任务。为了完成一个键盘记录程序,我们需要关注 whk 爆和 whk 爆杠 l 这两个类型的钩子。 其中 w k 爆的为上层钩子,其钩子函数的代码需要写在 d l 里,可以指定现成 id, 也可以是全局钩子。 当然,每一个被钩的进程都会加载 d i l 到自身的空间。 w h k 豹杠 l l 为底层钩子, 底层钩子触发早于上层钩子,可以勾取所有的按键信息,包括系统按键。钩子函数写在安装钩子的程序中,无需编写额外的 dl, 需将赛的 window 后 ks 参数中的 hmod 设为空,且参数抵达了 three, id 只能设为零,他只能是全局钩子。为了勾起 所有的按键消息,我们使用 w k 爆杠 l 这个底层钩子,且无需编写额外的 dl。 下面让我们具体看一个实力吧。本例代码十分简单,让我们快速的浏览一下。首先我们自定一个类 k log, 还有两个重要的方法,一个是隐操 hook, 一个是安隐操 hook。 引扫后我们使用的 api set window hope, 而引扫后我们使用的 api 按 hope window hog。 接下来我们看一下我们的勾子函数,我们勾子函数功能有两个,其一是获取焦点窗口的进程名,窗口名以及进程 id。 其二是将我们截获的键盘消息转换成可打印的文本消息以并输出。最后呢,我们再靠 neck hog 出发下一个 hog。 好,代码十分简单,让我们介绍到这里。运行代码,先测试 浏览器,在浏览器里面随便输入一些数字和字母,可以看到我们的进程名,窗口名以及我们刚刚的输入都获取到了。接下来我们输入密码,随便输入一些密码 可以看到也获取成功。接下来我们测试一下 steam, 在用户名上我们随便输入一些字母获取成功。在密码上我们输入一二三四 q w 感叹号也没有问题。好, 最后总结一下进攻技巧,逆向工程,分析出程序的保护措施,注入代码破坏其保护措施,或通过其他手段来干扰其保护措施。那防御技巧程序可以添加虚拟键盘,并建议用户使用虚拟键盘来完成密码输入。 若没有虚拟键盘时,作为用户呢,可以来回切换输入用户名与密码来人为的增加干扰,那程序呢?也可以升空随机的虚拟按键事件来迷惑钩子函数。好,本期视频就到这里,请点赞关注,谢谢您的观看,有缘再见!

好,今天我们来说一下最后一个,记住空间包臀按钮,按钮呢,可以,上面可以放上文本或者图像。按钮可以用于监听用户行为。 按钮能够,最重要是按钮能与一个拍摄的函数关联,当按钮被按下时,自动调用该函数。 用户跟界面主要的交互,一个是输入框划快,在某某种意义上也是你自己玩游戏除了发语音打字之外,不就是按钮按来按去。好,我们通过一个例子来练习一下按钮,来说一下按钮,按钮呢 的语法。一样的啊,跟那个 labor 啊, n 圈都是一样的啊,先新建一个按钮啊, 然后我们按钮上面的文字啊, tax, 默认来说,他会根据你的文字大小来改变他的按钮大小, 我是一个小艾,然后呢,我们给他一个东西,给他,给他一个什么,就比如说我们下面给一个内部啊,内部呢,我们也给他一个那个文字福串避难对象啊,当做他的内容 测试表情可以了啊。然后呢,按钮呢,我们首先说一个,嗯,我们来说几个, 我们来说几个他独有的属性。第一个呢是 state, 当然这个和 state 好像跟那个 n 球是一样的啊。状态一般有三种状态,默认为 normal, 那里面可以有图片 image。 当鼠标放上去的时候,这个按钮以后有一个前景色和背景色, active back, wrong 和 xe, 一个是按钮放上去的背景色,一个是按钮放上去的前景色。 好,如果我们说想要一个姨妹子呢,我们首先要有一个姨妹子对象,你对象呢?这背面有一个风头姨妹子啊,这,我们已经有一个,我放了一个图片放着啊像像一个这个地球一样 个萝卜平衡起来在这里呢指定这个图片 嗯就可以了啊运行一下但是这时候会发现什么问题呢原先这个我是一个小按钮这个东西没有了对吧。就这个图片呢就不能跟这个文字 并存如果说你想要图片跟文字并存呢你就必须让人再加一个属性叫康胖子。 康胖的有哪几个属性。就是说这两个图片在文字的什么地方啊。上下左右 your left top right bottom center。 啊比我们以这个 top 啊来试一下这个图片在上面文字在下面可以了啊我们来试下。心疼我看心疼会是什么样子 而我的中间会怎么样覆盖掉吗。对会覆盖。嗯对图片文字会在一起你会仔细去理解了。这个代表附加图片的位置啊。第一个 但这个我们就暂时需要啊我们继续往下研究啊。 state stead 等于 k 点 nomer 这个是默认的嘛咱们就应该是那样的我们来试一下这个题 活动会怎么样。应该也能用吧也能用 dc 包肯定不能用不能用的 dc 包肯定不能用。 好我们来设置一下 active background 按钮放上去的背景色设置为蓝色试一下按钮放上去的背景 没有反应哦 按下去了 这是按下去的颜色。应该说是按下去不应该是放上去啊那这是不是应该是按钮按下去的前景色按下去按下去 啊。把这个我们再设一个前景色 现在再说一个红色吧 一个是背景字一个是前景字哎是的啊对吧可以了然后按钮的 交互事件就是可以绑定一个函数,用 come 的 come 的来绑定一个函数,这要直写函数谜,这么之前先把函数写好,这个 f, 这个比如说踏棋,踏棋现在可以写到空运之家站位,站着 让别人 print 啊,一下,刚这个拿到这个东西 s, 这就是绑定一个很简单的事件啊,然后他也可以绑定一个字母函数。 好,除了这个之外呢, come on 的还可以念接一个人体民函数,人体民函数可以去传参数,也可以去做一些 比较。呃,就正常这个函数做不到的事啊,我们举个例子,怎么做呢?我们想要把它本身的这个按钮有一个需求,叫做把本身按钮上这个 taste text 了,可以打印出来后传出去。首先呢,我们给他一个,先给个变量吧,假设有个变量变量叫做真人 tex 啊,我们就等于这个,我是一个小按钮,现在他这个参数,他这个,他这个变量嘛,我们把这个变量给他传出去啊。首先呢,我们得到这个太克斯肯定是用这个变量啊,扛不了,这,这个可以写,扛不了,那么那么的那么的 t t 等于六个 btn test。 然后干嘛呢?首先要如果简单一点,不用追这个,直接在这就可以, 这个气就可以了,试一下啊,我这个小按钮按一下,我可以打印出来,对吧?那有人说我们兰博的不这样,可不可以?我直接兰博的冒冒号,然后不认得就提升 tex, 可不可以?那你可以试一下,对吧? 当然也可能也是可以的,但是我不是很坚强,你要在外面给他包装一下 这第一种,第二种把这个参数给传出去,传出去也简单,就这种塔子,这种塔子来传,这上面有一个东西啊,我们把这个结果是 今天,我是啊,加上一个穿过这个 n, 你可以试一下啊, 结果说我是个小按钮,这,这也是一个比较常见的就通过匿名函数来传餐的一种方式。

各位大朋友们,小朋友们大家好,欢迎来到耳朵少儿编程,我是耳朵老师,今天我们来讲一下 python, 我们今天讲 python 的第一课,我们首先来认识一下我们的键盘, 那在我们 python 学习的过程中呢,全部使用的都是英文状态下来进行书写。我们现在打开虚拟键盘, 会发现每个人的键盘其实长得就差不多是这个样子的。那我们第一步首先要切换一下我们的中英文。第一步,首先我们要切换 看一下我的中英文,我现在输入的是我的中文,那怎么去切换我的英文呢?我要在键盘上找到 shift 这样的一个键,按一下之后我再输入 中国,它就会变成英文状态下。但是有些同学呢,可能是台式电脑,台式电脑的话一般是需要按住输入 ctrl 加 shift 这样的组合来切换一下我们中英文。好,这是第一种, 这个是我们的第一种。第二种呢,我们怎么去使用回车和删除键随意打出一行字,我现在在 学习 pass, 这现在是我随意打的一行字,我想删掉 pass 呢,我直接可以在我的键盘上找到这样的删除键,依次按下,它会从后到前依次删除。 如果我的光标在中间的位置,我想要删除光标后面的字,那我就需要按住 delete, 它会使文字从光标后面依次进行删除。我现在一行写满了之后呢,我想要按住半行,那我就需要按住我的回车,也就是我的 inter 键,它会进行半行。 接下来我们来讲一下特殊按键能被我们 shift 所引入帮助呢,是我现在画的这些内容, 我们可以依次来试一下。按住,想要找到这个叹号,按住 shift 一叹号, shift 二小老鼠, shift 三井号, shift 四金钱符号, shift 五百分号, shift 六, shift 七, shift 八, shift 九, shift 零, shift 横杠, shift 加号、 shift 大于号、 shift 大括号、 shift 小括号、 shift 路线、 shift 冒号、 shift 通引号、 shift 书名号、 shift 右书名号, shift 问号这些所 这些。一个键盘上面有两种含义的,想要使用上方这些,我们就需要按住 shift 来进行引入帮助,那如果我单纯的想使用一二三四这样的数字呢,我们就直接进行输入就可以,不按住 shift 我们直接来进行输入就可以了。 第四个我们来讲一下我们的切换中英文大小。按住我们的 caps 键,它会切换我们的 大写,再按一下 camps 键呢,它会换成我们的英文小写。 我现在按一下 caps, w, k, e, r, 再按一下 caps, 它又会回到中文,再按一下 shift, 它会切换到英文小写, 应该就没了吧。 好的,对于我们键盘的使用呢,今天就简单的先讲这些,后面我们想要使用其他内容的话,老师会 在学习的过程中给同学们再详细讲解。想要今天文件的同学呢,可以去老师的公众号搜索耳朵的少儿编程小课堂获取今天的 文件哦,如果对你有帮助的话,可以点一个小小的赞哦,拜拜!

上一期介绍了使用 pynpot 来监听键盘按键,这一期依然使用这个库来监听一下鼠标事件。首先我们要准备三个回料函数, 第一个是 on mo, 这里面要写上当鼠标移动时执行的代码,这里面我就 parent 了鼠标移动的位置。第二个是 onclick, 这里面就要写上当你点击鼠标左键中间右键时会执行的代码。首先我对他进行了一个判断,只用包腾点内幕 来判断是点击了鼠标的哪一个键,然后我打印出了是在哪个位置点击了鼠标的什么按键,然后我设置了在点击鼠标中键的时候就结束整个监听进程。上一期介绍的一样,为料函数中只要 reto force, 那么整个进程就会结束。第三个毁掉函数是 on scroll 是鼠标的滚轮,这里有 dxdy, 但是我们一般只是会用到 dy 判 段鼠标滚轮是往上滚还是往下滚。最后再用 pynput 点 mos, 点 listner, 开启一个鼠标鉴定绘画,然后再将上面的回调函数传给里面的参数名称也是一样的。最后用 listner 点咒音开启整个鉴定绘画即可。我们直接让一下吧 移动鼠标,他会实时监听,点击鼠标左键,点击鼠标右键, 然后往上滚动,往下滚动,然后点击中间就结束进程了。

我们要用键盘的上下左右键来控制飞行员的移动。在 pid 内中需要写一个木函数,我先写代码, 这一行代码返回的是由坐值组成的列表,进入了键盘上所有的按键情况。 如果按下了键盘的上箭头,飞行员就像上移动二十个像素。如果按下了键盘的下箭头,飞行员就像下移动二十个像素。 红领按下了键盘的左箭头和右箭头,飞行员分别向左和向右移动二十个像素。最后在阿布丁的函数里面吊用。是要不点木函数,我们运行代码看下效果。