Top.Mail.Ru
Ответы

Python помогите не запускается

import time

import pyautogui

import keyboard

import ctypes

import sys

import traceback

# Проверка прав администратора

def is_admin():

try:

return ctypes.windll.shell32.IsUserAnAdmin()

except:

return False

if not is_admin():

print("Запуск с правами администратора...")

ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)

sys.exit()

# Координаты областей (3x3 сетка)

MATERIALS_REGION = (594, 590, 1329, 832) # Область с материалами

TARGET_REGION = (994, 124, 1345, 487) # Целевая область

START_BUTTON_REGION = (574, 866, 1342, 1000) # Кнопка "Старт"

def calculate_positions(region):

"""Рассчитывает 9 позиций в указанной области (3x3 сетка)"""

x1, y1, x2, y2 = region

width = x2 - x1

height = y2 - y1

positions = []

for i in range(3):

for j in range(3):

x = x1 + (width (2i + 1)) // 6

y = y1 + (height (2j + 1)) // 6

positions.append((int(x), int(y)))

return positions

def drag_items():

"""Перетаскивание элементов с зажатием ЛКМ"""

try:

materials = calculate_positions(MATERIALS_REGION) # Исправлено на MATERIALS_REGION

targets = calculate_positions(TARGET_REGION)

for src, dst in zip(materials, targets):

pyautogui.moveTo(src)

pyautogui.mouseDown()

time.sleep(0.2)

pyautogui.moveTo(dst, duration=0.3)

time.sleep(0.1)

pyautogui.mouseUp()

time.sleep(0.15)

except Exception as e:

print(f"Ошибка в drag_items: {str(e)}")

traceback.print_exc()

def click_start():

"""Нажатие на кнопку старт"""

try:

x1, y1, x2, y2 = START_BUTTON_REGION

pyautogui.click((x1+x2)//2, (y1+y2)//2)

except Exception as e:

print(f"Ошибка в click_start: {str(e)}")

traceback.print_exc()

def main():

try:

print("Бот активирован. Для запуска используйте Alt+1")

keyboard.add_hotkey('alt+1', lambda: [

print("Начало операции..."),

drag_items(),

click_start(),

print("Операция завершена!")

])

while True:

time.sleep(1)

except Exception as e:

print(f"Основная ошибка: {str(e)}")

traceback.print_exc()

finally:

input("Нажмите Enter для закрытия...")

if name == "__main__":

main()



вот код что делать когда запускаю открывается командная строка на секунду и все если можно дайте исправленую версию

По дате
По рейтингу
Аватар пользователя
Мыслитель
1мес
Изменено
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
import time
import pyautogui
import keyboard
import ctypes
import sys
import traceback

# Проверка прав администратора
def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if not is_admin():
    print("Запуск с правами администратора...")
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
    sys.exit()

# Координаты областей (3x3 сетка)
MATERIALS_REGION = (594, 590, 1329, 832)   # Область с материалами
TARGET_REGION = (994, 124, 1345, 487)      # Целевая область
START_BUTTON_REGION = (574, 866, 1342, 1000) # Кнопка "Старт"

def calculate_positions(region):
    """Рассчитывает 9 позиций в указанной области (3x3 сетка)"""
    x1, y1, x2, y2 = region
    width = x2 - x1
    height = y2 - y1
    
    positions = []
    for i in range(3):
        for j in range(3):
            # Исправлено: добавлены знаки умножения (*)
            x = x1 + (width * (2 * i + 1)) // 6
            y = y1 + (height * (2 * j + 1)) // 6
            positions.append((int(x), int(y)))
    return positions

def drag_items():
    """Перетаскивание элементов с зажатием ЛКМ"""
    try:
        materials = calculate_positions(MATERIALS_REGION)
        targets = calculate_positions(TARGET_REGION)
        
        for src, dst in zip(materials, targets):
            pyautogui.moveTo(src)
            pyautogui.mouseDown()
            time.sleep(0.2)
            pyautogui.moveTo(dst, duration=0.3)
            time.sleep(0.1)
            pyautogui.mouseUp()
            time.sleep(0.15)
    except Exception as e:
        print(f"Ошибка в drag_items: {str(e)}")
        traceback.print_exc()

def click_start():
    """Нажатие на кнопку старт"""
    try:
        x1, y1, x2, y2 = START_BUTTON_REGION
        pyautogui.click((x1+x2)//2, (y1+y2)//2)
    except Exception as e:
        print(f"Ошибка в click_start: {str(e)}")
        traceback.print_exc()

def main():
    try:
        print("Бот активирован. Для запуска используйте Alt+1")
        keyboard.add_hotkey('alt+1', lambda: [
            print("Начало операции..."),
            drag_items(),
            click_start(),
            print("Операция завершена!")
        ])
        while True:
            time.sleep(1)
    except Exception as e:
        print(f"Основная ошибка: {str(e)}")
        traceback.print_exc()
    finally:
        input("Нажмите Enter для закрытия...")

# Исправлено: добавлены двойные подчеркивания
if __name__ == "__main__":
    main()

Открывать от Имени Администратора!