背景:友達は私がファイルを変更できますが、私は完全に真夜中を変更しました。友人へのマイクロ手紙が彼に残りを気にします恐れている場合、この時間。自動的にマイクロチャネル情報を送信するスクリプトを記述するためのPythonを使用することを決定し、自動的に次の日の朝に送信されます。
簡単なミッションステートメント:Pythonの自動化された手順、マイクロ文字をドラッグして、それを送信するための時間の午前6:00にfile.txtなどを使用。
0レディ
まず考慮すべきは、Pythonによるマウス操作をシミュレートする方法です。ここで私は店の周り:
モジュール | 出演者 | 最新のコミット |
---|---|---|
Pyuserinput | 903 | 2016年2月26日 |
マウス | 274 | 2020年1月2日 |
PyAutoGUI | 3600 | 2020年1月14日 |
比較の後、我々はPyAutoGUIを選びました。
Windowsの/ Macのインストール:
pip install pyautogui
クレソンのソースを加速することでConda仮想環境:
python -m pip install -i https://pypi.douban.com/simple/ pyautogui
座標を得るために1
あなたがファイルを送信したいものは、最初のファイルの座標を取得した後、マウスのドラッグをシミュレートする必要があります。
画面座標を取得するには、次のコードを使用することができます。
import pyautogui
import time
time.sleep(2)
print(pyautogui.position())
上記のプログラムは、ファイルの上にマウスにあなたを待って、2秒を一時停止します。2秒後、プログラムの意志出力スクリーン座標ファイル。私のテストでは、私はスクリーン座標の右上隅にファイルを置きます(1857, 31)
。
しかし、これやや少ない自動やって。
pyautoguiがより自動化された方法を提供pyautogui.locateOnScreen()
し、pyautogui.locateCenterOnScreen()
私たちがする必要があるfile.txt
座標以下のように、最初のショットで、私は、あまりありません覚えています。
この場合、スクリーンショットのファイルは、そうでない場合は、バックグラウンド文書が変更され、移動することはできません。したがって、可能好ましくはバックグラウンドのような小さなスクリーンショットのように次の
テーマ名の後、ディレクトリとパイソンに、このラインを置き換えることができます。
file_pos = pyautogui.locateCenterOnScreen('file.png')
画面上の画像の位置を覆わないとき、コードが実行されることに注意してください。
2アナログドラッグ
ここでやるから、ファイルにある(1857, 31)
マイクロレターボックスに座標ドラッグ。マイクロチャネルコードフレームを取得詳細には触れていない座標。パラメータは前記DragToドラッグ法は、使用されるduration
時間をドラッグするように設定されなければなりません。直接コードに。
import pyautogui
file_pos = pyautogui.locateCenterOnScreen('file.png')
wechat_pos = pyautogui.locateCenterOnScreen('wechat.png')
print(file_pos,wechat_pos)
pyautogui.moveTo(file_pos)
pyautogui.dragTo(wechat_pos, duration=0.5)
pyautogui.click(wechat_pos)
pyautogui.press('enter')
3タイミング
動作のタイミングはtarget_timeが最も近い秒までの時間を設定し、非常に簡単です。検出時間を提供することができる頻度time.sleep()
import datetime
import time
target_time = datetime.datetime(2020, 3, 18, 6, 0, 0)
current_time = datetime.datetime.now()
while current_time < target_time:
time_delta = target_time-current_time
minutes_delta = int(time_delta.seconds/60)
seconds_delta = time_delta.seconds - int(time_delta.seconds/60)*60
print("current time:{}, {}:{} left".format(current_time, minutes_delta, seconds_delta))
if current_time < target_time:
time.sleep(60)
current_time = datetime.datetime.now()
import pyautogui
file_pos = pyautogui.locateCenterOnScreen('file.png')
wechat_pos = pyautogui.locateCenterOnScreen('wechat.png')
print(file_pos,wechat_pos)
pyautogui.moveTo(file_pos)
pyautogui.dragTo(wechat_pos, duration=0.5)
pyautogui.click(wechat_pos)
pyautogui.press('enter')
4ノート
設定は定期的に長い後に送信された場合は、画面の自動ロック画面を防ぐことを忘れないでください!
その他5
いくつかのドラッグは、本明細書で、コピーして貼り付け、キーボードエミュレーションCtrl + C、Ctrl + V缶として、より簡単な操作の代わりに使用することができます。