精华内容
下载资源
问答
  • 网页自动点击脚本

    2019-07-05 13:12:25
    可以任意设定未来开始执行时间点和重复执行的时间间隔,此demo有直播点赞飘心的动画来演示效果。
  • 用pySimpleGUI写一个自动点击脚本

    千次阅读 2019-11-07 16:11:41
    用pySimpleGUI写一个自动点击脚本写在前面运行思路编写说明pySimpleGUI界面设计坐标点选中开始、暂停运行鼠标点击自动关机运行效果参考 写在前面 发现在玩游戏或者使用电脑期间,有时候会存在重复性比较高的操作,...

    写在前面

    发现在玩游戏或者使用电脑期间,有时候会存在重复性比较高的操作,于是想写一个Python脚本来写一个自动点击的脚本

    运行思路

    每隔1s检测一次选定坐标点的坐标,当检测坐标的的像素与选定时的相同,则将光标移动到该坐标点并点击一次.

    编写说明

    pySimpleGUI界面设计

    由于只是举例设计,所以只设计了两个鼠标点击点,需要的话可以再加

    layout = [  [sg.Button('开始/暂停',key='start',size=(9,1)),sg.Button('使用说明',key='use_ins',size=(9,1)),sg.Button('更新日志',key='upd_log',size=(9,1)),sg.Quit('退出',key='Quit',size=(9,1))],
                [sg.Text('当前状态:'),sg.Text('', key='notice', size=(14, 1))],
                [sg.Text('运行时长:'), sg.Text('', key='runtime', size=(6, 1)), sg.Text('设置时长:'), sg.Input(60, key='time_set', size=(5, 1)),sg.Button('自动关机',key='sys_shutdown',size=(9,1))],
                [sg.Text('开始:',size=(6, 1)), sg.Text('', key='st_xy',size=(10, 1)), sg.Text('', key='st_RGB', size=(12, 1)), sg.Button('两秒后检测', key='st_detect',size=(9,1))],
                [sg.Text('结束:', size=(6, 1)), sg.Text('', key='end_xy', size=(10, 1)), sg.Text('', key='end_RGB', size=(12, 1)), sg.Button('两秒后检测', key='end_detect',size=(9,1))]
            ]
    window = sg.Window('自动点击', layout, font='微软雅黑')
    

    运行界面如下所示在这里插入图片描述
    使用方法很简单,就是通过《两秒后检测》按钮选定两个坐标点,然后设置运行时长(默认60s,输入整数),点击《开始/暂停》按钮,运行过程中可以随时更改开始坐标点和结束坐标点,更改设置运行时长,之后我又加了自动关机功能,用于人不在的时候,到了运行时长就自动关机。

    坐标点选中

        if event == 'st_detect':
            time.sleep(2)
            st_x, st_y = pyautogui.position()
            st_xy = [st_x, st_y]
            im = pyautogui.screenshot()
            st_RGB = im.getpixel((int(st_x), int(st_y)))
            window.Element('st_xy').Update(st_xy)
            window.Element('st_RGB').Update(st_RGB)
        if event == 'end_detect':
            time.sleep(2)
            end_x, end_y = pyautogui.position()		#获取坐标
            end_xy = [end_x, end_y]
            im = pyautogui.screenshot()		#获取屏幕信息
            end_RGB = im.getpixel((int(end_x), int(end_y)))
            window.Element('end_xy').Update(end_xy)		#更新GUI信息
            window.Element('end_RGB').Update(end_RGB)
    

    两段代码原理一样所以就一起说了
    在GUI中点击相应的按钮之后,触发事件,在使用time.sleep(2),等待两秒后用pyautogui.position()检测光标坐标

    开始、暂停运行

        time_set = int(values['time_set'])	#时间设定值从GUI获取
        if event == 'start':
            timer_running = not timer_running
        if timer_running and runtime <= time_set:
            time.sleep(0.1)
            curr_time = datetime.datetime.now() #获取系统时间
            window.Element('runtime').Update(runtime)
            if runtime1 != int(curr_time.second):	#runtime作为运行时间,通过系统时间确保准确性
                runtime += 1
                runtime2 += 1
                runtime1 = int(curr_time.second)
            if runtime2 == 1:					#每隔1s检测一次
                window.Element('notice').Update('检测坐标信息中')
                mouse_click(st_x, st_y, st_RGB)			#调用光标信息检测点击
                mouse_click(end_x, end_y, end_RGB)
                runtime2 = 0
        elif not timer_running:
            window.element('notice').update('暂停中')
        else:
            window.element('notice').update('达到设定时间')
            if shut_down:
                os.system('shutdown -s -f -t 59')			#到时间自动关机
    

    鼠标点击

    def mouse_click(x, y, RGB):
        im = pyautogui.screenshot()
        imGRB = im.getpixel((int(x), int(y)))
        if RGB == imGRB:			#对应坐标RGB相同时点击左键,更新GUI显示
            window.Element('notice').Update('检测到匹配坐标')
            pyautogui.click(x, y, button='left', )
    

    自动关机

        if event == 'sys_shutdown':
            shut_down = not shut_down
            if shut_down:
                window.element('notice').update('到点自动关机')
            else:
                window.element('notice').update('取消自动关机')
    

    运行效果

    在这里插入图片描述
    对程序稍微更改一下,就可以在游戏中使用了,手机游戏的话注意在模拟器里运行,程序文件在下边的链接
    链接:百度网盘地址
    提取码:kjer

    参考

    [1] https://pysimplegui.readthedocs.io/en/latest/cookbook/
    [2] https://www.jb51.net/article/146786.htm

    展开全文
  • 灯会游戏的一次自动点击脚本编写历程总结 (本次总结仅为学习分享) 前因: 某游戏开展了一个灯会游戏的活动,一开始也没在意,没怎么参加,然后突然有一天有点感兴趣,自己点了点,太难了。。。,过不了第5关。。。...

    灯会游戏自动点击脚本编写历程总结

    (本次总结仅为学习总结分享)

    前因:

    某游戏开展了一个灯会游戏的活动,一开始也没在意,没怎么参加,然后突然有一天有点感兴趣,自己点了点,太难了。。。,过不了第5关。。。

    灯会游戏介绍:

    这个灯会游戏就是“开灯游戏”等,可以百度这个词,可以发现是一个很古老的经典的游戏,
    举例:在一个5X5的方格,每个方格存在一个灯,灯的状态只有两种,点亮或未点亮,在游戏初会随机有部分灯处于点亮状态,假如对一个灯进行点击,则灯本身,及灯四周(上、下、左、右)的灯的状态都会发生变化,变化规则:亮的灯变成不亮,而不亮的灯会变亮。过关条件则是所有灯处于点亮状态。同时该游戏有计分机制,每点亮一展灯就积一分,并且有时间限制,大概在80S左右,因为前几关过关后会加时。

    历程一

    看了下排行榜,前十,大部分处于300多积分,前三名可能有400分,最高看到一次500分(特别佩服,真的大神,本人自己点只能点100多)。一想肯定有技巧,于是百度找攻略,果然最常见最简单的一种技巧,描述如下(以5X5方格的情况讲述):首先从第一行开始,如果该行有未点亮的灯,则点击该灯正下方一格,这样就能点亮第一行灯的同时,又不会影响第二行其他的灯,如此重复点亮第一行所有的灯,然后是第二行,第三行,直到点亮前4行,这样只剩下最后一行有可能存在未点亮的灯(运气好的话可能刚好点亮第4行的同时,也点亮第5行),然后根据最后一行点亮灯的分布情况,寻找解法,最常见的7种情况是能够在网上找到方案解决的。所以按上面的方子可以解决大部分5x5方格的点灯。也是这里开始想,完全可以写一个脚本,来辨别最后一行灯的情况,然后根据情况选择相应的方案进行自动点击,这样就不用人工记了,想着想着可行,就开始做了。
    思路如下:因为要判断灯的状态,截图肯定少不了,然后直接取5X5也就是总共25个方格,每个方格选取一个坐标点(可以通过画图确认坐标位置),因为灯点亮与暗的颜色差异较大,可以直接通过分析坐标点所在的像素值进行灯状态的判断。
    截图方案有4种:
    1、直接全屏截图
    2、刚好截整个灯会游戏的图(这样性能稍微上相对于第一种肯定要更好点)
    3、分析哪一行灯就截取哪一行的图
    4、因为只需要确认坐标点所在的像素值,所以也可以截宽度为1像素的图
    最终选择了第2种方案,因为处理的比较快,不用太优化,第2种也比较方便简单些。
    于是又想,为何不把先前逐行点灯的操作,也顺便写了,大部分代码在先前就写好了,于是就开始写了,这里需要注意的是因为在为了点击第一行的灯的时候,我们在对第二行的灯进行操作,于是会影响第二行的灯状态发生变化,所以当我们要将第二行灯点亮的时候,就需要重新截图,重新判断第二行所需要点亮的灯。

    验证脚本效果的时候到了

    在一段时间的排查后,确认逻辑上没有问题,于是准备开始实验测试了,于是打开游戏开始运行脚本,结果发现每次点击都没有点到预想的位置上,是哪里出问题了?似乎好像以前也有过这种问题,于是把图调出来放画板里再次确认坐标的问题。发现坐标没有问题。也排查了脚本,没有问题,于是开始百度大法。一查,原来坐标的确是跟分辨率有关,但是当我们打开程序的时候,程序可能是缩放状态打开的,什么意思呢,以WIN10为列,右键桌面->显示设置

    在里插入图片描述
    只有100%的时候,应用的分辨率才是我们设置的那个分辨率。

    于是我把缩放设置成了100%后,再开始运行脚本,nice,符合预期,但也发现问题,点击太慢了(因为有限点击限速,大概点击间隔在0.36s比较稳定),这样也导致虽然脚本能够正常点击通关,但是点击太慢,导致最终得分不高,大概是200到250左右。这样的脚本太弱了,于是就优化吧,时间上的优化,因为要等待点击间隔,以及画面刷新间隔时间,所以对这部分时间再进行了测试,尽量减小。但最终效果不明显。也试过手动逐行点击至最后一行,再开启脚本进行自动点击,但还是差不多,毕竟自己菜,跟自动点的没啥区别,还可能更慢。。。

    历程二

    思考整个脚本过慢的原因就在于,点击步数过多,而点击间隔也需要0.36S,如果我们能减小步数的话,换言之用更少的步数进行求解,那么能大大减少点击时间,又想如果根据一开始根据游戏中亮灯的分布情况,就能够得知解题方案,那么不但步数少了,而且只需要等待一次游戏画面的刷新(之前需要5次),这样一算下来,过一关的时间上能节省4S左右。
    但是最大的问题就是如何根据游戏中亮灯的分布情况,从而判断答案
    经过思考,有两种方案:
    1、设计出求解算法
    2、进行方案收集,即对每一种亮灯分布的情况进行收集,并找出答案。(划重点:1、因为对于一个灯,点击该灯时,只会影响该灯的本身及四周,所以如果一个灯点击次数为偶数次的话,就相当该灯没有点击过。2、同时解题方案与每个灯的点击顺序无关,只与需要点击的灯的位置有关)答案的获取可以通过历程一中所使用的那种方法,因为偶数次点击灯相当于没点,所以可以在答案中出现偶数次的方格坐标直接删除。这样一来就减少了点击步数。

    对于求解算法,感觉一下子不是很有思路,想了一阵子,因为这是一个比较古老的游戏,就想着看看网上有没有现成的算法,再次百度,其中看到一个讲解的比较好的
    参考:https://wenku.baidu.com/view/4072ba3643323968011c928e.html

    于是发现第一算法有点复杂,一下子不好看懂,同时活动时间有限,肯定等不了太久,最关键的是时间复杂度过高,所以决定第2种方案。

    方案收集:怎么进行收集,一开始想到的就是,直接在游戏里收集,每成功过关的,都保留亮灯的初始分布情况及对应的求解方案,这样一来就可以通过比如亮灯的初始分布情况进行比对从而找到直接求解方案。
    然后由于解题速度比较慢,导致一分钟只能收集5种方案左右。在收集了100种方案左右后,天真的我以为,应该差不多了,先写了个脚本看看100种方案中有多少种是重复的(因为收集时,没有去判断是否已存在该方案,只是进行收集),结果是大概10多个是重复的。感觉还行。。。于是接着收集,200多种后再进行判断,发现还是10多个重复,,,开始怀疑是不是脚本有问题,于是把根据灯的初始分布情况直接选择求解方案的脚本进行测试,发现疯狂点刷新,就没碰到重复的。。。于是开始思考。。。

    历程三

    方法没想出来,睡觉都在想,突然想到5X5的开灯游戏,设计简单,自己完全可以模拟游戏规则,然后从游戏中进行亮灯初始分布情况的收集,不进行求解,这样1分钟就能收集60次,对于每种情况的求解可能利用自己本地模拟的通关规则进行测试,又不需要什么等待时间,所以可以很快求解出答案,这样一想,很有戏,就开始写起来脚本,经过测试,完全OK,开始行动。

    在收集了1000份方案后,开始查看重复的情况,一看吓一跳,就20多种是重复的,我就???了,难道这个亮灯的分布情况是经过一定的算法,直接随机生成的,一想这样的可能性还比较大,只需要在满灯的情况下,随机选取一部分灯进行一次点击,就能够随机生成亮灯的分布情况,这样算法实现起来,不是一般的简单。。。
    但可能心里还想再试试,毕竟暂时也没想到啥法子,于是接着试吧,收集了2000份后,再次查重,发现只有60种左右是重复的。。。到这里,这种收集的方法基本可以宣告放弃了。。。游戏亮灯的初始分布情况应该是随机生成的

    历程四

    重大的转折来了,因为在收集的过程中,我发现了一个问题,就是初始亮灯的数量基本在一个范围内,为了验证这个猜想,于是将先前收集的2000多份方案,进行了一个初始亮灯数量的统计,发现亮灯的数量只有分布在12(占25%左右),11(10%左右),10、9和8都在%5到%10之间,具体数值未保留,还有一些其他的亮灯数量,但都比较少。一看似乎有戏,主要是这几个亮灯分布情况,如果针对一种亮灯数量直接推演出所有可能的方案,再进行求解,保存下方案与答案来,建立这样一个类似数据库的感觉。。。这样基本是这种亮灯数量的初始分布情况,就基本在我们这个数据库里了(因为部分我们解不出的情况要排除掉)。于是开始编写算法就是组合算法,比较简单,一算。。。还蛮大的每一种亮灯数量的所有方案都为百W级别。。。,
    于是先以亮灯数量12的情况开始进行测试可行性。因为比对的时候我将灯的初始分布情况,存为了字典的key(脚本是用python编写的),所以查询上,非常快,虽然是百W的量,但几乎没有耽搁时间。
    怎么谈都是虚的 ,上游戏测吧!!!
    OMG,太叼了!!!
    于是最终生成了12、11、10、9这4种数量的所有方案(不要8的原因是生成时出问题了,后面也发现加载前4种所要消耗的内存也极大,大概在20G内存左右),然后进行测试,优化后,基本上能跑到450分以上,不是第一就是第二。。。为什么还不能保证第一

    这就要看,到底是我写的脚本太菜,还是大神太厉害(我更相信后者)。。。

    由于启动的时候需要先加载所有的方案到内存中,对内存的消耗极大,同时加载时间也有几分钟,于是又想到如果我把每一种亮灯的初始分布情况进行hash值计算作为文件名,求解方案作为文件内容,这样可以直接通过文件名找到求解方案是不是一种更好的方案,因为这里是直接去通过文件名打开一个文件(所以这里我也不知道到底存不存在一个文件搜索的时间,个人感觉至少不是检索一个文件的时间,知识没到位,暂不清楚。。。),经过尝试后,发现要生成这么大数量级的文件,太慢了。。。电脑也容易卡机,于是就没再进行尝试了。

    以及尝试过其他方案,比如统计所有方案的解题频数,发现高于15步以上的解题步数的情况比较少,可以进行排除,即去除对解题步数高于15步以上的情况,不进行求解,直接刷新换题。

    #总结:
    在本次的自动点击的脚本编写历程中,有一些比较大的收获,比如原来应用还有缩放这个情况,以前真不知道,同时对于内存的理解也更进一层了,以前只知道,数据加载到内存里,有时候为了节省内存,会把暂时不会的数据暂存到磁盘里即交换区的作用。。。但不能直接感受到,这次加载亮灯方案,内存巅峰时刻跑到了97%(看的我可慌了),我才意识到什么叫做空间复杂度,节省内存的重要性。。。为什么要考虑内存空间。。。等一系列问题。。。,同时也有了经验,不要太天真,想像着游戏只提供了100种亮灯的初始分布情况,实际上人家是用算法随机生成的。。。随机生成的。。。

    各位大佬有啥指导,不胜感激!!!
    (本次分享仅作为学习总结分享,同时本文章公布时,该游戏活动已结束,并且脚本从未公开)

    展开全文
  • 网络课每隔一段时间鼠标不动就会暂停,这个软件可以每隔一段时间点击屏幕等等;需要的自行测试
  • :start adb shell sendevent /dev/input/event1 3 57 0 adb shell sendevent /dev/input/event1 3 53 704 adb shell sendevent /dev/input/event1 3 54 115 adb shell sendevent /dev/input/event1 0 0 0 ...

    :start
    adb shell sendevent /dev/input/event1 3 57 0
    adb shell sendevent /dev/input/event1 3 53 704
    adb shell sendevent /dev/input/event1 3 54 115
    adb shell sendevent /dev/input/event1 0 0 0
    adb shell sendevent /dev/input/event1 3 57 4294967295
    adb shell sendevent /dev/input/event1 0 0 0
    adb shell sendevent /dev/input/event1 3 57 0
    adb shell sendevent /dev/input/event1 3 53 831
    adb shell sendevent /dev/input/event1 3 54 94
    adb shell sendevent /dev/input/event1 0 0 0
    adb shell sendevent /dev/input/event1 3 57 4294967295
    adb shell sendevent /dev/input/event1 0 0 0
    goto start

    展开全文
  • 引用了tkinter和pyautogui两个库,思路是,==根据用户输入的坐标和时间间隔t,鼠标会移动到坐标点,进行一次点击操作,每隔t秒一次。==代码在下面 就是在pyautogui.moveTo(h,z,duration=1)这个函数位置出现了问题,...

    引用了tkinter和pyautogui两个库,思路是,==根据用户输入的坐标和时间间隔t,鼠标会移动到坐标点,进行一次点击操作,每隔t秒一次。==代码在下面
    就是在pyautogui.moveTo(h,z,duration=1)这个函数位置出现了问题,本来以为x和y都需要是整数型,然后用int定义了横坐标,纵坐标和时间,三个变量都是用entry.get()得到的,后来出现了这个
    在这里插入图片描述
    应该怎么修改

    from tkinter import *
    import tkinter as tk
    root=tk.Tk()
    root.title('请输入坐标')
    root.geometry('350x250')#建设TK框架
    
    x_value=tk.Label(root,text='横坐标:',bg='grey',width=8,height=2)
    y_value=tk.Label(root,text='纵坐标:',bg='grey',width=8,height=2)
    timeset=tk.Label(root,text='设定时间',bg='red',width=8,height=2)#设置标签大小
    
    x_value.grid(padx=30,pady=20)
    y_value.grid(row=1,padx=30,pady=0)
    timeset.grid(row=2,padx=30,pady=20)#设置标签位置
    
    entry1=Entry(root,width=8)
    entry1.grid(row=0,column=2,padx=20)
    entry2=Entry(root,width=8)
    entry2.grid(row=1,column=2)
    entry3=Entry(root,width=8)
    entry3.grid(row=2,column=2)#设置输入框大小以及位置
    
    h=int(entry1.get())
    z=int(entry2.get())
    s=int(entry3.get())
             
    import pyautogui
    import time
    def DJ():
        while 1:
                time.sleep(s)
                pyautogui.moveTo(h,z,duration=1)
                pyautogui.click(clicks=1,button='left',interval=0.01)#定义函数点击坐标点一次
                
    yeslabel=tk.Button(width=6,height=3,text='确定',command=DJ)
    yeslabel.grid(row=1,column=5,padx=20)#绑定按钮和函数
    
    
    
    
    
    
    展开全文
  • 为了网络安全课程的实训作业检查,写了这个程序,有学到一些知识,也...pyautogui(鼠标键盘的自动化操作) pillow(处理图像) numpy(numpy的二维数组,用于存储整张连连看图片的数据信息) 在cmd 有一个额外的 设计
  • 脚本可以指定时间点击指定区域,在windows下实现,利用Python3。
  • python实现博客自动点击脚本

    千次阅读 2014-11-25 22:08:32
      #A Auto-Visit Web Site Tool import urllib import time ...print "Auto Click the WebPage for Click-Num.....所以要调用python执行一些脚本,更改mac地址,释放ip,重新获取,刷新dns   待续。。。
  • 可是爱的啊以自动关机的脚本,可以双击启动或者小娜启动
  • 如何放到浏览器 浏览器打开活动页面,按F12进入调试模式,找到Console控制台,将上面js脚本标签内的代码粘贴进去(不要首尾标签),点击回车即可,一定要在活动结束前放进去。 结果预览 修改setInterval(function(){}...
  • 基于我需要下架宝贝的时候, 淘宝助手只有批量上架,没有批量下架的功能, ...自动点击窗口确定 新建一个文件 下架宝贝.au3 内容如下 -------------------------分割线---------------------
  • 网页脚本:radio的自动点击 今天发现要评选教师,一个个点的很难受,就想自己写一个网页脚本自动帮我点. 一开始傻傻的翻他的css样式和click事件,结果什么都没发现。后面去网上找找,发现直接获取对象,然后对象....
  • 如何放到浏览器 浏览器打开活动页面,按F12进入调试模式,找到Console控制台,将上面js脚本标签内的代码粘贴进去(不要首尾标签),点击回车即可,一定要在活动结束前放进去。 结果预览 修改setInterval(function(){}...
  • 自动领金币脚本 auto软件和js脚本在本人的csdn的上传资源下载 如何使用,见博客底部 auto.waitFor(); var height = device.height; var width = device.width; toast("\n设备宽" + width + "\n" + "设备高" + ...
  • 本篇文章主要教给大家如何用JS写一些商城中秒杀等自动点击功能,有这方面需要的朋友赶快学习下思路吧。
  • js 抢月饼第一步 —— console中实现自动点击click脚本
  • ![图片说明](https://img-ask.csdn.net/upload/201702/18/1487429536_903087.jpg)![图片说明](https://img-ask.csdn.net/upload/201702/18/1487429560_560573.jpg)![图片说明]...
  • python自动下单脚本

    千次阅读 2020-03-01 17:42:59
    点击上方“后端开发技术”,选择“设为星标”优质文章和资源,及时送达自动下单脚本闲来无事,写了一个定时抢购下单的脚本,可用于淘宝和天猫商品的定时秒杀,但是最终付款操作需要...
  • 其实就是一个复制脚本: 他创建了一个层,然后这个层的z-index层级很高。 Javascript脚本: (function($$) { var EVAutoCopy = { trigger: null, dd: document, ww: window, listener: [], listener...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,244
精华内容 1,697
关键字:

自动点击脚本