Bunlar benim kodlarım
import tkinter as tk
from threading import Thread
import pyautogui
import time
from clicksend import *
import threading
from PIL import ImageGrab
import keyboard
from pynput import keyboard
import pygame
from twocaptcha import TwoCaptcha
import requests
from pynput.keyboard import Controller as KeyboardController
keycodes = {
"F1": 0x3B, "F2": 0x3C, "F3": 0x3D, "F4": 0x3E, "F5": 0x3F, "F6": 0x40, "F7": 0x41, "F8": 0x42, "F9": 0x43, "F10": 0x44, "F11": 0x57, "F12": 0x58,
"0": 0x0B, "1": 0x02, "2": 0x03, "3": 0x04, "4": 0x05, "5": 0x06, "6": 0x07, "7": 0x08, "8": 0x09, "9": 0x0A,
"A": 0x1E, "B": 0x30, "C": 0x2E, "D": 0x20, "E": 0x12, "F": 0x21, "G": 0x22, "H": 0x23, "I": 0x17, "J": 0x24, "K": 0x25, "L": 0x26, "M": 0x32, "N": 0x31, "O": 0x18, "P": 0x19, "Q": 0x10, "R": 0x13, "S": 0x1F, "T": 0x14, "U": 0x16, "V": 0x2F, "W": 0x11, "X": 0x2D, "Y": 0x15, "Z": 0x2C,
"ESC": 0x01, "TAB": 0x0F, "ENTER": 0x1C,
"DOWN_ARROW": 0x50, "UP_ARROW": 0x48, "RIGHT_ARROW": 0x4D, "LEFT_ARROW": 0x4B,
"NUMPAD_0": 0x52, "NUMPAD_1": 0x4F, "NUMPAD_2": 0x50, "NUMPAD_3": 0x51, "NUMPAD_4": 0x4B, "NUMPAD_5": 0x4C, "NUMPAD_6": 0x4D, "NUMPAD_7": 0x47, "NUMPAD_8": 0x48, "NUMPAD_9": 0x49,
}
# Klavye kontrolcüsünü oluştur
keyboard = KeyboardController()
tusbas = KeyboardDriver()
mousebas = MouseDriver()
resim_captcha = r'C:\makro\resimler\captcha.png'
image_path = r'C:\makro\resimler\deneme.png'
# Bir kilit oluÅŸtur
lock = threading.Lock()
class CaptchaSolver:
def __init__(self, master, api_key):
self.api_key = api_key
self.upload_url = 'https://2captcha.com/in.php'
self.running = True
self.captcha_basla_checkbutton_var = tk.BooleanVar()
self.captcha_basla_checkbutton_var.set(False)
self.tusbas = keyboard.type
def captcha_bul(self):
try:
# Ekranı tarayarak belirli bir resmi ara
resim_konumu = pyautogui.locateOnScreen(resim_captcha, confidence=0.9)
return resim_konumu
except:
return None
def captcha_basla(self):
# Aranan resmi bul
resim_konumu = self.captcha_bul()
# Eğer resim bulunamazsa 5 saniye bekle ve döngüye devam et
if resim_konumu is None:
time.sleep(1)
# Belirli bir resim bulunduğunda yapılacak işlemi buraya yazabilirsiniz
task_id = self.koordinat_screen(resim_konumu)
if task_id:
captcha_result = self.check_result(task_id)
if captcha_result:
return captcha_result
# 10 saniye bekle
time.sleep(1)
def koordinat_screen(self, resim_konumu):
# Merkez noktayı hesapla
x, y, w, h = resim_konumu
merkez_x = x + (w / 2)
merkez_y = y + (h / 2)
# Ekranın tamamını al
screen = ImageGrab.grab()
# Dikdörtgenin koordinatlarını hesapla
x1 = int(merkez_x - 275)
x2 = int(merkez_x - 40)
y1 = int(merkez_y - 14)
y2 = int(merkez_y + 50)
# Dikdörtgeni kes
region = screen.crop((x1, y1, x2, y2))
# Kesilen bölgeyi belirtilen dizine kaydet
save_path = "C:\\makro\\resimler\\captcharesmi.png"
region.save(save_path)
print("Resim kaydedildi:", save_path)
# Captcha çözme işlemini başlat
return self.solve_captcha(save_path)
def solve_captcha(self, image_path):
with open(image_path, 'rb') as file:
upload_data = {'key': self.api_key, 'method': 'post'}
files = {'file': file}
response = requests.post(self.upload_url, data=upload_data, files=files)
response_data = response.text
if response_data.startswith('OK|'):
task_id = response_data.split('|')[1]
print("İşlem kimliği:", task_id)
return task_id
else:
print("Hata:", response_data)
return None
def check_result(self, task_id):
while True:
# 2Captcha'ya sonuç sorgusu yap
check_url = f"https://2captcha.com/res.php?key={self.api_key}&action=get&id={task_id}"
check_response = requests.get(check_url)
check_data = check_response.text
# 2Captcha yanıtı 'CAPCHA_NOT_READY' ise, biraz bekleyip tekrar kontrol et
if check_data == 'CAPCHA_NOT_READY':
time.sleep(5)
continue
# 2Captcha yanıtı '|' içeriyorsa, işlem tamamlandı demektir
elif '|' in check_data:
# Captcha sonucunu al
captcha_result = check_data.split('|')[1]
print("Captcha çözüldü:", captcha_result)
# Captcha sonucunu girme iÅŸlemi
if self.captchagirme(captcha_result):
# Sonuç döndür
return captcha_result
else:
print("Captcha çözülmedi veya uygun formatta değil.")
return None
# Beklenmedik bir hata varsa, hata mesajını yazdır ve None döndür
else:
print("Beklenmedik bir hata oluÅŸtu:", check_data)
return None
def captchagirme(self, captcha_result):
# Doğru formatta bir captcha sonucu alındıysa devam et
if captcha_result and captcha_result.isdigit(): # Sadece sayısal değerler kabul edilecek
# Captcha sonucunu not defterine kaydet
with open("C:\\makro\\captchakodu.txt", "w") as file:
file.write(captcha_result)
# Resim captchanın konumunu bul
resim_captcha = self.captcha_bul()
# Doğru formatta bir captcha sonucu alındıysa devam et
if resim_captcha:
# Resim captchanın merkez noktasını bul
x, y, w, h = resim_captcha
merkez_x = x + (w / 2)
merkez_y = y + (h / 2)
# Sol tıklama işlevi (merkez noktasına göre)
x22 = merkez_x - 33
y22 = merkez_y + 79
mousebas.leftclick(0.2, x22, y22)
# Not defterinden captcha kodunu oku
with open("C:\\makro\\captchakodu.txt", "r") as file:
captchakodu = file.read()
# Klavye giriÅŸi ile captcha kodunu yaz
if tusbas.tusbas(captchakodu, 0.5):
return True
else:
return False
else:
print("Captcha resmi bulunamadı.")
return False
else:
print("Captcha çözülmedi veya uygun formatta değil.")
return False
# Tkinter uygulamasını başlat
root = tk.Tk()
# CaptchaSolver sınıfını oluştururken root penceresini parametre olarak iletebilirsiniz
captcha_solver = CaptchaSolver(api_key="2captcha_api_Key")
# Captcha çözümünü başlat
captcha_solver.captcha_basla()
# Tkinter uygulamasını çalıştır
root.mainloop()Bunlar da hata aldığım kütüphane kodlarıimport struct
class stroke():
@property
def data(self):
raise NotImplementedError
@property
def data_raw(self):
raise NotImplementedError
class mouse_stroke(stroke):
fmt = 'HHsiiI' # 's' karakter tipi ile her türlü karakteri algılayacak
fmt_raw = 'HHHHIsiiI' # 's' karakter tipi ile her türlü karakteri algılayacak
state = 0
flags = 0
rolling = 0
x = 0
y = 0
information = 0
def __init__(self,state,flags,rolling,x,y,information):
super().__init__()
self.state =state
self.flags = flags
self.rolling = rolling
self.x = x
self.y = y
self.information = information
@staticmethod
def parse(data):
return mouse_stroke(*struct.unpack(mouse_stroke.fmt,data))
@staticmethod
def parse_raw(data):
unpacked= struct.unpack(mouse_stroke.fmt_raw,data)
return mouse_stroke(
unpacked[2],
unpacked[1],
unpacked[3],
unpacked[5],
unpacked[6],
unpacked[7])
@property
def data(self):
data = struct.pack(self.fmt,
self.state,
self.flags,
self.rolling,
self.x,
self.y,
self.information)
return data
@property
def data_raw(self):
data = struct.pack(self.fmt_raw,
0,
self.flags,
self.state,
self.rolling,
0,
self.x,
self.y,
self.information)
return data
class key_stroke(stroke):
fmt = 'HHsI' # 's' karakter tipi ile her türlü karakteri algılayacak
fmt_raw = 'HHHHIsI' # 's' karakter tipi ile her türlü karakteri algılayacak
code = 0
state = 0
information = 0
def __init__(self,code,state,information):
super().__init__()
self.code = code
self.state = state
self.information = information
@staticmethod
def parse(data):
return key_stroke(*struct.unpack(key_stroke.fmt,data))
@staticmethod
def parse_raw(data):
unpacked= struct.unpack(key_stroke.fmt_raw,data)
return key_stroke(unpacked[1],unpacked[2],unpacked[4])
@property
def data(self):
data = struct.pack(self.fmt,self.code,self.state,self.information)
return data
@property
def data_raw(self):
data = struct.pack(self.fmt_raw,0,self.code,self.state,0,self.information)
return data