@PosikGG

Почему игра не видит нажатия клавиш?

Суть в том, что я написал программу для автоматизации. В игре есть тренажёр, но суть не в этом.
Вся загвоздка в том, что программа работает, при открытии блокнота она нажимает нужные клавиши, а когда я открываю игру, она как будто не регистрирует этих нажатий. Как это исправить?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@PosikGG Автор вопроса
Код программы вот:
import cv2
import difflib
import time
from PIL import ImageGrab
from ahk import AHK

user=True
ahk = AHK()

def CalcImageHash(FileName):
    image = cv2.imread(FileName) 
    resized = cv2.resize(image, (8,8), interpolation = cv2.INTER_AREA) 
    gray_image = cv2.cvtColor(resized, cv2.COLOR_BGR2GRAY) 
    avg=gray_image.mean() 
    ret, threshold_image = cv2.threshold(gray_image, avg, 255, 0) 
    
    
    _hash=""
    for x in range(8):
        for y in range(8):
            val=threshold_image[x,y]
            if val==255:
                _hash=_hash+"1"
            else:
                _hash=_hash+"0"
            
    return _hash

def CompareHash(hash1,hash2):
    l=len(hash1)
    i=0
    count=0
    while i<l:
        if hash1[i]!=hash2[i]:
            count=count+1
        i=i+1
    return count
        
while user:
    time.sleep(2)
    
    box1=(1049,884,1253,1016)
    ImageGrab.grab(box1).save('box1.png')
    
    hash1=CalcImageHash("box1.png")
    hash2=CalcImageHash("q.png")
    hash3=CalcImageHash("w.png")
    hash4=CalcImageHash("e.png")
    hash5=CalcImageHash("a.png")
    hash6=CalcImageHash("s.png")
    
    CompareHash(hash1, hash2)
    print(CompareHash(hash1, hash2))
    
    if CompareHash(hash1, hash2) <=4:
        print("Q")
        ahk.key_press('q')
    else:
        CompareHash(hash1, hash3)
        if CompareHash(hash1, hash3) <=4:
            print("W")
            ahk.key_press('w')   
        else:
            CompareHash(hash1, hash4)
            if CompareHash(hash1, hash4) <=4:
                print("E")
                ahk.key_press('e')     
            else:
                CompareHash(hash1, hash5)
                if CompareHash(hash1, hash5) <=4:
                    print("A")
                    ahk.key_press('a')
                else:
                    CompareHash(hash1, hash6)
                    if CompareHash(hash1, hash6) <=4:
                        print("S")
                        ahk.key_press('s')
                    else:
                        print("D")
                        ahk.key_press('d')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы