65 lines
1.8 KiB
Python
65 lines
1.8 KiB
Python
import tkinter as tk
|
|
from datetime import datetime
|
|
|
|
|
|
class LogWindow:
|
|
def __init__(self):
|
|
self.root = tk.Tk()
|
|
self.root.title('Screen Clicker')
|
|
self.root.geometry('420x220+0+0')
|
|
self.root.attributes('-topmost', True)
|
|
self.root.protocol('WM_DELETE_WINDOW', self.on_close)
|
|
|
|
self.running = True
|
|
self.screenshot_requested = False
|
|
self.capture_requested = False
|
|
|
|
self.text = tk.Text(
|
|
self.root, bg='#1a1a2e', fg='#e0e0e0',
|
|
font=('Consolas', 10), state='disabled', relief='flat'
|
|
)
|
|
self.text.pack(fill='both', expand=True)
|
|
|
|
controls = tk.Frame(self.root)
|
|
controls.pack(fill='x')
|
|
tk.Button(
|
|
controls,
|
|
text='From screenshot',
|
|
command=self.request_screenshot,
|
|
).pack(side='left', padx=4, pady=4)
|
|
tk.Button(
|
|
controls,
|
|
text='Capture screen',
|
|
command=self.request_capture,
|
|
).pack(side='left', padx=4, pady=4)
|
|
tk.Button(
|
|
controls,
|
|
text='Stop',
|
|
command=self.on_close,
|
|
).pack(side='right', padx=4, pady=4)
|
|
|
|
def log(self, msg):
|
|
ts = datetime.now().strftime('%H:%M:%S')
|
|
self.text.configure(state='normal')
|
|
self.text.insert('end', f'[{ts}] {msg}\n')
|
|
self.text.see('end')
|
|
self.text.configure(state='disabled')
|
|
try:
|
|
self.root.update()
|
|
except:
|
|
pass
|
|
|
|
def update(self):
|
|
if self.running:
|
|
self.root.update()
|
|
|
|
def request_screenshot(self):
|
|
self.screenshot_requested = True
|
|
|
|
def request_capture(self):
|
|
self.capture_requested = True
|
|
|
|
def on_close(self):
|
|
self.running = False
|
|
self.root.destroy()
|