2014-02-08 5 views
0

저는 파이썬과 pywin32 라이브러리를 사용하고 있습니다. 나는 완벽하게 예를 들어 Enter를 보내거나 파이어 폭스에 'a'라고 쓸 수 있습니다. 하지만 PC 게임으로이 작업을하려고하는데 게임과 같이 키 누르기를 감지하지 못합니다. PC 게임에 pywin32를 사용하여 키를 보내십시오.

import win32com.client as comclt 
wsh = comclt.Dispatch("WScript.Shell") 
wsh.AppActivate("pc game") 
wsh.SendKeys("{ENTER}") #doesn't detect this :S 

답변

1

대부분의 Windows 게임 키 입력을 읽기위한 다이렉트 X API를 사용하여 내 코드입니다, 그들은 단순히 키를 눌러 메시지의 종류를 무시합니다. 이들은 하드웨어와 직접 상호 작용합니다. 따라서 여러분의 코드는 Windows 게임의 99 %에서 작동하지 않습니다.

필자는 직접 드라이버를 작성하고 수동으로 누르는 것처럼 키 입력을 보내서이 작업을 수행 할 수 있습니다. 복잡하지만 불가능한 것은 아닙니다.

또한 원하는대로 달성하기위한 더 좋은 방법이 있다고 생각합니다. 대부분의 경우 키 스트로크를 보내면 깨끗한 해결책이 아닙니다 (특히 속임수를 쓰려고하는 경우).

희망이 있습니다.