#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# untitled.py
#
# 遊園地
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
#
#
import pyautogui
from time import sleep
from pynput.keyboard import Key, Listener
r=[]
R=[]
rR=[]
def on_press(key):
try:
r.append(key.char)
except AttributeError:
print(key)
def on_release(key):
R.append(key)
if key == Key.esc:
return False
# 押した時のみ
def When_pushed():
with Listener(on_press= on_press) as listener:listener.join()
# 離した時のみ
def When_released():
with Listener(on_release= on_release) as listener:listener.join()
# 押して離した時
def Pushed_away():
with Listener(on_press = on_press,on_release= on_release) as listener:listener.join()
#When_pushed()
# マウス
class Mouse_operation:
i=0
l=[] #マウス座標用
# 初期処理で現状の座標を追加
T=[list(pyautogui.position())]*2
# 終了ボタンが押されたら
def AAA():
Mouse_operation.i=1
# マウス移動の記録
def Move_mouse():
while Mouse_operation.i==0:
sleep(0.01)
Mouse_operation.T+=[list(pyautogui.position())]
# 前回の座標と更新された座標が同じ
if Mouse_operation.T[-2]==Mouse_operation.T[-1]:
pass
# 座標が違うならl配列に追加
else:
Mouse_operation.l+=[list(pyautogui.position())]
print(Mouse_operation.l[-1]) # 最新の座標を確認
# 終了
if Mouse_operation.i==1:
break
# マウスの再生
def Mouse_move_playback():
[pyautogui.moveTo(i[0], i[1], time) for i in l]
#Mouse_operation.Move_mouse()
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzogdXRmLTggLSotCiMKIyAgdW50aXRsZWQucHkKIyAgCiMgIOmBiuWckuWcsAojICAKIyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyAgCiMgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgIAojICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCiMgIE1BIDAyMTEwLTEzMDEsIFVTQS4KIyAgCiMgIAoKCgoKCgppbXBvcnQgcHlhdXRvZ3VpCmZyb20gdGltZSBpbXBvcnQgc2xlZXAKZnJvbSBweW5wdXQua2V5Ym9hcmQgaW1wb3J0IEtleSwgTGlzdGVuZXIKCgoKCnI9W10KUj1bXQpyUj1bXQoKZGVmIG9uX3ByZXNzKGtleSk6CiAgICB0cnk6CiAgICAgICAgci5hcHBlbmQoa2V5LmNoYXIpCiAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgcHJpbnQoa2V5KQoKCmRlZiBvbl9yZWxlYXNlKGtleSk6CiAgICBSLmFwcGVuZChrZXkpCiAgICBpZiBrZXkgPT0gS2V5LmVzYzoKICAgICAgICByZXR1cm4gRmFsc2UKCgojIOaKvOOBl+OBn+aZguOBruOBvwpkZWYgV2hlbl9wdXNoZWQoKToKCXdpdGggTGlzdGVuZXIob25fcHJlc3M9IG9uX3ByZXNzKSBhcyBsaXN0ZW5lcjpsaXN0ZW5lci5qb2luKCkKIyDpm6LjgZfjgZ/mmYLjga7jgb8KZGVmIFdoZW5fcmVsZWFzZWQoKToKCXdpdGggTGlzdGVuZXIob25fcmVsZWFzZT0gb25fcmVsZWFzZSkgYXMgbGlzdGVuZXI6bGlzdGVuZXIuam9pbigpCiMg5oq844GX44Gm6Zui44GX44Gf5pmCCmRlZiBQdXNoZWRfYXdheSgpOgoJd2l0aCBMaXN0ZW5lcihvbl9wcmVzcyA9IG9uX3ByZXNzLG9uX3JlbGVhc2U9IG9uX3JlbGVhc2UpIGFzIGxpc3RlbmVyOmxpc3RlbmVyLmpvaW4oKQoKCgoKI1doZW5fcHVzaGVkKCkKCgoKCgoKCiMg44Oe44Km44K5CmNsYXNzIE1vdXNlX29wZXJhdGlvbjoKCQoJaT0wCglsPVtdICPjg57jgqbjgrnluqfmqJnnlKgKCQoJIyDliJ3mnJ/lh6bnkIbjgafnj77nirbjga7luqfmqJnjgpLov73liqAKCVQ9W2xpc3QocHlhdXRvZ3VpLnBvc2l0aW9uKCkpXSoyCgkKCQoJIyDntYLkuobjg5zjgr/jg7PjgYzmirzjgZXjgozjgZ/jgokKCWRlZiBBQUEoKToKCQlNb3VzZV9vcGVyYXRpb24uaT0xCgkKCQoJIyDjg57jgqbjgrnnp7vli5Xjga7oqJjpjLIKCWRlZiBNb3ZlX21vdXNlKCk6CgkJd2hpbGUgTW91c2Vfb3BlcmF0aW9uLmk9PTA6CgkJCXNsZWVwKDAuMDEpCgkJCU1vdXNlX29wZXJhdGlvbi5UKz1bbGlzdChweWF1dG9ndWkucG9zaXRpb24oKSldCgkJCQoJCQkjIOWJjeWbnuOBruW6p+aomeOBqOabtOaWsOOBleOCjOOBn+W6p+aomeOBjOWQjOOBmAoJCQlpZiBNb3VzZV9vcGVyYXRpb24uVFstMl09PU1vdXNlX29wZXJhdGlvbi5UWy0xXToKCQkJCXBhc3MKCQkJIyDluqfmqJnjgYzpgZXjgYbjgarjgols6YWN5YiX44Gr6L+95YqgCgkJCWVsc2U6CgkJCQlNb3VzZV9vcGVyYXRpb24ubCs9W2xpc3QocHlhdXRvZ3VpLnBvc2l0aW9uKCkpXQoJCQkJcHJpbnQoTW91c2Vfb3BlcmF0aW9uLmxbLTFdKSAjIOacgOaWsOOBruW6p+aomeOCkueiuuiqjQoJCQkKCQkJIyDntYLkuoYKCQkJaWYgTW91c2Vfb3BlcmF0aW9uLmk9PTE6CgkJCQlicmVhawoJCgkjIOODnuOCpuOCueOBruWGjeeUnwoJZGVmIE1vdXNlX21vdmVfcGxheWJhY2soKToKCQlbcHlhdXRvZ3VpLm1vdmVUbyhpWzBdLCBpWzFdLCB0aW1lKSBmb3IgaSBpbiBsXQoKCgojTW91c2Vfb3BlcmF0aW9uLk1vdmVfbW91c2UoKQoKCg==