mirror of
https://github.com/beigeworm/BadUSB-Files-For-FlipperZero.git
synced 2025-12-25 04:15:26 -08:00
175 lines
6.3 KiB
PowerShell
175 lines
6.3 KiB
PowerShell
$Import = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);';
|
|
add-type -name win -member $Import -namespace native;
|
|
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0);
|
|
|
|
Add-Type -AssemblyName System.Windows.Forms
|
|
$form = New-Object Windows.Forms.Form
|
|
$form.Text = " BeigeTools | Screen Recorder "
|
|
$form.Font = 'Microsoft Sans Serif,12,style=Bold'
|
|
$form.Size = New-Object Drawing.Size(350, 200)
|
|
$form.StartPosition = 'Manual'
|
|
$form.BackColor = [System.Drawing.Color]::Black
|
|
$form.ForeColor = [System.Drawing.Color]::White
|
|
$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedDialog
|
|
|
|
$Text = New-Object Windows.Forms.Label
|
|
$Text.Text = "Framerate"
|
|
$Text.AutoSize = $true
|
|
$Text.Font = 'Microsoft Sans Serif,10'
|
|
$Text.Location = New-Object System.Drawing.Point(15, 20)
|
|
$fps = New-Object Windows.Forms.Label
|
|
$fps.Text = "fps"
|
|
$fps.AutoSize = $true
|
|
$fps.Font = 'Microsoft Sans Serif,10'
|
|
$fps.Location = New-Object System.Drawing.Point(60, 40)
|
|
|
|
$frBox = New-Object System.Windows.Forms.TextBox
|
|
$frBox.Location = New-Object System.Drawing.Point(18, 40)
|
|
$frBox.BackColor = "#eeeeee"
|
|
$frBox.Width = 40
|
|
$frBox.Text = "25"
|
|
$frBox.Multiline = $false
|
|
$frBox.Font = 'Microsoft Sans Serif,8,style=Bold'
|
|
|
|
$Text2 = New-Object Windows.Forms.Label
|
|
$Text2.Text = "Record Time"
|
|
$Text2.Font = 'Microsoft Sans Serif,10'
|
|
$Text2.AutoSize = $true
|
|
$Text2.Location = New-Object System.Drawing.Point(120, 20)
|
|
$sec = New-Object Windows.Forms.Label
|
|
$sec.Text = "s"
|
|
$sec.AutoSize = $true
|
|
$sec.Font = 'Microsoft Sans Serif,10'
|
|
$sec.Location = New-Object System.Drawing.Point(165, 40)
|
|
|
|
$tBox = New-Object System.Windows.Forms.TextBox
|
|
$tBox.Location = New-Object System.Drawing.Point(123, 40)
|
|
$tBox.BackColor = "#eeeeee"
|
|
$tBox.Width = 40
|
|
$tBox.Text = "30"
|
|
$tBox.Multiline = $false
|
|
$tBox.Font = 'Microsoft Sans Serif,8,style=Bold'
|
|
|
|
$Text3 = New-Object Windows.Forms.Label
|
|
$Text3.Text = "Offset X"
|
|
$Text3.Font = 'Microsoft Sans Serif,10'
|
|
$Text3.AutoSize = $true
|
|
$Text3.Location = New-Object System.Drawing.Point(15, 70)
|
|
$ofx = New-Object Windows.Forms.Label
|
|
$ofx.Text = "px"
|
|
$ofx.AutoSize = $true
|
|
$ofx.Font = 'Microsoft Sans Serif,10'
|
|
$ofx.Location = New-Object System.Drawing.Point(60, 90)
|
|
|
|
$oxBox = New-Object System.Windows.Forms.TextBox
|
|
$oxBox.Location = New-Object System.Drawing.Point(18, 90)
|
|
$oxBox.BackColor = "#eeeeee"
|
|
$oxBox.Width = 40
|
|
$oxBox.Text = "0"
|
|
$oxBox.Multiline = $false
|
|
$oxBox.Font = 'Microsoft Sans Serif,8,style=Bold'
|
|
|
|
$Text4 = New-Object Windows.Forms.Label
|
|
$Text4.Text = "Offset Y"
|
|
$Text4.Font = 'Microsoft Sans Serif,10'
|
|
$Text4.AutoSize = $true
|
|
$Text4.Location = New-Object System.Drawing.Point(120, 70)
|
|
$ofy = New-Object Windows.Forms.Label
|
|
$ofy.Text = "px"
|
|
$ofy.AutoSize = $true
|
|
$ofy.Font = 'Microsoft Sans Serif,10'
|
|
$ofy.Location = New-Object System.Drawing.Point(165, 90)
|
|
|
|
$oyBox = New-Object System.Windows.Forms.TextBox
|
|
$oyBox.Location = New-Object System.Drawing.Point(123, 90)
|
|
$oyBox.BackColor = "#eeeeee"
|
|
$oyBox.Width = 40
|
|
$oyBox.Text = "0"
|
|
$oyBox.Multiline = $false
|
|
$oyBox.Font = 'Microsoft Sans Serif,8,style=Bold'
|
|
|
|
$Text5 = New-Object Windows.Forms.Label
|
|
$Text5.Text = "Video Size"
|
|
$Text5.Font = 'Microsoft Sans Serif,10'
|
|
$Text5.AutoSize = $true
|
|
$Text5.Location = New-Object System.Drawing.Point(15, 120)
|
|
|
|
$vsBox = New-Object System.Windows.Forms.TextBox
|
|
$vsBox.Location = New-Object System.Drawing.Point(18, 140)
|
|
$vsBox.BackColor = "#eeeeee"
|
|
$vsBox.Width = 140
|
|
$vsBox.Text = "1920x1080"
|
|
$vsBox.Multiline = $false
|
|
$vsBox.Font = 'Microsoft Sans Serif,8,style=Bold'
|
|
|
|
$Download = New-Object Windows.Forms.Button
|
|
$Download.Text = "Get ffmpeg.exe"
|
|
$Download.Width = 120
|
|
$Download.Height = 30
|
|
$Download.BackColor = [System.Drawing.Color]::White
|
|
$Download.ForeColor = [System.Drawing.Color]::Black
|
|
$Download.Location = New-Object System.Drawing.Point(210, 50)
|
|
$Download.Font = 'Microsoft Sans Serif,10,style=Bold'
|
|
|
|
$Check = New-Object Windows.Forms.Button
|
|
$Check.Text = "Check Files"
|
|
$Check.Width = 120
|
|
$Check.Height = 30
|
|
$Check.BackColor = [System.Drawing.Color]::White
|
|
$Check.ForeColor = [System.Drawing.Color]::Black
|
|
$Check.Location = New-Object System.Drawing.Point(210, 90)
|
|
$Check.Font = 'Microsoft Sans Serif,10,style=Bold'
|
|
|
|
$startrecord = New-Object Windows.Forms.Button
|
|
$startrecord.Text = "Start"
|
|
$startrecord.Width = 120
|
|
$startrecord.Height = 30
|
|
$startrecord.BackColor = [System.Drawing.Color]::White
|
|
$startrecord.ForeColor = [System.Drawing.Color]::Black
|
|
$startrecord.Location = New-Object System.Drawing.Point(210, 130)
|
|
$startrecord.Font = 'Microsoft Sans Serif,10,style=Bold'
|
|
|
|
$form.Controls.AddRange(@($Text,$fps,$frBox,$Text2,$sec,$tbox,$Text3,$ofx,$oxBox,$Text4,$ofy,$oyBox,$Text5,$vsBox,$Download,$Check,$startrecord))
|
|
|
|
|
|
$Download.Add_Click{
|
|
$Path = "$env:Temp\ffmpeg.exe"
|
|
If (!(Test-Path $Path)){
|
|
$tempDir = "$env:temp"
|
|
$apiUrl = "https://api.github.com/repos/GyanD/codexffmpeg/releases/latest"
|
|
$response = Invoke-WebRequest -Uri $apiUrl -Headers @{ "User-Agent" = "PowerShell" } -UseBasicParsing
|
|
$release = $response.Content | ConvertFrom-Json
|
|
$asset = $release.assets | Where-Object { $_.name -like "*essentials_build.zip" }
|
|
$zipUrl = $asset.browser_download_url
|
|
$zipFilePath = Join-Path $tempDir $asset.name
|
|
$extractedDir = Join-Path $tempDir ($asset.name -replace '.zip$', '')
|
|
Invoke-WebRequest -Uri $zipUrl -OutFile $zipFilePath
|
|
Expand-Archive -Path $zipFilePath -DestinationPath $tempDir -Force
|
|
Move-Item -Path (Join-Path $extractedDir 'bin\ffmpeg.exe') -Destination $tempDir -Force
|
|
Remove-Item -Path $zipFilePath -Force
|
|
Remove-Item -Path $extractedDir -Recurse -Force
|
|
Write-Output "FFmpeg has been downloaded and extracted to $tempDir"
|
|
}
|
|
}
|
|
|
|
$Check.Add_Click{
|
|
$Path = "$env:Temp\ffmpeg.exe"
|
|
If (!(Test-Path $Path)){msg.exe * 'Not Installed'}
|
|
else {msg.exe * 'Installed'}
|
|
}
|
|
|
|
$startrecord.Add_Click{
|
|
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
|
|
$mkvPath = "Clip_$timestamp.mkv"
|
|
|
|
if ($t.Length -eq 0){$t = 10}
|
|
if ($fr.Length -eq 0){$fr = 25}
|
|
if ($ox.Length -eq 0){$ox = 0}
|
|
if ($oy.Length -eq 0){$oy = 0}
|
|
if ($vs.Length -eq 0){$vs = "1920x1080"}
|
|
|
|
.$env:Temp\ffmpeg.exe -f gdigrab -framerate $fr -t $t -offset_x $ox -offset_y $oy -video_size $vs -show_region 1 -i desktop $mkvPath
|
|
}
|
|
|
|
$form.ShowDialog()
|