最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)按鍵精靈版的連點(diǎn)器

 更新時(shí)間:2023年06月12日 08:43:34   作者:小鋒學(xué)長生活大爆炸  
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)按鍵精靈版的連點(diǎn)器,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下

Python版

需要用到的庫:

pip install pynput pyautoit

實(shí)現(xiàn)代碼:

import tkinter as tk
from tkinter import ttk
import time
import autoit
import threading
from tkinter import messagebox
from pynput import keyboard
import sys
 
# 增大迭代限制
sys.setrecursionlimit(1000000000)
 
class App:
    def __init__(self, master):
        self.master = master
        master.title("簡易連點(diǎn)器-小鋒學(xué)長生活大爆炸(ESC鍵停止)")
        # 設(shè)置連點(diǎn)的時(shí)間間隔,單位為毫秒
        self.interval = 0.5
        # 連點(diǎn)計(jì)數(shù)器
        self.click_count = 0
        self.click_total = 10
        # 創(chuàng)建輸入框
        self.x_label = tk.Label(master, text="X坐標(biāo):", width=15)
        self.x_label.grid(row=0, column=0, padx=5, pady=10)
        self.x_entry = tk.Entry(master, width=10)
        self.x_entry.insert(tk.END, "100")
        self.x_entry.grid(row=0, column=1, padx=5, pady=10)
        self.y_label = tk.Label(master, text="Y坐標(biāo):", width=15)
        self.y_label.grid(row=1, column=0, padx=5, pady=10)
        self.y_entry = tk.Entry(master, width=10)
        self.y_entry.insert(tk.END, "100")
        self.y_entry.grid(row=1, column=1, padx=5, pady=10)
        # 增加self.click_total的輸入框
        self.total_label = tk.Label(master, text="點(diǎn)擊總數(shù)(0為無限):", width=15)
        self.total_label.grid(row=2, column=0, padx=5, pady=10)
        self.total_entry = tk.Entry(master, width=10)
        self.total_entry.insert(tk.END, "10")
        self.total_entry.grid(row=2, column=1, padx=5, pady=10)
        # 增加self.interval的輸入框
        self.interval_label = tk.Label(master, text="點(diǎn)擊間隔(ms):", width=15)
        self.interval_label.grid(row=3, column=0, padx=5, pady=10)
        self.interval_entry = tk.Entry(master, width=10)
        self.interval_entry.insert(tk.END, "500")
        self.interval_entry.grid(row=3, column=1, padx=5, pady=10)
        # 創(chuàng)建進(jìn)度條和標(biāo)簽
        self.progress_bar = ttk.Progressbar(master, orient="horizontal", mode="determinate")
        self.progress_bar.grid(row=4, column=0, padx=5, pady=10)
        self.progress_label = tk.Label(master, text="0 / {}".format(self.click_total), width=5)
        self.progress_label.grid(row=4, column=1, padx=5, pady=10)
        # 創(chuàng)建啟動(dòng)和停止按鈕
        self.start_button = tk.Button(master, text="啟動(dòng)", command=self.start_click, width=5)
        self.start_button.grid(row=5, column=0, padx=5, pady=10)
        self.stop_button = tk.Button(master, text="停止", command=self.stop_click, width=5)
        self.stop_button.grid(row=5, column=1, padx=5, pady=10)
         
        # 創(chuàng)建一個(gè)標(biāo)志,表示是否按下了ESC鍵
        self.esc_pressed = False
    def start_click(self):
        # 啟動(dòng)連點(diǎn)器
        self.x = int(self.x_entry.get())
        self.y = int(self.y_entry.get())
        self.click_count = 0
        self.running = True
        self.click_total = int(self.total_entry.get()) or 1e9
        self.interval = int(self.interval_entry.get()) / 1000
        self.progress_bar["maximum"] = self.click_total
        self.progress_bar["value"] = 0
         # 創(chuàng)建一個(gè)子線程,用于監(jiān)聽鍵盤是否按下ESC鍵
        self.listener_thread = threading.Thread(target=self.listener_start)
        self.listener_thread.start()
        while self.running and self.click_count < self.click_total:
            self.click_count += 1
            # 鼠標(biāo)左鍵點(diǎn)擊
            autoit.mouse_click("left", self.x, self.y)
            # 等待interval毫秒
            time.sleep(self.interval)
            # 更新進(jìn)度條和標(biāo)簽
            self.progress_bar["value"] = self.click_count
            self.progress_label["text"] = "{} / {}".format(self.click_count, self.click_total)
            self.master.update()
             # 如果按下了ESC鍵,則停止連點(diǎn)器
            if self.esc_pressed:
                self.stop_click()
                break
        # 點(diǎn)擊結(jié)束后,停止子線程
        self.listener_thread.join()
        messagebox.showinfo("提示", "連點(diǎn)器已停止")
    def stop_click(self):
        # 停止連點(diǎn)器
        self.running = False
        self.esc_pressed = False
    def listener_on_press(self, key):
        try:
            if key.char == keyboard.Key.esc:
                print("ESC is pressed")
        except AttributeError:
            pass
    def listener_on_release(self, key):
        if key == keyboard.Key.esc:
            return False
    def listener_start(self):
        # 監(jiān)聽鍵盤是否按下ESC鍵
        while self.running:
            # 啟動(dòng)鍵盤監(jiān)聽器
            with keyboard.Listener(on_press=self.listener_on_press, on_release=self.listener_on_release) as listener:
                listener.join()
                self.esc_pressed = True
                break
