#経緯
・会社でtemasを使っている。PC操作が15分以上ないとステータスが退席中になってしまう。それは困る。
・たまには休憩したい時だってあるよね。
・とりあえず画面でマウス操作はできたけど、色々バグあるかも。
・プログラミング初心者なので色々うまくいかない。助けて偉い人。
ちなみにスクリプトでマウスを動かしてもteamsのステータスは退席中になってました。無念・・・。
##実物
開始ボタンを押したら、
1.指定時間分だけマウスがランダムに移動します。
2.メモ帳を開いて適当な文字列をキーボード入力します。(キーボード監視対策。メンテ中)
3.最新ニュースを取得します。(通信量監視対策。メンテ中)
##コード
working.py
import tkinter as tk
import pyautogui as pgui
import random
import datetime
import time
import subprocess
import string
import requests
class Application(tk.Frame):
def __init__(self, master):
super().__init__(master)
master.geometry("230x130")
master.title("Working!")
self.create_widgets()
def create_widgets(self):
self.grid(column=0, row=0, sticky=tk.NSEW, padx=5, pady=5)
self.time_label = tk.Label(self, text="時間指定(分)").grid(column=0, row=0, pady=10)
self.time_box = tk.Entry(self)
self.time_box.insert(0, '60')
self.time_box.grid(column=1, row=0, sticky=tk.EW, padx=3)
self.work_label = tk.Label(self, text="今日の仕事").grid(column=0, row=1, pady=10)
self.status = tk.Label(self, text="今から本気出す")
self.status.grid(column=1, row=1, sticky=tk.EW, padx=3)
self.start_btn = tk.Button(self, text="開始", command=self.we_love_work).grid(column=1, row=2)
#ボタンアクション
def we_love_work(self):
#action_flg = random.randint(1, 3)
action_flg = 1
self.status.config(text="マウスいじいじ") #更新してくれない
time_box_value = self.time_box.get()
end_time = datetime.datetime.now() + datetime.timedelta(minutes=int(time_box_value))
while True:
if datetime.datetime.now() >= end_time:
break
if action_flg == 1:
self.do_mouse()
elif action_flg == 2:
self.do_keyboard()
elif action_flg == 3:
self.do_news()
def do_mouse(self):
window_x = 1366
window_y = 768
for i in range(50):
point_x = random.randrange(0, window_x)
point_y = random.randrange(0, window_y)
pgui.moveTo(point_x, point_y, duration=1)
time.sleep(3)
def do_keyboard(self):
#キーボード操作はできるがメモにうまく書けない
process = subprocess.Popen(r'C:\Windows\System32\notepad.exe')
pgui.click(50, 50)
for i in range(10):
pgui.typewrite(self.random_string(100))
pgui.typewrite('\r\n')
time.sleep(3)
process.kill()
def do_news(self):
keyword = "最新"
url = 'https://news.google.com/search'
params = {'hl': 'ja', 'gl': 'JP', 'ceid': 'JP:ja', 'q': keyword}
res = requests.get(url, params=params)
print(res.text)
time.sleep(60 * 3) #適度に間隔あけた方がいいかも?
def random_string(n):
return ''.join(random.choices(string.ascii_letters + string.digits, k=n))
def main():
win = tk.Tk()
app = Application(master=win)
app.mainloop()
if __name__ == "__main__":
main()