Screenshots¶
Skippy's PowerShell toolkit includes advanced screenshot capabilities for multi-monitor setups, with automatic scaling to meet AI vision model requirements.
Quick Commands¶
# Import the toolkit
Import-Module C:\Users\ejb71\SkippyBuddy\tools\skippy-tools.ps1
# Primary monitor (default)
Take-Screenshot
# All monitors
Take-Screenshot -AllMonitors
# Specific monitor
Take-Screenshot -Monitor Left
Take-Screenshot -Monitor Right
# Custom scale
Take-Screenshot -Scale 0.5
Screenshot Functions¶
Take-Screenshot¶
Capture the primary monitor or specific monitor.
Parameters:
| Parameter | Description | Default |
|---|---|---|
-Scale |
Scale factor (0.1 to 1.0) | 0.4 (all), 0.5 (single) |
-Path |
Output file path | temp/screenshot_<timestamp>.png |
-AllMonitors |
Capture entire virtual screen | false |
-Monitor |
Specific monitor name | (primary) |
Examples:
# Basic screenshot
Take-Screenshot
# Half-size screenshot
Take-Screenshot -Scale 0.5
# All monitors at 30% scale
Take-Screenshot -AllMonitors -Scale 0.3
# Left monitor only
Take-Screenshot -Monitor Left -Scale 0.6
# Custom output path
Take-Screenshot -Path "C:\Screenshots\capture.png"
Output:
Path : C:\Users\ejb71\SkippyBuddy\temp\screenshot_20260131_143022.png
LatestPath : C:\Users\ejb71\SkippyBuddy\temp\latest_screenshot.png
Size : 245 KB
Resolution : 1024x576
Timestamp : 2026-01-31 14:30:22
Take-ScreenshotAllMonitors¶
Capture the entire virtual screen (all monitors combined).
Output Includes:
Path : temp/screenshot_all_20260131_143022.png
LatestPath : temp/latest_screenshot_all.png
Size : 456 KB
SizeMB : 0.45
OriginalResolution : 5120x1440
ScaledResolution : 2048x576
VirtualScreenOrigin : (-2560, 0)
Warning : (if > 2MB)
File Size Limit
WhatsApp has a 2MB image limit. If the screenshot exceeds this, you'll see a warning. Reduce scale factor.
Take-ScreenshotMonitor¶
Capture a specific monitor by name or number.
Monitor Names:
| Name | Description | Position |
|---|---|---|
Left or Secondary or 2 |
Left monitor (DISPLAY2) | (-2560, 0) |
Right or Primary or 1 |
Right monitor (DISPLAY1) | (0, 0) |
Example:
# Capture left monitor
Take-ScreenshotMonitor -Monitor Left
# Capture right (primary) at 60% scale
Take-ScreenshotMonitor -Monitor Right -Scale 0.6
Get-MonitorInfo¶
Get detailed information about connected monitors.
Output:
VirtualScreen : @{Position=(-2560, 0); Size=5120x1440; Left=-2560; Top=0; Right=2560; Bottom=1440}
MonitorCount : 2
Monitors : {
@{DeviceName=\\.\DISPLAY2; Primary=False; Position=(-2560, 0); Resolution=2560x1440}
@{DeviceName=\\.\DISPLAY1; Primary=True; Position=(0, 0); Resolution=2560x1440}
}
Get-ScreenInfo¶
Simple screen information listing.
Output:
DeviceName Primary Resolution WorkingArea
---------- ------- ---------- -----------
\\.\DISPLAY2 False 2560x1440 2560x1400
\\.\DISPLAY1 True 2560x1440 2560x1400
Multi-Monitor Setup¶
Your Configuration¶
┌─────────────────┬─────────────────┐
│ │ │
│ Left/DISPLAY2 │ Right/DISPLAY1 │
│ (-2560, 0) │ (0, 0) │
│ 2560x1440 │ 2560x1440 │
│ Secondary │ Primary │
│ │ │
└─────────────────┴─────────────────┘
Virtual Screen: 5120x1440
Virtual Screen¶
Windows combines all monitors into a "virtual screen":
- Origin: Top-left of leftmost monitor
- Size: Total width × max height
- Coordinates: Monitors left of primary have negative X
Scale Guidelines¶
For AI Vision¶
Vision models have size limits. Recommended scales:
| Scenario | Scale | Approx Size |
|---|---|---|
| Single 2560x1440 | 0.5 | 1280x720, ~300KB |
| Single 2560x1440 | 0.4 | 1024x576, ~200KB |
| Dual 5120x1440 | 0.3 | 1536x432, ~250KB |
| Dual 5120x1440 | 0.4 | 2048x576, ~400KB |
For WhatsApp¶
Maximum 2MB. Use:
- Single monitor: Scale 0.5 or less
- All monitors: Scale 0.3 or less
For Maximum Detail¶
Use scale 1.0 but be aware of file sizes:
- Single 2560x1440 at 100%: ~3-5MB
- Dual monitors at 100%: ~8-12MB
File Locations¶
Output Files¶
| Type | Location |
|---|---|
| Timestamped | temp/screenshot_<timestamp>.png |
| Latest single | temp/latest_screenshot.png |
| Latest all | temp/latest_screenshot_all.png |
| Latest left | temp/latest_screenshot_left.png |
| Latest right | temp/latest_screenshot_right.png |
Temp Directory¶
Integration with Chat¶
Asking About Screenshots¶
You: Take a screenshot and tell me what's on my screen
Skippy: [Uses Take-Screenshot command, then analyzes image]
Manual Screenshot + Paste¶
- Take screenshot with
Take-Screenshot - Open the file
- Copy to clipboard
- Paste (Ctrl+V) into Skippy
Automatic Analysis¶
Screenshots saved to latest_screenshot.png can be referenced:
Troubleshooting¶
Black Screenshot¶
Cause: Some apps block screen capture
Fix:
- Disable hardware acceleration in the app
- Use
-AllMonitorsflag - Try different monitor
Wrong Monitor Captured¶
Cause: Monitor configuration mismatch
Fix:
File Too Large¶
Cause: Scale too high for multi-monitor
Fix:
- Reduce scale:
-Scale 0.3 - Capture single monitor instead of all
- Use JPEG instead (modify script)
Capture Fails Silently¶
Cause: Missing .NET assemblies
Fix:
# Manually add assembly
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
Advanced: Custom Scripts¶
Timed Screenshots¶
# Screenshot every 5 minutes
while ($true) {
Take-Screenshot -AllMonitors -Scale 0.3
Start-Sleep -Seconds 300
}