たとえば、:Pythonモジュール/スクリプト内からxdotoolを使用するにはどうしたらいいですか?私はのようなものを使用したい場合
は945 132
が特定の場所にマウスを移動し、クリックするために1
をクリックしxdotool MOUSEMOVE xdotool。 ubuntuでは、これらのコマンドをターミナルに直接入力するだけで、目的の効果を得ることができますが、それらをPythonスクリプトの中に入れたいと思います。前もって感謝します!
たとえば、:Pythonモジュール/スクリプト内からxdotoolを使用するにはどうしたらいいですか?私はのようなものを使用したい場合
は945 132
が特定の場所にマウスを移動し、クリックするために1
をクリックしxdotool MOUSEMOVE xdotool。 ubuntuでは、これらのコマンドをターミナルに直接入力するだけで、目的の効果を得ることができますが、それらをPythonスクリプトの中に入れたいと思います。前もって感謝します!
import subprocess
subprocess.call(["xdotool", "mousemove", "945", "132"])
などsubprocess
のドキュメントを参照してください。
は、2015年の時点で、あなたはまた、このPythonパッケージを使用することができます https://github.com/rshk/python-libxdo
私はしばらくの間、SHとos.systemでxdotool使っていたのが、サブプロセスを使用するために、すべてを更新することにしました。私はいくつかの小さな不具合に遭遇し、グーグルでthe libxdo python module suggested by Simonが見つかりました。 Python3には小さな問題がありました。バイトストリングを使用しますが、変換は簡単で、古い2ステッププロセスよりもスムーズかつ確実に実行されます。
ここには、(ハッシュ・バングがあなたのpythonパスと一致する必要があることは明らかです)少しのコードがあります。 2つの関数は、Python 3のためのバイトコード(ascii)への変換を含みます。したがって、.encode()はPython 2のために中止することができます。
#!/home/john/anaconda3/bin/python3.6
import sys
from xdo import Xdo
from time import sleep
def sendkeys(*keys):
for k in keys: xdo.send_keysequence_window(0, k.encode())
def type(text):
xdo.enter_text_window(0, text.encode())
sleep(0.5)
xdo = Xdo()
# this updates a row in a spreadsheet with copies from prior row
# first check that this is the intended spreadsheet
if 'Trades' in xdo.get_window_name(xdo.get_active_window()).decode():
with open('my_data_file_name', 'r') as f:
trade = (f.readlines()[-int(sys.argv[1])])[:-1]
t = [s if s else '0' for s in trade.split('\t')]
type('\t'.join(t[:7]))
sendkeys('Tab', 'Up', 'ctrl+c', 'Down', 'ctrl+v', 'Right')
type(' ' + t[-3])
sendkeys('Tab')
type(t[-2])
sendkeys('Tab')
type(t[-1])
sendkeys('Tab', 'Up', 'ctrl+c', 'Down', 'ctrl+v', 'Right')
type('333')
sendkeys('Tab')
AWESOME !!どうもありがとう! :D – coffeeNcode