2016-11-15 9 views
2

私はビデオゲーム(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スクリプトが入力されましたが、これは理想とはかけ離れています。提案はありますか?

コメントからの補足:このスクリプト自体は、メモ帳などの他のプログラムで正常に動作します。それはゲームクライアントのために排他的に失敗するようです。

+1

pyautoguiを使用しているときにEnterキーのための他の受け入れ可能なエントリである 'return''または' '\ n''を試してみてください。 '' enter ''がうまくいかず、問題が別の場所にあるのかもしれません。 –

+0

returnまたは\ nもうまくいきませんでした。私はまた、このコードはうまく動作することを指定する必要があります、例えば、メモ帳+ +。それはエンターキーのためにPythonの入力を認識したくないゲームクライアントのようです。 – Ronan

+0

まず、あなたはどんなゲームであるべきかを言うべきです。ゲームは、自分のメソッドを使用してシステムからキーを読み取り、異なる方法でENTERを認識することがあります。 'typewrite()'はこのゲームで動作しますか? 'typewrite(" \ n ")'はどうですか? – furas

答えて

1

この投稿への道順を知りたい方。答えは、本質的には、ほとんどのゲームがキー押下をどのように解釈するかによって、このようにすることはできないということです。 Simulate Python keypresses for controlling a game

+0

あなたが見つけたことに従ってくれてありがとう、ありがとう。これが将来的にいくつかの人々を助けることができるかどうか確かめてください。 –

関連する問題