Вопрос Нужен совет по созданию автовхода в стим

Новичок
Статус
Оффлайн
Регистрация
17 Дек 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Господа, товарищи здравствуйте!
Я говно кодер (как мне это грустно не было бы). Который начал заниматься этим всем не давно (пол года).
У меня стояла задача написать ПО для авто входа в стим. С этой задачей я справился и теперь я пришел советоваться и получать советы.
Это все нужно для моего развлечения в виде Vertigo Boost (так сказать, люблю, когда в меня входят инородные предметы).
Это моя "панель" (кто в теме тот поймет).

Вопросы:

Как можно было бы решить данную задачу лучше ?
*На каком языке лучше реализовать данную задачу.
*Какие библиотеки можно использовать.

Как работает SAM (я знаю что это c#) именно момент ввода логина и пароля?
Пожалуйста, авторизуйтесь для просмотра ссылки.


Как работает Панель для КСГО?
Ссылка на панель Recherd
Другая панель

Это те вопросы, которые гложат мою глупую голову последнее время (месяца 2-3).

Буду премного благодарен за ответы

Мой говно код:
Немного по коду:

Умоляю не говорить о том что код написан через жопу не реализация ( я сам знаю, что писал через костыли и руки мне надо оторвать)

Реализация с помощью PyAutoGUI (основной инструмент)

Открытие много окон происходит с помощью Avast Sandbox

Дополнение по коду файлы для распознавания :
Пожалуйста, авторизуйтесь для просмотра ссылки.


Python:
import pyautogui, time, subprocess, json, sys

def login():
 
    with open('res/accountsUpgrade.data', 'r') as ac:
        accounts = json.load(ac)
        b = input("Enter your id ")
        credentials = accounts.get(b)
    ac.close()

    pyautogui.FAILSAFE = True
    # open steam
    path = ['F:\Program Files (x86)\Steam\steam.exe']
    run_prog = subprocess.Popen(path)
    time.sleep(5)

    while True:
        x, y = pyautogui.locateCenterOnScreen('res/log.png')
        x += 300
        pyautogui.click(x, y)
        pyautogui.doubleClick(x, y)
        pyautogui.hotkey('delete')
        pyautogui.typewrite(credentials[0]) #write login

        x, y = pyautogui.locateCenterOnScreen('res/pass.png')
        x += 300
        pyautogui.moveTo(x, y)
        pyautogui.click()
        pyautogui.typewrite(credentials[1])
        pyautogui.hotkey('enter') # write password

        break

def preparation():
    try:
        x, y = pyautogui.locateCenterOnScreen('res/friendsBar.png')
        x += 24
        y -= 22
        pyautogui.moveTo(x, y)  # close friends bar
        pyautogui.click()
    except:
        pass

    try:
        x, y = pyautogui.locateCenterOnScreen('res/errorSteam.png')
        x += 434
        y += 100
        pyautogui.moveTo(x, y)
        pyautogui.click()  # close error steam
    except:
        pass

    try:
        x, y = pyautogui.locateCenterOnScreen('res/news.png')
        x += 637
        pyautogui.moveTo(x, y)
        pyautogui.click() # close news
        time.sleep(2)
    except:
        pass

    try:
        x, y = pyautogui.locateCenterOnScreen('res/lib.png')
        pyautogui.moveTo(x, y)
        pyautogui.click()   # open lib
    except:
        pass
    try:
        x, y = pyautogui.locateCenterOnScreen('res/csgo.png')
        pyautogui.moveTo(x, y)
        time.sleep(1)
        pyautogui.click()  # go to setings
        pyautogui.rightClick()
        x += 20
        y += 130
        pyautogui.moveTo(x, y)
        pyautogui.click()
    except:
        pass
        '''x, y = pyautogui.locateCenterOnScreen('res/csgo2.png')
        pyautogui.moveTo(x, y)
        time.sleep(1)
        pyautogui.click()
        pyautogui.rightClick()'''

    time.sleep(5)
    x, y = pyautogui.locateCenterOnScreen('res/param.png')
    x += 473
    y += 419
    pyautogui.moveTo(x, y)
    pyautogui.click()
    pyautogui.doubleClick()
    pyautogui.hotkey('delete')
    pyautogui.typewrite('-window -w 640 -h 480 -novid -nosound -console')

    x, y = pyautogui.locateCenterOnScreen('res/exit.png')
    pyautogui.moveTo(x, y)
    pyautogui.click()   # close setings

    time.sleep(1)
    x, y = pyautogui.locateCenterOnScreen('res/play.png')
    pyautogui.moveTo(x, y)
    pyautogui.click()   # start csgo

    time.sleep(1)
    x, y = pyautogui.locateCenterOnScreen('res/post.png')
    x += 35
    pyautogui.moveTo(x, y) # roll up steam
    pyautogui.click()

def inCsgo():

    x, y = pyautogui.locateCenterOnScreen('res/in csgo/send.png')
    x -= 52
    pyautogui.moveTo(x, y)
    pyautogui.click()
    pyautogui.typewrite('mm_dedicated_search_maxping 350; +duck; fps_max 60; fps_max_menu 60; m_rawinput 0')
    pyautogui.hotkey('enter')
    x, y = pyautogui.locateCenterOnScreen('res/in csgo/closeconsel.png')
    pyautogui.moveTo(x, y)
    pyautogui.click()

    try:
        x, y = pyautogui.locateCenterOnScreen('res/in csgo/intro.png')
        pyautogui.moveTo(x, y)
        pyautogui.click()
        x += 181
    except:
        pass

    x, y = pyautogui.locateCenterOnScreen('res/in csgo/closeBaner.png')
    pyautogui.moveTo(x, y)
    pyautogui.click()

login()

a = input('Сan I continue? (Y/N)')
if a == "y" or a == "Y":
    preparation()
else:
    sys.exit()
 
Последнее редактирование модератором:
std::X$$V::Z::_Func_impl_no_alloc
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2019
Сообщения
389
Реакции[?]
103
Поинты[?]
1K
Q: Как работает SAM (я знаю что это c#) именно момент ввода логина и пароля?
A: Там ставится хук на нажатия внутри стима

Q: Как можно было бы решить данную задачу лучше ?
*На каком языке лучше реализовать данную задачу.
*Какие библиотеки можно использовать.
A: 1) Надо долго думать и планировать, а мне лень
2) C#
3) Стандартные, но можешь что-нибудь для работы с памятью взять
 