root = tk.Tk()
app = App(root)
# 設(shè)置窗口置頂
root.wm_attributes("-topmost", True)
root.mainloop()

按鍵精靈版

實(shí)現(xiàn)代碼

/*
	API指南:https://zimaoxy.com/q/categories/02-%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/
*/
// 坐標(biāo)定義區(qū)
top_left_x = 1470  // 窗口左上角x坐標(biāo),不包括標(biāo)題欄,只需要修改這兩個(gè)
top_left_y = 43// 窗口左上角y坐標(biāo),不包括標(biāo)題欄,只需要修改這兩個(gè)
win_width = 450    // 窗口寬度
win_height = 800   // 窗口高度
// 點(diǎn)擊位置
click_x = top_left_x + win_width/2    // 1625
click_y = top_left_y + win_height/3*2 // 703
// 戰(zhàn)斗按鈕的點(diǎn)擊/找色位置
btn_fight_w = 100
btn_fight_h = 80
btn_fight_tx = top_left_x + win_width/2 - btn_fight_w/2  // 左上角
btn_fight_ty = top_left_y + win_height - btn_fight_h     // 左上角
btn_fight_cx = btn_fight_tx + btn_fight_w/2  // 中心
btn_fight_cy = btn_fight_ty + btn_fight_h/2   // 中心
// 其他變量定義區(qū)
esc_key_code = 27  // ESC按鍵編號(hào)
btn_fight_active_color = "234B75"
club_msgbox_color = "12110F"
// 函數(shù)定義區(qū)
Function ClickAtFightBtn()
	MoveTo btn_fight_cx, btn_fight_cy
	Delay 10
	LeftClick 1
End Function
Function ClickAtClicArea()
	MoveTo click_x, click_y
	Delay 100
	LeftClick 1
	Delay 100
End Function
// 移動(dòng)到戰(zhàn)斗位置
Call ClickAtFightBtn()
cnt = 0
// 開始點(diǎn)擊
Do While 1
	cnt = cnt + 1
	If cnt = 10000 Then 
		cnt = 0
		Call ClickAtFightBtn()
	End If
	// 判斷是否按下esc鍵導(dǎo)致終止
	last_key = GetLastKey()   
	If last_key=esc_key_code Then  
    	Exit Do
	End If
	// 判斷鼠標(biāo)是否被移動(dòng)
	GetCursorPos x, y
	If x <> click_x And y <> click_y Then
    	Call ClickAtClicArea()
	End If
	LeftClick 1
	Delay 10
