I am looking for a way to use a hot key 's' to capture repeated screenshots. When the script originally runs, I do not want any screenshots being captured, but when I press 's' I want screenshots being recorded at a designated time interval. When I press 's' again I want the screenshots to stop being recorded. Here is my current script, I have been able to make this work when taking in a video and using Tkinter but in terms of screenshotting the screen based on a toggle switch, I have only gotten it to work when the script screenshots already. import os import numpy as np import cv2 from mss import mss from datetime import datetime import time def main(): capturing = False # Create output directory output_dir = "output" os.makedirs(output_dir, exist_ok=True) capture_number = 0 # Initialize screen capture with mss() as sct: monitor = sct.monitors[1] # Adjust the monitor index as needed interval = 0.1 # Capture interval (10 times per second) try: print("Press 's' to start/stop capturing screenshots...") while True: start_time = time.time() frame = np.array(sct.grab(monitor)) if capturing: name = os.path.join(output_dir, f"capture{capture_number}.png") cv2.imwrite(name, frame) # Check for key press to toggle capturing if cv2.waitKey(1) & 0xFF == ord('s'): capturing = not capturing # Sleep to maintain capture rate sleep_time = interval - (time.time() - start_time) if sleep_time > 0: time.sleep(sleep_time) capture_number +=1 except KeyboardInterrupt: pass if __name__ == '__main__': main() Continue reading...