gpt'nin önerisi:
Çoklu işlem (multiprocessing) veya çoklu iş parçacığı (multithreading) kullanarak, eş zamanlı olarak ekran görüntüsü alma ve tıklama işlemlerini gerçekleştirin. Bu, işlemleri aynı anda gerçekleştirerek hızı artırabilir.
Araştırma aralığını daraltarak, örneğin her 5 piksel yerine her 2 veya 3 pikselde bir arama yaparak daha hassas ve hızlı taramalar yapın. Bu, doğru konumu daha hızlı bulmanızı sağlar.
Gereksiz işlemleri azaltarak hızı artırabilirsiniz. Örneğin, tarama işlemi sırasında tıklama işlemi gerçekleştirilirse, tarama işlemine devam etmek yerine döngüyü durdurun.
bu da kod optimizasyonu önerisi:
import pyautogui
import time
import win32api, win32con
from threading import Thread, Event
def click(x, y):
win32api.SetCursorPos((x, y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
def find_and_click(stop_event):
while not stop_event.is_set():
pic = pyautogui.screenshot(region=(265, 220, 200, 200))
width, height = pic.size
found = False
for x in range(0, width, 2):
if found:
break
for y in range(0, height, 2):
r, g, b = pic.getpixel((x, y))
if g in range(90, 95):
click(x + 265, y + 220)
found = True
break
if __name__ == "__main__":
time.sleep(2)
stop_event = Event()
find_and_click_thread = Thread(target=find_and_click, args=(stop_event,))
find_and_click_thread.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
stop_event.set()
find_and_click_thread.join()
0