首页 > 其他分享 >新连点器和bat不弹黑窗口且自动获取管理员权限

新连点器和bat不弹黑窗口且自动获取管理员权限

时间:2024-04-17 13:11:38浏览次数:21  
标签:count 连点 bat root 次数 新连点器 text 不弹

标题好长

新的连点器

相比原来那个c语言版,这次使用python编写,添加了简单的图形界面,参数调整非常简单(指的是直接编辑源码) 直接贴完整代码:

# 导入模块
import tkinter as tk
import threading
import pyautogui
import keyboard

# 定义全局变量
running = False # 是否开启连点
interval = 0.3 # 连点间隔(秒)
count = 0 # 连点次数
total = 0 # 总连点次数
qido = "F8"

# 定义连点函数
def clicker():
    global running, interval, count, total
    while running:
        pyautogui.click() # 模拟鼠标左键单击
        count += 1 # 连点次数加一
        total += 1 # 总连点次数加一
        label_count.config(text=f"连点次数:{count}") # 更新界面上的连点次数
        label_total.config(text=f"总连点次数:{total}") # 更新界面上的总连点次数
        root.update() # 刷新界面
        pyautogui.sleep(interval) # 暂停一段时间

# 定义开启/关闭连点的函数
def toggle():
    global running
    running = not running # 切换连点状态
    if running:
        button_toggle.config(text="关闭连点(F8)") # 更新界面上的按钮文字
        threading.Thread(target=clicker).start() # 开启一个新的线程运行连点函数
    else:
        button_toggle.config(text="开启连点(F8)") # 更新界面上的按钮文字

# 定义重置连点次数的函数
def reset():
    global count
    count = 0 # 重置连点次数
    label_count.config(text=f"连点次数:{count}") # 更新界面上的连点次数

# 定义调整连点间隔的函数
def adjust(self):
    global interval
    interval = scale.get() / 1000 # 获取界面上的滑动条的值,并转换为秒
    label_interval.config(text=f"连点间隔:{interval:.3f}秒") # 更新界面上的连点间隔

# 创建主窗口
root = tk.Tk()
root.title("连点器") # 设置窗口标题
root.resizable(0, 0) # 禁止调整窗口大小
root.geometry('300x200')
# root.iconbitmap("icon.ico") # 设置窗口图标

# 创建界面元素
label_count = tk.Label(root, text=f"连点次数:{count}") # 显示连点次数的标签
label_count.pack()
label_total = tk.Label(root, text=f"总连点次数:{total}") # 显示总连点次数的标签
label_total.pack()
button_toggle = tk.Button(root, text="开启连点({})".format(qido), command=toggle) # 开启/关闭连点的按钮
button_toggle.pack()
button_reset = tk.Button(root, text="重置连点次数", command=reset) # 重置连点次数的按钮
button_reset.pack()
label_interval = tk.Label(root, text=f"连点间隔:{interval:.3f}秒") # 显示连点间隔的标签
label_interval.pack()
scale = tk.Scale(root, from_=1, to=1000, orient=tk.HORIZONTAL, command=adjust) # 调整连点间隔的滑动条
scale.set(interval * 1000) # 设置滑动条的初始值
scale.pack()

# 绑定快捷键
keyboard.add_hotkey(qido, toggle) # 按F8键开启/关闭连点

#最小化窗口
root.iconify()
# 进入主循环
root.mainloop()

关于使用

1.python编译运行

能跑

众所周知只要在终端使用python xxx.py就能运行这个py文件,所以简单的方式就是新建txt往里面写上

python xxx.py

然后改后缀为bat就行 这样只要双击这个bat文件就能自动调用python运行你的代码,而且还可以方便随时更改源代码

完美一点

上面那样已经可以正常使用,不过运行时会有黑窗口,如果你不需要它又有强迫症你可以在里面加上一段,变成这样,xxx改成你的python文件名字

if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin
python xxx.py

这样就会在打开后自动关掉黑窗口了

得寸进尺

我有一个朋友()使用这个连点器尝试自动跳过游戏剧情发现不好使,必须使用管理员权限运行代码才行。 右键、然后选择以管理员权限运行似乎可以,但是要多点整整两下,不能忍 其实只需在bat里面再加上几行,变成下面这样就可以了,xxx改成你的python文件名字

@echo off
@REM 管理员权限运行
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd/d "%~dp0"
@REM 关闭黑窗口
if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin
@REM 下面放你的命令
python xxx.py

得尺进丈

虽然直接双击这个bat就能高枕无忧了,但是就是有人不想点那么多下,希望一键运行。 那么可以为他建立快捷方式然后固定到开始菜单 但是你右键那个bat发现并没有固定到开始菜单这个选项,因为windows只让exe文件有这个选项,那怎么办 那就披上马甲 把bat文件改名为exe结尾,然后右键固定到开始菜单,然后再改回bat 这还不行,因为开始菜单里那个快捷方式只会去找他原来设定的exe文件,只要打开开始菜单,右键那个快捷方式选择打开文件位置 这时你会看到他的快捷方式在一个Programs目录中,然后右键那个快捷方式,选择属性,在目标这一栏你会看到他指向的地址,把地址中的exe改回bat就好了

