試したこと
ゲーム画面がアクティブになってからキー入力「1」をしたかった
python
1import pyautogui 2from win32gui import GetWindowText, GetForegroundWindow 3 4while True: 5 if GetWindowText(GetForegroundWindow()) == "ゲーム名": 6 pyautogui.press("1")
試したゲーム名
・セガNET麻雀MJ
・Minecraft
試行結果
エラーなし無反応(キー入力無し)
原因調べた結果
おそらくゲーム自体にキーボードからの手入力と、プログラムコード操作の違いを判別している?
その他試したこと
ゲームウインドウがアクティブの時
pyautogui.position()はポジションを取得しており正常に動作している。
pyautogui.moveTo(x,y)や
pyautogui.press("キー"各種)のゲーム操作に関する部分は動作しない。
追記(原因予測と試行中に起こった事象)
ゲーム画面で動作しない原因が
・A[キーボード直接手入力]
・B[pyautogui.press()でのコード入力]
の違いから起こるものと考えたのですが、それを確かめるために
キーボード直接手入力とpyautogui.press()でのコード入力の違いを検知できる方法はありますでしょうか?
という質問をさせていただきAとBで違いがあることを明確にできました。
【新たに表れた問題点】
AとBの違いを検知している時に、起こった事象なのですが
python
1import keyboard 2while True: 3 if keyboard.is_pressed("esc"): 4 break 5 # aが押されるまで待つ。 6 keyboard.wait("a") 7 print("ハードウェアキーボードの'a'が押下されました。")
上記の質問で教えていただいたコードなのですが、
ゲーム画面がアクティブの時だけキーボード直接手入力が検知できない
ということが起こりました。単に「仮想キーまたは直接キー」の違いだけではない様です。
改善方法はありますでしょうか?
ご教授よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。