-
Notifications
You must be signed in to change notification settings - Fork 317
Closed
Description
Last 35 Keys:
UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow UpArrow
Exception:
System.ArgumentOutOfRangeException: The value must be greater than or equal to zero and less than the console's buffer size in that dimension.
Parameter name: top
Actual value was -6.
at System.Console.SetCursorPosition(Int32 left, Int32 top)
at Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)
at Microsoft.PowerShell.PSConsoleReadLine.ForceRender()
at Microsoft.PowerShell.PSConsoleReadLine.HistoryRecall(Int32 direction)
at Microsoft.PowerShell.PSConsoleReadLine.PreviousHistory(Nullable`1 key, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(ConsoleKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)
at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics)
-----------------------------------------------------------------------# Define the path for the log file where errors and key presses will be recorded
$logFile = "C:\Users\$env:USERNAME\Documents\PowerShellKeyLog.txt"
# Initialize a list to store key presses
$history = @()
# Function to log the keys
function Log-Keys {
param (
[string]$key
)
# Add the key to history
$history += $key
# Keep only the last 35 keys
if ($history.Count -gt 35) {
$history = $history[-35..-1]
}
# Log the keys to the console
Write-Host "Last 35 Keys: $($history -join ' ')"
}
# Function to log exceptions
function Log-Exception {
param (
[string]$message
)
# Log exception to the file with a timestamp
$timestamp = Get-Date
Add-Content -Path $logFile -Value "$timestamp - ERROR: $message"
}
# Start the key logging process
try {
while ($true) {
# Read key input from the user
$key = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Log-Keys -key $key.Character
}
} catch {
# Catch any exceptions and log them
Log-Exception -message $_.Exception.Message
}Metadata
Metadata
Assignees
Labels
No labels