更进一步

其实这一步完全没必要,就是截至上一步已经可以在开始菜单一键打开这个脚本,但是黑窗口虽然会自动关闭,但还是会停1秒左右,这一步就是试图缩短这个1秒(是的是缩短而不是取消,笔者还没找到完全让他不出现的方法,要是有人知道希望可以告诉一下我) 就是新建一个txt,然后在里面写上下面这些,xxx改成你的bat文件名字

Set shell = Wscript.createobject("wscript.shell")
a = shell.run (".\xxx.bat",0)

然后把后缀改成vbs 最后再把开始菜单那个快捷方式的属性的目标项里面的后缀再由bat改成vbs 这样就只会看一闪而过的黑窗口了

2.变成exe

变成exe相比上面那个其实方便不少,至少不用整那么多文件,而且是真的不会有黑窗口 但是不能方便更改源码,改一次得重新编译

  1. 安装这俩包

    pip install pywin32
    pip install pyinstaller
    
  2. 在你的py文件目录下进入终端输入打包命令

    pyinstaller -F test.py -w
    

    -F是固定的别动,-w是设置不弹黑窗口,如果你需要黑窗口用于交互就把他删了 等他整完就能看到exe文件了

  3. 设定以管理员身份运行 直接右键,属性,兼容性,以管理员身份运行,勾上就行

  4. 设定快捷方式 直接右键,固定到开始菜单,或者右键-发送到-桌面

关于取消管理员运行软件的那个提示框

打开设置,搜索“管理员” 选择“更改用户账户控制设置” 把左边那个滑动条拉到最底下 之后就不会弹那个东西了 不过这样电脑安全性将会下降,就是不管你运行什么鬼东西电脑都不会再吱一声 这不是很好吗

怎么改快捷键?

看见源代码里面的`qido = "F8"`这一行没 F8就是快捷键,改成qido = "ctrl+alt+shift+a"就是改成了ctrl+alt+shift+a触发(非常人性化有没有)

标签:count,连点,bat,root,次数,新连点器,text,不弹
From: https://www.cnblogs.com/kabaiye/p/18140376

相关文章

  • 实用的bat脚本
    众所周知只要把bat脚本路径加入环境变量就可以在任意shell以命令的形式使用脚本。为此我创建了一个文件夹专门用来存放自定义的bat脚本,然后将该文件夹的路径加入环境变量。于是便可以使用win+R的方式快捷使用命令。部分脚本如下mdr.bat@echooffsetlocalenabledelayede......
  • mybatisplus
    官网啥都有https://baomidou.com/1.引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>2.定义Mapp......
  • MyBatis-04-数据库配置
    XML解析时对environment节点的处理TransactionFactorytxFactory=transactionManagerElement(child.evalNode("transactionManager"));DataSourceFactorydsFactory=dataSourceElement(child.evalNode("dataSource"));DataSourcedataSource=dsFactory......
  • MyBatis-06-Spring的SqlSession和原始区别
    DefaultSqlSession这个就不说了,SQL执行是调用执行器Executor执行SqlSessionTemplate构造函数,虽然没有立即创建SqlSession传入代理拦截器SqlSessionInterceptor,但是拦截器是一个实例内部类,可以访问到SqlSessionFactory并且SqlSessionTemplate不支持commit、rollback......
  • MyBatis-05-MyBatis使用流程简读
    代码//使用流程//1.读取配置文件InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");//2.创建SqlSessionFactory工厂SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);//3.生产SqlSession......
  • MyBatis-07-插件原理
    MyBatis插件MyBatis的插件实际上就是Interceptor,拦截器,拦截并重写SQLInterceptor:拦截器InterceptorChain:拦截器链Invocation:封装Object.method(args),反射调用Plugin:JDK代理处理器InvocationHandler,封装一个Interceptor及其拦截的方法,及拦截对象+拦截方......
  • MyBatis-08-Spring的MyBatis Interceptor
    addInterceptor3个地方XML解析的SqlSessionFactoryBean:生成SqlSession的FactoryBeanPageHelperAutoConfiguration:分页助手的自动配置SqlSessionFactoryBean发现现在都没有将他作为一个FactoryBean使用了getObject调用了afterPropertiesSet生成SqlSessionF......
  • MyBatis-09-FactoryBean的问题
    ListableBeanFactory#getBeanNamesForType(Class<?>)这个方法的逻辑在对FactoryBean进行判断时,会使用FactoryBean的生成的对象的类型进行判断BD的属性数据AttributeAccessor.getAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE)反射创建对象并调用FactoryBean#getObjectT......
  • MyBatis-01-Demo
    数据库DDLCREATEDATABASE`mybatis_demo01`;--mybatis_demo01.`user`definitionCREATETABLE`user`(`id`intNOTNULLAUTO_INCREMENT,`username`varchar(100)DEFAULTNULL,`birthday`datetimeDEFAULTNULL,`sex`char(1)DEFAULTNULL,`address`......
  • MyBatis-02-别名
    别名TypeAliasRegistry默认注册了很多别名,构造函数注册的publicTypeAliasRegistry(){registerAlias("string",String.class);registerAlias("byte",Byte.class);registerAlias("char",Character.class);registerAlias("character"......