From aee799326e671abf5e5af6b19b1c52aae9ee1952 Mon Sep 17 00:00:00 2001 From: bschaper Date: Mon, 27 Jan 2025 16:04:48 -0600 Subject: [PATCH] Added Screenshots --- Login/Run-Screen.ps1 | 75 ++++++++++++++++++++++++++++++++++++++++++++ TCSE-Login.bat | 6 +++- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 Login/Run-Screen.ps1 diff --git a/Login/Run-Screen.ps1 b/Login/Run-Screen.ps1 new file mode 100644 index 0000000..45adceb --- /dev/null +++ b/Login/Run-Screen.ps1 @@ -0,0 +1,75 @@ +Add-Type @" +using System; +using System.Runtime.InteropServices; + +public class ScreenCapture { + [DllImport("user32.dll")] + public static extern IntPtr GetDC(IntPtr hwnd); + + [DllImport("gdi32.dll")] + public static extern int GetDeviceCaps(IntPtr hdc, int nIndex); + + [DllImport("user32.dll")] + public static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc); + + public static int GetScreenWidth() { + IntPtr desktop = GetDC(IntPtr.Zero); + int width = GetDeviceCaps(desktop, 118); + ReleaseDC(IntPtr.Zero, desktop); + return width; + } + + public static int GetScreenHeight() { + IntPtr desktop = GetDC(IntPtr.Zero); + int height = GetDeviceCaps(desktop, 117); + ReleaseDC(IntPtr.Zero, desktop); + return height; + } +} +"@ + +Add-Type -AssemblyName System.Windows.Forms +Add-Type -AssemblyName System.Drawing + +function Take-FullScreenshot { + # Create directory if it doesn't exist + $dirPath = "C:\Scripts\Screens" + if (-not (Test-Path $dirPath)) { + New-Item -ItemType Directory -Path $dirPath -Force | Out-Null + } + + # Clean up any existing screenshots in the directory + Get-ChildItem -Path $dirPath -Filter "*.png" | Remove-Item -Force + + # Get timestamp and set output path + $timestamp = Get-Date -Format "yyyy-MM-dd_HH-mm-ss" + $outputPath = Join-Path $dirPath "screen_$timestamp.png" + + # Get actual screen resolution + $width = [ScreenCapture]::GetScreenWidth() + $height = [ScreenCapture]::GetScreenHeight() + + $bitmap = New-Object System.Drawing.Bitmap($width, $height) + $graphics = [System.Drawing.Graphics]::FromImage($bitmap) + + # Set high quality + $graphics.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic + $graphics.PixelOffsetMode = [System.Drawing.Drawing2D.PixelOffsetMode]::HighQuality + $graphics.SmoothingMode = [System.Drawing.Drawing2D.SmoothingMode]::HighQuality + + # Capture screen + $graphics.CopyFromScreen(0, 0, 0, 0, $bitmap.Size) + + # Save screenshot + $bitmap.Save($outputPath, [System.Drawing.Imaging.ImageFormat]::Png) + + $graphics.Dispose() + $bitmap.Dispose() +} + +while ($true) { + # Run the screenshot function + Take-FullScreenshot + # Wait 5 minutes + Start-Sleep -Seconds 300 +} \ No newline at end of file diff --git a/TCSE-Login.bat b/TCSE-Login.bat index d1dfd6a..2acaeeb 100644 --- a/TCSE-Login.bat +++ b/TCSE-Login.bat @@ -36,6 +36,10 @@ powershell -ExecutionPolicy Bypass -File "C:\Scripts\Login\DefaultApp-ImageGlass :: Run Debloat Script powershell -ExecutionPolicy Bypass -File "C:\Scripts\Software\Win11Debloat\Win11Debloat.ps1" -Silent -RemoveW11Outlook -DisableTelemetry -DisableBing -DisableSuggestions -DisableLockscreenTips -ShowKnownFileExt +:: Start Reoccurring Screenshot +echo Running Screenshots... >> "%LOGFILE%" +powershell -ExecutionPolicy Bypass -File "C:\Scripts\Login\Run-Screen.ps1" + :: Disable App Location Request Notification echo Disable App Location Request Notification... >> "%LOGFILE%" powershell -ExecutionPolicy Bypass -File "C:\Scripts\Login\Disable-AppLocationNotify.ps1" @@ -63,4 +67,4 @@ echo Uninstall OneDrive... >> "%LOGFILE%" echo Script completed at %DATE% %TIME% >> "%LOGFILE%" echo Log file created at: %LOGFILE% -endlocal \ No newline at end of file +endlocal