Loop
Sub OnScriptExit()
    MessageBox "腳本已經(jīng)停止!"
End Sub

到此這篇關(guān)于Python實(shí)現(xiàn)按鍵精靈版的連點(diǎn)器的文章就介紹到這了,更多相關(guān)Python連點(diǎn)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用Python自動(dòng)控制windows桌面

    如何使用Python自動(dòng)控制windows桌面

    這篇文章主要介紹了如何使用Python自動(dòng)控制windows桌面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python中l(wèi)ogging.NullHandler 的使用教程

    Python中l(wèi)ogging.NullHandler 的使用教程

    這篇文章主要介紹了Python中l(wèi)ogging.NullHandler 的使用教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-11-11
  • Python中的sys模塊、random模塊和math模塊

    Python中的sys模塊、random模塊和math模塊

    這篇文章介紹了Python中的sys模塊、random模塊和math模塊,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python圖像處理Pillow庫的安裝使用

    Python圖像處理Pillow庫的安裝使用

    本文詳細(xì)介紹了Python第三方庫Pillow的使用,通過導(dǎo)入Pillow庫、打開和保存圖像、基本圖像操作以及圖像處理高級(jí)功能的代碼示例,我們了解了Pillow庫的強(qiáng)大功能和靈活性,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • python運(yùn)行加速的幾種方式

    python運(yùn)行加速的幾種方式

    Python運(yùn)行的慢是歷來被詬病的,本文就來介紹一下python運(yùn)行加速的幾種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • yolov5訓(xùn)練時(shí)參數(shù)workers與batch-size的深入理解

    yolov5訓(xùn)練時(shí)參數(shù)workers與batch-size的深入理解

    最近再學(xué)習(xí)YOLOv3與YOLOv5訓(xùn)練數(shù)據(jù)集的具體步驟,幾經(jīng)波折終于實(shí)現(xiàn)了很好的效果,這篇文章主要給大家介紹了關(guān)于yolov5訓(xùn)練時(shí)參數(shù)workers與batch-size的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • python三大神器之fabric使用教程

    python三大神器之fabric使用教程

    fabric 是一個(gè)python包 是一個(gè)基于ssh的部署工具包,這篇文章主要介紹了python三大神器之fabric,需要的朋友可以參考下
    2019-06-06
  • python請(qǐng)求域名requests.(url = 地址)報(bào)錯(cuò)

    python請(qǐng)求域名requests.(url = 地址)報(bào)錯(cuò)

    本文主要介紹了python請(qǐng)求域名requests.(url = 地址)報(bào)錯(cuò),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python正則表達(dá)式分組概念與用法詳解

    Python正則表達(dá)式分組概念與用法詳解

    這篇文章主要介紹了Python正則表達(dá)式分組概念與用法,結(jié)合具體實(shí)例形式較為詳細(xì)的分析了Python正則表達(dá)式中分組、引用、斷言等概念與相關(guān)使用技巧,需要的朋友可以參考下
    2017-06-06
  • keras模型保存為tensorflow的二進(jìn)制模型方式

    keras模型保存為tensorflow的二進(jìn)制模型方式

    這篇文章主要介紹了keras模型保存為tensorflow的二進(jìn)制模型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評(píng)論

罗江县| 健康| 宜宾县| 安福县| 彭州市| 禄丰县| 岳普湖县| 潼关县| 榆树市| 和顺县| 黄浦区| 天津市| 福海县| 正安县| 潜江市| 龙口市| 满洲里市| 全南县| 大同市| 长乐市| 新野县| 池州市| 同德县| 镇康县| 望谟县| 许昌县| 清徐县| 始兴县| 威信县| 湟源县| 蓬安县| 田东县| 青岛市| 同心县| 常山县| 大姚县| 江源县| 鹤山市| 临泽县| 邛崃市| 涞水县|