私はビデオゲーム(Guild Wars 2)に文字列を入力するスクリプトを取得しようとしています。主に私はpyautoguiを使用しています、そして、それは大部分のためにうまくいきます。私の問題は、ゲームに「入力」を認識させることができないようです。たとえば、コードがある場合:ゲームで「入力」キーをシミュレーションするPython
import pyautogui, time
time.sleep(2) #to allow me to have time to switch windows
pyautogui.press('enter')
pyautogui.typewrite("This is a test")
pyautogui.press('enter')
2つの「プレス入力」機能は、テキストを開いて送信しません。しかし、私が手動でEnterキーを押すと、3行目のタイプはうまく動作します。
また、press( 'enter')をkeyDownに置き換えてkeyUpに置き換えようとしましたが、結果はまだありません。
私は、F10をヒットしたときに回避策を作りました。そして、F10がヒットしたときに別のAutohotkeyスクリプトが入力されましたが、これは理想とはかけ離れています。提案はありますか?
コメントからの補足:このスクリプト自体は、メモ帳などの他のプログラムで正常に動作します。それはゲームクライアントのために排他的に失敗するようです。
pyautoguiを使用しているときにEnterキーのための他の受け入れ可能なエントリである 'return''または' '\ n''を試してみてください。 '' enter ''がうまくいかず、問題が別の場所にあるのかもしれません。 –
returnまたは\ nもうまくいきませんでした。私はまた、このコードはうまく動作することを指定する必要があります、例えば、メモ帳+ +。それはエンターキーのためにPythonの入力を認識したくないゲームクライアントのようです。 – Ronan
まず、あなたはどんなゲームであるべきかを言うべきです。ゲームは、自分のメソッドを使用してシステムからキーを読み取り、異なる方法でENTERを認識することがあります。 'typewrite()'はこのゲームで動作しますか? 'typewrite(" \ n ")'はどうですか? – furas