Новичок
Статус
Оффлайн
Регистрация
17 Дек 2020
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Q: Как работает SAM (я знаю что это c#) именно момент ввода логина и пароля?
A: Там ставится хук на нажатия внутри стима

Q: Как можно было бы решить данную задачу лучше ?
*На каком языке лучше реализовать данную задачу.
*Какие библиотеки можно использовать.
A: 1) Надо долго думать и планировать, а мне лень
2) C#
3) Стандартные, но можешь что-нибудь для работы с памятью взять
Спасибо, SaceiLaks! Помог, а точнее внес ясность.

Можешь подсказать пособие или гайд ( на английском или русском ) По хукам внутри стим, как это все работает. Я уже просмотрел тонну инфы по этому всему, но нужного ответа я не нашел.

Заранее спасибо :)
 
std::X$$V::Z::_Func_impl_no_alloc
Пользователь
Статус
Оффлайн
Регистрация
30 Мар 2019
Сообщения
389
Реакции[?]
103
Поинты[?]
1K
Спасибо, SaceiLaks! Помог, а точнее внес ясность.

Можешь подсказать пособие или гайд ( на английском или русском ) По хукам внутри стим, как это все работает. Я уже просмотрел тонну инфы по этому всему, но нужного ответа я не нашел.

Заранее спасибо :)
Пожалуйста, авторизуйтесь для просмотра ссылки.
. Разбирайся. С начала разберись что такое хуки вообще, и как они работают

P.s в SAM используется WinAPI для хука функции WinAPI (wndproc вроде).
 
Сверху Снизу