Lake1059/FFmpegFreeUI/main 138k tokens More Tools
```
├── .gitattributes (omitted)
├── .github/
   ├── FUNDING.yml
├── .gitignore (1200 tokens)
├── FFmpegFreeUI.sln (200 tokens)
├── FFmpegFreeUI/
   ├── ApplicationEvents.vb (300 tokens)
   ├── AviSynth.avs (100 tokens)
   ├── FFmpegFreeUI.vbproj (400 tokens)
   ├── Form1.Designer.vb (19.1k tokens)
   ├── Form1.resx (1200 tokens)
   ├── Form1.vb (1800 tokens)
   ├── Form画面裁剪交互窗口.Designer.vb (4.1k tokens)
   ├── Form画面裁剪交互窗口.resx (1100 tokens)
   ├── Form画面裁剪交互窗口.vb (2.7k tokens)
   ├── GitHubAPI.vb (800 tokens)
   ├── Module1.vb (1200 tokens)
   ├── My Project/
      ├── Application.Designer.vb (300 tokens)
      ├── Application.myapp (100 tokens)
      ├── Resources.Designer.vb (500 tokens)
      ├── Resources.resx (1200 tokens)
   ├── 暗黑上下文菜单.vb (100 tokens)
   ├── 暗黑上下文菜单自绘制.vb (1000 tokens)
   ├── 暗黑列表视图自绘制.vb (500 tokens)
   ├── 界面_常规流程参数.Designer.vb (54.7k tokens)
   ├── 界面_常规流程参数.resx (1100 tokens)
   ├── 界面_常规流程参数.vb (2.7k tokens)
   ├── 界面_混流.Designer.vb (4.3k tokens)
   ├── 界面_混流.resx (1100 tokens)
   ├── 界面_混流.vb
   ├── 界面控制.vb (1700 tokens)
   ├── 界面控制_添加文件.vb (800 tokens)
   ├── 界面控制_编码队列.vb (900 tokens)
   ├── 编码任务.vb (4.8k tokens)
   ├── 视频编码器数据库.vb (1500 tokens)
   ├── 预设数据类型.vb (800 tokens)
   ├── 预设管理.vb (7k tokens)
├── IMG/
   ├── e1.png
   ├── e_av1_nvenc.png
   ├── e_h264_nvenc.png
   ├── e_h264_qsv.png
   ├── e_hevc_nvenc.png
   ├── e_hevc_qsv.png
   ├── e_svtav1.png
   ├── e_x264.png
   ├── e_x265.png
   ├── mi.png
   ├── sc.png
   ├── vp.png
├── LICENSE.txt (200 tokens)
├── README.md (2.1k tokens)
├── 新手下完看这个/
   ├── 1.如果你的需求是使用这个软件
   ├── 2.而不是要工程文件
   ├── 3.那你就下错了
   ├── 4.jpg
   ├── 5.都是手机害的
```


## /.github/FUNDING.yml

```yml path="/.github/FUNDING.yml" 
custom: ['https://afdian.com/a/1059Studio']
```

## /.gitignore

```gitignore path="/.gitignore" 
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Mono auto generated files
mono_crash.*

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Oo]ut/
[Ll]og/
[Ll]ogs/

# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

# Visual Studio 2017 auto generated files
Generated\ Files/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/

# ASP.NET Scaffolding
ScaffoldingReadMe.txt

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb

# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap

# Visual Studio Trace Files
*.e2e

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json

# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info

# Visual Studio code coverage results
*.coverage
*.coveragexml

# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj

# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/

# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets

# Microsoft Azure Build Output
csx/
*.build.csdef

# Microsoft Azure Emulator
ecf/
rcf/

# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/

# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs

# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak

# SQL Server files
*.mdf
*.ldf
*.ndf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl

# Microsoft Fakes
FakesAssemblies/

# GhostDoc plugin setting file
*.GhostDoc.xml

# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/

# Visual Studio 6 build log
*.plg

# Visual Studio 6 workspace options file
*.opt

# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw

# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions

# Paket dependency manager
.paket/paket.exe
paket-files/

# FAKE - F# Make
.fake/

# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config

# Tabs Studio
*.tss

# Telerik's JustMock configuration file
*.jmconfig

# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs

# OpenCover UI analysis results
OpenCover/

# Azure Stream Analytics local run output
ASALocalRun/

# MSBuild Binary and Structured Log
*.binlog

# NVidia Nsight GPU debugger configuration file
*.nvuser

# MFractors (Xamarin productivity tool) working folder
.mfractor/

# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb

# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/

# Ionide (cross platform F# VS Code tools) working folder
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd
```

## /FFmpegFreeUI.sln

```sln path="/FFmpegFreeUI.sln" 

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36105.17 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "FFmpegFreeUI", "FFmpegFreeUI\FFmpegFreeUI.vbproj", "{106AF5C4-8109-4E33-BEDC-D5919A9B53C0}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{106AF5C4-8109-4E33-BEDC-D5919A9B53C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{106AF5C4-8109-4E33-BEDC-D5919A9B53C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{106AF5C4-8109-4E33-BEDC-D5919A9B53C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{106AF5C4-8109-4E33-BEDC-D5919A9B53C0}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {0039EC5F-50F2-4731-8C77-66C7DC49F800}
	EndGlobalSection
EndGlobal

```

## /FFmpegFreeUI/ApplicationEvents.vb

```vb path="/FFmpegFreeUI/ApplicationEvents.vb" 
Imports Microsoft.VisualBasic.ApplicationServices

Namespace My
    ' The following events are available for MyApplication:
    ' Startup: Raised when the application starts, before the startup form is created.
    ' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally.
    ' UnhandledException: Raised if the application encounters an unhandled exception.
    ' StartupNextInstance: Raised when launching a single-instance application and the application is already active.
    ' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.

    ' **NEW** ApplyApplicationDefaults: Raised when the application queries default values to be set for the application.

    ' Example:
    ' Private Sub MyApplication_ApplyApplicationDefaults(sender As Object, e As ApplyApplicationDefaultsEventArgs) Handles Me.ApplyApplicationDefaults
    '
    '   ' Setting the application-wide default Font:
    '   e.Font = New Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular)
    '
    '   ' Setting the HighDpiMode for the Application:
    '   e.HighDpiMode = HighDpiMode.PerMonitorV2
    '
    '   ' If a splash dialog is used, this sets the minimum display time:
    '   e.MinimumSplashScreenDisplayTime = 4000
    ' End Sub

    Partial Friend Class MyApplication

    End Class
End Namespace

```

## /FFmpegFreeUI/AviSynth.avs

```avs path="/FFmpegFreeUI/AviSynth.avs" 
LoadPlugin("C:\xxxx\LSMASHSource.dll")
LoadPlugin("C:\xxxx\fmtconv.dll")
LoadPlugin("C:\xxxx\knlmeanscl.dll")
LWLibavVideoSource("<FilePath>")#读取文件中的视频流
fmtc_bitdepth(bits=16,dmode=1)#为KNLMeansCL降噪而提升位深
KNLMeansCL(d=2,a=3,s=4,h=3,channels="Y",wmode=3)#对亮度平面的降噪强度高于色度平面
KNLMeansCL(d=2,a=3,s=4,h=2,channels="UV",wmode=3)#对色度平面的降噪强度低于亮度平面
fmtc_bitdepth(bits=10,dmode=0)#为libsvtav1编码而降低位深

```

## /FFmpegFreeUI/FFmpegFreeUI.vbproj

```vbproj path="/FFmpegFreeUI/FFmpegFreeUI.vbproj" 
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net10.0-windows</TargetFramework>
    <StartupObject>Sub Main</StartupObject>
    <UseWindowsForms>true</UseWindowsForms>
    <MyType>WindowsForms</MyType>
    <UseWPF>True</UseWPF>
	  <PublishReadyToRun>true</PublishReadyToRun>
	  <PublishReadyToRunEmitSymbols>true</PublishReadyToRunEmitSymbols>
	  <SelfContained>true</SelfContained>
	  <PublishSingleFile>true</PublishSingleFile>
	  <Authors>1059 Studio</Authors>
	  <Company>1059 Studio</Company>
	  <Version>0.7</Version>
  </PropertyGroup>

  <ItemGroup>
    <Import Include="System.Data" />
    <Import Include="System.Drawing" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.5" />
    <PackageReference Include="SunnyUI" Version="3.8.5" />
  </ItemGroup>

  <ItemGroup>
    <Compile Update="My Project\Application.Designer.vb">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Application.myapp</DependentUpon>
    </Compile>
    <Compile Update="My Project\Resources.Designer.vb">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Update="My Project\Resources.resx">
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <None Update="AviSynth.avs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="My Project\Application.myapp">
      <Generator>MyApplicationCodeGenerator</Generator>
      <LastGenOutput>Application.Designer.vb</LastGenOutput>
    </None>
  </ItemGroup>

</Project>
```

## /FFmpegFreeUI/Form1.Designer.vb

```vb path="/FFmpegFreeUI/Form1.Designer.vb" 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()>
    Protected Overrides Sub Dispose(disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()>
    Private Sub InitializeComponent()
        components = New ComponentModel.Container()
        UiTabControlMenu1 = New Sunny.UI.UITabControlMenu()
        TabPage起始页面 = New TabPage()
        Panel44 = New Panel()
        Panel10 = New Panel()
        Panel11 = New Panel()
        UiTextBox处理器核心 = New Sunny.UI.UITextBox()
        Label106 = New Label()
        UiTextBox快捷输入CPU核心 = New Sunny.UI.UITextBox()
        Label28 = New Label()
        Label29 = New Label()
        Panel14 = New Panel()
        Panel15 = New Panel()
        Panel16 = New Panel()
        UiComboBox2 = New Sunny.UI.UIComboBox()
        Label12 = New Label()
        Label10 = New Label()
        Label30 = New Label()
        Panel7 = New Panel()
        Panel8 = New Panel()
        Label122 = New Label()
        Label75 = New Label()
        Label73 = New Label()
        Label65 = New Label()
        Label64 = New Label()
        Label129 = New Label()
        Label15 = New Label()
        Panel12 = New Panel()
        Label11 = New Label()
        Panel13 = New Panel()
        UiComboBox1 = New Sunny.UI.UIComboBox()
        Label137 = New Label()
        UiButton4 = New Sunny.UI.UIButton()
        Label9 = New Label()
        Label14 = New Label()
        Label21 = New Label()
        Panel5 = New Panel()
        LinkLabel6 = New LinkLabel()
        LinkLabel5 = New LinkLabel()
        LinkLabel4 = New LinkLabel()
        LinkLabel3 = New LinkLabel()
        LinkLabel2 = New LinkLabel()
        LinkLabel7 = New LinkLabel()
        Label127 = New Label()
        Label20 = New Label()
        Panel73 = New Panel()
        Label128 = New Label()
        Label126 = New Label()
        Label125 = New Label()
        Label124 = New Label()
        TabPage编码队列 = New TabPage()
        Panel56 = New Panel()
        ListView1 = New ListView()
        ColumnHeader1 = New ColumnHeader()
        ColumnHeader2 = New ColumnHeader()
        ColumnHeader3 = New ColumnHeader()
        ColumnHeader4 = New ColumnHeader()
        ColumnHeader5 = New ColumnHeader()
        ColumnHeader6 = New ColumnHeader()
        ColumnHeader7 = New ColumnHeader()
        ColumnHeader8 = New ColumnHeader()
        ImageList1 = New ImageList(components)
        Panel1 = New Panel()
        Label8 = New Label()
        Label7 = New Label()
        Label6 = New Label()
        Label5 = New Label()
        Label4 = New Label()
        Label3 = New Label()
        Label2 = New Label()
        Label1 = New Label()
        Panel41 = New Panel()
        Panel47 = New Panel()
        Label76 = New Label()
        Label120 = New Label()
        Label74 = New Label()
        Panel2 = New Panel()
        UiButton15 = New Sunny.UI.UIButton()
        UiButton7 = New Sunny.UI.UIButton()
        UiButton重新添加 = New Sunny.UI.UIButton()
        UiButton8 = New Sunny.UI.UIButton()
        UiButton9 = New Sunny.UI.UIButton()
        UiButton16 = New Sunny.UI.UIButton()
        UiButton6 = New Sunny.UI.UIButton()
        UiButton5 = New Sunny.UI.UIButton()
        UiButton2 = New Sunny.UI.UIButton()
        UiButton1 = New Sunny.UI.UIButton()
        UiButton3 = New Sunny.UI.UIButton()
        TabPage添加文件 = New TabPage()
        Panel58 = New Panel()
        ListView2 = New ListView()
        ColumnHeader9 = New ColumnHeader()
        Panel57 = New Panel()
        UiComboBox21 = New Sunny.UI.UIComboBox()
        Label100 = New Label()
        UiComboBox输出容器 = New Sunny.UI.UIComboBox()
        Panel3 = New Panel()
        Label102 = New Label()
        UiButton12 = New Sunny.UI.UIButton()
        Label18 = New Label()
        UiButton11 = New Sunny.UI.UIButton()
        Label17 = New Label()
        UiButton10 = New Sunny.UI.UIButton()
        Label24 = New Label()
        UiButton18 = New Sunny.UI.UIButton()
        Label19 = New Label()
        UiButton14 = New Sunny.UI.UIButton()
        TabPage转码压制 = New TabPage()
        Panel6 = New Panel()
        TabPage媒体信息 = New TabPage()
        Panel4 = New Panel()
        Panel76 = New Panel()
        Panel77 = New Panel()
        RichTextBox1 = New RichTextBox()
        Label23 = New Label()
        Panel9 = New Panel()
        Panel75 = New Panel()
        UiButton打开文件显示参数 = New Sunny.UI.UIButton()
        Label123 = New Label()
        Label22 = New Label()
        TabPageEX混流 = New TabPage()
        TabPageEX合并 = New TabPage()
        TabPageEX截取 = New TabPage()
        Timer1 = New Timer(components)
        UiTabControlMenu1.SuspendLayout()
        TabPage起始页面.SuspendLayout()
        Panel44.SuspendLayout()
        Panel10.SuspendLayout()
        Panel11.SuspendLayout()
        Panel15.SuspendLayout()
        Panel16.SuspendLayout()
        Panel7.SuspendLayout()
        Panel8.SuspendLayout()
        Panel12.SuspendLayout()
        Panel13.SuspendLayout()
        Panel5.SuspendLayout()
        Panel73.SuspendLayout()
        TabPage编码队列.SuspendLayout()
        Panel56.SuspendLayout()
        Panel1.SuspendLayout()
        Panel41.SuspendLayout()
        Panel47.SuspendLayout()
        Panel2.SuspendLayout()
        TabPage添加文件.SuspendLayout()
        Panel58.SuspendLayout()
        Panel57.SuspendLayout()
        Panel3.SuspendLayout()
        TabPage转码压制.SuspendLayout()
        TabPage媒体信息.SuspendLayout()
        Panel4.SuspendLayout()
        Panel76.SuspendLayout()
        Panel77.SuspendLayout()
        Panel9.SuspendLayout()
        Panel75.SuspendLayout()
        SuspendLayout()
        ' 
        ' UiTabControlMenu1
        ' 
        UiTabControlMenu1.Alignment = TabAlignment.Left
        UiTabControlMenu1.Controls.Add(TabPage起始页面)
        UiTabControlMenu1.Controls.Add(TabPage编码队列)
        UiTabControlMenu1.Controls.Add(TabPage添加文件)
        UiTabControlMenu1.Controls.Add(TabPage转码压制)
        UiTabControlMenu1.Controls.Add(TabPage媒体信息)
        UiTabControlMenu1.Controls.Add(TabPageEX混流)
        UiTabControlMenu1.Controls.Add(TabPageEX合并)
        UiTabControlMenu1.Controls.Add(TabPageEX截取)
        UiTabControlMenu1.Dock = DockStyle.Fill
        UiTabControlMenu1.DrawMode = TabDrawMode.OwnerDrawFixed
        UiTabControlMenu1.FillColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        UiTabControlMenu1.Font = New Font("微软雅黑", 11F)
        UiTabControlMenu1.ItemSize = New Size(150, 40)
        UiTabControlMenu1.Location = New Point(0, 0)
        UiTabControlMenu1.MenuStyle = Sunny.UI.UIMenuStyle.Custom
        UiTabControlMenu1.Multiline = True
        UiTabControlMenu1.Name = "UiTabControlMenu1"
        UiTabControlMenu1.SelectedIndex = 0
        UiTabControlMenu1.Size = New Size(1284, 761)
        UiTabControlMenu1.SizeMode = TabSizeMode.Fixed
        UiTabControlMenu1.TabIndex = 1
        UiTabControlMenu1.TabSelectedColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiTabControlMenu1.TabSelectedForeColor = Color.YellowGreen
        UiTabControlMenu1.TabSelectedHighColor = Color.YellowGreen
        UiTabControlMenu1.TextAlignment = HorizontalAlignment.Left
        ' 
        ' TabPage起始页面
        ' 
        TabPage起始页面.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPage起始页面.Controls.Add(Panel44)
        TabPage起始页面.Font = New Font("微软雅黑", 10F)
        TabPage起始页面.Location = New Point(151, 0)
        TabPage起始页面.Name = "TabPage起始页面"
        TabPage起始页面.Size = New Size(1133, 761)
        TabPage起始页面.TabIndex = 10
        TabPage起始页面.Text = "3FUI"
        ' 
        ' Panel44
        ' 
        Panel44.BackgroundImageLayout = ImageLayout.Stretch
        Panel44.Controls.Add(Panel10)
        Panel44.Controls.Add(Label30)
        Panel44.Controls.Add(Panel7)
        Panel44.Controls.Add(Label20)
        Panel44.Controls.Add(Panel73)
        Panel44.Dock = DockStyle.Fill
        Panel44.Location = New Point(0, 0)
        Panel44.Name = "Panel44"
        Panel44.Padding = New Padding(20)
        Panel44.Size = New Size(1133, 761)
        Panel44.TabIndex = 0
        ' 
        ' Panel10
        ' 
        Panel10.AutoSize = True
        Panel10.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel10.Controls.Add(Panel11)
        Panel10.Controls.Add(Label28)
        Panel10.Controls.Add(Label29)
        Panel10.Controls.Add(Panel14)
        Panel10.Controls.Add(Panel15)
        Panel10.Dock = DockStyle.Top
        Panel10.Location = New Point(20, 420)
        Panel10.Name = "Panel10"
        Panel10.Size = New Size(1093, 115)
        Panel10.TabIndex = 84
        ' 
        ' Panel11
        ' 
        Panel11.Controls.Add(UiTextBox处理器核心)
        Panel11.Controls.Add(Label106)
        Panel11.Controls.Add(UiTextBox快捷输入CPU核心)
        Panel11.Dock = DockStyle.Top
        Panel11.Location = New Point(320, 75)
        Panel11.Name = "Panel11"
        Panel11.Padding = New Padding(17, 0, 17, 10)
        Panel11.Size = New Size(773, 40)
        Panel11.TabIndex = 82
        ' 
        ' UiTextBox处理器核心
        ' 
        UiTextBox处理器核心.Dock = DockStyle.Fill
        UiTextBox处理器核心.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox处理器核心.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox处理器核心.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox处理器核心.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox处理器核心.Font = New Font("微软雅黑", 10F, FontStyle.Bold)
        UiTextBox处理器核心.ForeColor = Color.DarkGray
        UiTextBox处理器核心.ForeDisableColor = Color.DarkGray
        UiTextBox处理器核心.ForeReadOnlyColor = Color.DarkGray
        UiTextBox处理器核心.Location = New Point(17, 0)
        UiTextBox处理器核心.Margin = New Padding(4, 5, 4, 5)
        UiTextBox处理器核心.MinimumSize = New Size(1, 16)
        UiTextBox处理器核心.Name = "UiTextBox处理器核心"
        UiTextBox处理器核心.Padding = New Padding(5)
        UiTextBox处理器核心.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiTextBox处理器核心.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox处理器核心.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox处理器核心.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox处理器核心.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox处理器核心.ScrollBarColor = Color.DimGray
        UiTextBox处理器核心.ScrollBarStyleInherited = False
        UiTextBox处理器核心.ShowText = False
        UiTextBox处理器核心.Size = New Size(619, 30)
        UiTextBox处理器核心.TabIndex = 82
        UiTextBox处理器核心.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox处理器核心.Watermark = ""
        UiTextBox处理器核心.WatermarkActiveColor = Color.DimGray
        UiTextBox处理器核心.WatermarkColor = Color.DimGray
        ' 
        ' Label106
        ' 
        Label106.Dock = DockStyle.Right
        Label106.Location = New Point(636, 0)
        Label106.Name = "Label106"
        Label106.Size = New Size(10, 30)
        Label106.TabIndex = 84
        ' 
        ' UiTextBox快捷输入CPU核心
        ' 
        UiTextBox快捷输入CPU核心.Dock = DockStyle.Right
        UiTextBox快捷输入CPU核心.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox快捷输入CPU核心.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox快捷输入CPU核心.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox快捷输入CPU核心.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox快捷输入CPU核心.Font = New Font("微软雅黑", 10F, FontStyle.Bold)
        UiTextBox快捷输入CPU核心.ForeColor = Color.DarkGray
        UiTextBox快捷输入CPU核心.ForeDisableColor = Color.DarkGray
        UiTextBox快捷输入CPU核心.ForeReadOnlyColor = Color.DarkGray
        UiTextBox快捷输入CPU核心.Location = New Point(646, 0)
        UiTextBox快捷输入CPU核心.Margin = New Padding(4, 5, 4, 5)
        UiTextBox快捷输入CPU核心.MinimumSize = New Size(1, 16)
        UiTextBox快捷输入CPU核心.Name = "UiTextBox快捷输入CPU核心"
        UiTextBox快捷输入CPU核心.Padding = New Padding(5)
        UiTextBox快捷输入CPU核心.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiTextBox快捷输入CPU核心.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox快捷输入CPU核心.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox快捷输入CPU核心.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox快捷输入CPU核心.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox快捷输入CPU核心.ScrollBarColor = Color.DimGray
        UiTextBox快捷输入CPU核心.ScrollBarStyleInherited = False
        UiTextBox快捷输入CPU核心.ShowText = False
        UiTextBox快捷输入CPU核心.Size = New Size(110, 30)
        UiTextBox快捷输入CPU核心.TabIndex = 83
        UiTextBox快捷输入CPU核心.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox快捷输入CPU核心.Watermark = "?~?,Enter"
        UiTextBox快捷输入CPU核心.WatermarkActiveColor = Color.DimGray
        UiTextBox快捷输入CPU核心.WatermarkColor = Color.DimGray
        ' 
        ' Label28
        ' 
        Label28.AutoSize = True
        Label28.Dock = DockStyle.Top
        Label28.ForeColor = Color.Gray
        Label28.Location = New Point(320, 45)
        Label28.Name = "Label28"
        Label28.Padding = New Padding(12, 0, 0, 10)
        Label28.Size = New Size(582, 30)
        Label28.TabIndex = 10
        Label28.Text = "设置 ffmpeg 能够使用哪些处理器核心,将对所有新的任务生效,每个核心索引用逗号隔开"
        ' 
        ' Label29
        ' 
        Label29.AutoSize = True
        Label29.Dock = DockStyle.Top
        Label29.Font = New Font("微软雅黑", 14F)
        Label29.Location = New Point(320, 0)
        Label29.Name = "Label29"
        Label29.Padding = New Padding(10, 10, 0, 10)
        Label29.Size = New Size(98, 45)
        Label29.TabIndex = 9
        Label29.Text = "性能调度"
        ' 
        ' Panel14
        ' 
        Panel14.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        Panel14.Dock = DockStyle.Left
        Panel14.Location = New Point(300, 0)
        Panel14.Name = "Panel14"
        Panel14.Size = New Size(20, 115)
        Panel14.TabIndex = 83
        ' 
        ' Panel15
        ' 
        Panel15.Controls.Add(Panel16)
        Panel15.Controls.Add(Label12)
        Panel15.Controls.Add(Label10)
        Panel15.Dock = DockStyle.Left
        Panel15.Location = New Point(0, 0)
        Panel15.Name = "Panel15"
        Panel15.Padding = New Padding(10)
        Panel15.Size = New Size(300, 115)
        Panel15.TabIndex = 84
        ' 
        ' Panel16
        ' 
        Panel16.Controls.Add(UiComboBox2)
        Panel16.Dock = DockStyle.Top
        Panel16.Location = New Point(10, 75)
        Panel16.Name = "Panel16"
        Panel16.Padding = New Padding(7, 0, 7, 0)
        Panel16.Size = New Size(280, 30)
        Panel16.TabIndex = 83
        ' 
        ' UiComboBox2
        ' 
        UiComboBox2.DataSource = Nothing
        UiComboBox2.Dock = DockStyle.Top
        UiComboBox2.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList
        UiComboBox2.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox2.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox2.FillDisableColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox2.Font = New Font("微软雅黑", 9.75F)
        UiComboBox2.ForeColor = Color.Silver
        UiComboBox2.ForeDisableColor = Color.Silver
        UiComboBox2.ItemFillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox2.ItemForeColor = Color.Silver
        UiComboBox2.ItemHeight = 30
        UiComboBox2.ItemHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiComboBox2.ItemRectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiComboBox2.Items.AddRange(New Object() {"阻止休眠但允许显示器超时关闭", "阻止显示器超时关闭", "默认状态(不推荐)"})
        UiComboBox2.ItemSelectBackColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox2.ItemSelectForeColor = Color.Silver
        UiComboBox2.Location = New Point(7, 0)
        UiComboBox2.Margin = New Padding(4, 5, 4, 5)
        UiComboBox2.MaxDropDownItems = 17
        UiComboBox2.MinimumSize = New Size(63, 0)
        UiComboBox2.Name = "UiComboBox2"
        UiComboBox2.Padding = New Padding(0, 0, 30, 2)
        UiComboBox2.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiComboBox2.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox2.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox2.ScrollBarHandleWidth = 20
        UiComboBox2.Size = New Size(266, 30)
        UiComboBox2.Style = Sunny.UI.UIStyle.Custom
        UiComboBox2.StyleDropDown = Sunny.UI.UIStyle.Black
        UiComboBox2.SymbolSize = 24
        UiComboBox2.TabIndex = 85
        UiComboBox2.TextAlignment = ContentAlignment.MiddleLeft
        UiComboBox2.Watermark = ""
        ' 
        ' Label12
        ' 
        Label12.AutoSize = True
        Label12.Dock = DockStyle.Top
        Label12.ForeColor = Color.Gray
        Label12.Location = New Point(10, 45)
        Label12.Name = "Label12"
        Label12.Padding = New Padding(2, 0, 0, 10)
        Label12.Size = New Size(193, 30)
        Label12.TabIndex = 16
        Label12.Text = "有任务时系统要保持什么状态"
        ' 
        ' Label10
        ' 
        Label10.AutoSize = True
        Label10.Dock = DockStyle.Top
        Label10.Font = New Font("微软雅黑", 14F)
        Label10.Location = New Point(10, 10)
        Label10.Name = "Label10"
        Label10.Padding = New Padding(0, 0, 0, 10)
        Label10.Size = New Size(88, 35)
        Label10.TabIndex = 15
        Label10.Text = "系统状态"
        ' 
        ' Label30
        ' 
        Label30.Dock = DockStyle.Top
        Label30.Location = New Point(20, 400)
        Label30.Name = "Label30"
        Label30.Size = New Size(1093, 20)
        Label30.TabIndex = 85
        ' 
        ' Panel7
        ' 
        Panel7.Controls.Add(Panel8)
        Panel7.Controls.Add(Label15)
        Panel7.Controls.Add(Panel12)
        Panel7.Controls.Add(Label21)
        Panel7.Controls.Add(Panel5)
        Panel7.Dock = DockStyle.Top
        Panel7.Location = New Point(20, 170)
        Panel7.Name = "Panel7"
        Panel7.Size = New Size(1093, 230)
        Panel7.TabIndex = 83
        ' 
        ' Panel8
        ' 
        Panel8.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel8.Controls.Add(Label122)
        Panel8.Controls.Add(Label75)
        Panel8.Controls.Add(Label73)
        Panel8.Controls.Add(Label65)
        Panel8.Controls.Add(Label64)
        Panel8.Controls.Add(Label129)
        Panel8.Dock = DockStyle.Fill
        Panel8.Location = New Point(690, 0)
        Panel8.Name = "Panel8"
        Panel8.Padding = New Padding(10)
        Panel8.Size = New Size(403, 230)
        Panel8.TabIndex = 85
        ' 
        ' Label122
        ' 
        Label122.AutoSize = True
        Label122.Dock = DockStyle.Top
        Label122.Font = New Font("微软雅黑", 10F)
        Label122.ForeColor = Color.Gray
        Label122.Location = New Point(10, 153)
        Label122.Name = "Label122"
        Label122.Padding = New Padding(1, 0, 0, 7)
        Label122.Size = New Size(66, 27)
        Label122.TabIndex = 24
        Label122.Text = "更新信息"
        ' 
        ' Label75
        ' 
        Label75.AutoSize = True
        Label75.Dock = DockStyle.Top
        Label75.Font = New Font("微软雅黑", 10F)
        Label75.ForeColor = Color.Gray
        Label75.Location = New Point(10, 126)
        Label75.Name = "Label75"
        Label75.Padding = New Padding(1, 0, 0, 7)
        Label75.Size = New Size(66, 27)
        Label75.TabIndex = 23
        Label75.Text = "更新信息"
        ' 
        ' Label73
        ' 
        Label73.AutoSize = True
        Label73.Dock = DockStyle.Top
        Label73.Font = New Font("微软雅黑", 10F)
        Label73.ForeColor = Color.Gray
        Label73.Location = New Point(10, 99)
        Label73.Name = "Label73"
        Label73.Padding = New Padding(1, 0, 0, 7)
        Label73.Size = New Size(66, 27)
        Label73.TabIndex = 22
        Label73.Text = "更新信息"
        ' 
        ' Label65
        ' 
        Label65.AutoSize = True
        Label65.Dock = DockStyle.Top
        Label65.Font = New Font("微软雅黑", 10F)
        Label65.ForeColor = Color.Gray
        Label65.Location = New Point(10, 72)
        Label65.Name = "Label65"
        Label65.Padding = New Padding(1, 0, 0, 7)
        Label65.Size = New Size(66, 27)
        Label65.TabIndex = 21
        Label65.Text = "更新信息"
        ' 
        ' Label64
        ' 
        Label64.AutoSize = True
        Label64.Dock = DockStyle.Top
        Label64.Font = New Font("微软雅黑", 10F)
        Label64.ForeColor = Color.Gray
        Label64.Location = New Point(10, 45)
        Label64.Name = "Label64"
        Label64.Padding = New Padding(1, 0, 0, 7)
        Label64.Size = New Size(66, 27)
        Label64.TabIndex = 20
        Label64.Text = "更新信息"
        ' 
        ' Label129
        ' 
        Label129.AutoSize = True
        Label129.Dock = DockStyle.Top
        Label129.Font = New Font("微软雅黑", 14F)
        Label129.Location = New Point(10, 10)
        Label129.Name = "Label129"
        Label129.Padding = New Padding(0, 0, 0, 10)
        Label129.Size = New Size(88, 35)
        Label129.TabIndex = 19
        Label129.Text = "检查更新"
        ' 
        ' Label15
        ' 
        Label15.Dock = DockStyle.Left
        Label15.Location = New Point(670, 0)
        Label15.Name = "Label15"
        Label15.Size = New Size(20, 230)
        Label15.TabIndex = 87
        ' 
        ' Panel12
        ' 
        Panel12.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel12.Controls.Add(Label11)
        Panel12.Controls.Add(Panel13)
        Panel12.Controls.Add(Label9)
        Panel12.Controls.Add(Label14)
        Panel12.Dock = DockStyle.Left
        Panel12.Location = New Point(320, 0)
        Panel12.Name = "Panel12"
        Panel12.Padding = New Padding(10)
        Panel12.Size = New Size(350, 230)
        Panel12.TabIndex = 86
        ' 
        ' Label11
        ' 
        Label11.Dock = DockStyle.Fill
        Label11.Font = New Font("微软雅黑", 9.75F)
        Label11.ForeColor = Color.Gray
        Label11.Location = New Point(10, 105)
        Label11.Name = "Label11"
        Label11.Padding = New Padding(2, 10, 0, 10)
        Label11.Size = New Size(330, 115)
        Label11.TabIndex = 85
        Label11.Text = "敏捷的棕色狐狸跳过了懒惰的狗。" & vbCrLf & "The quick brown fox jumps over the lazy dog." & vbCrLf & "@#%&*()!? 0123456789"
        ' 
        ' Panel13
        ' 
        Panel13.AutoSize = True
        Panel13.Controls.Add(UiComboBox1)
        Panel13.Controls.Add(Label137)
        Panel13.Controls.Add(UiButton4)
        Panel13.Dock = DockStyle.Top
        Panel13.Location = New Point(10, 75)
        Panel13.Name = "Panel13"
        Panel13.Padding = New Padding(6, 0, 6, 0)
        Panel13.Size = New Size(330, 30)
        Panel13.TabIndex = 84
        ' 
        ' UiComboBox1
        ' 
        UiComboBox1.DataSource = Nothing
        UiComboBox1.Dock = DockStyle.Top
        UiComboBox1.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList
        UiComboBox1.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox1.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox1.FillDisableColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox1.Font = New Font("微软雅黑", 9.75F)
        UiComboBox1.ForeColor = Color.Silver
        UiComboBox1.ForeDisableColor = Color.Silver
        UiComboBox1.ItemFillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox1.ItemForeColor = Color.Silver
        UiComboBox1.ItemHeight = 30
        UiComboBox1.ItemHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiComboBox1.ItemRectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiComboBox1.ItemSelectBackColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox1.ItemSelectForeColor = Color.Silver
        UiComboBox1.Location = New Point(6, 0)
        UiComboBox1.Margin = New Padding(4, 5, 4, 5)
        UiComboBox1.MaxDropDownItems = 17
        UiComboBox1.MinimumSize = New Size(63, 0)
        UiComboBox1.Name = "UiComboBox1"
        UiComboBox1.Padding = New Padding(0, 0, 30, 2)
        UiComboBox1.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiComboBox1.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox1.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox1.ScrollBarHandleWidth = 20
        UiComboBox1.Size = New Size(258, 30)
        UiComboBox1.Style = Sunny.UI.UIStyle.Custom
        UiComboBox1.StyleDropDown = Sunny.UI.UIStyle.Black
        UiComboBox1.SymbolSize = 24
        UiComboBox1.TabIndex = 84
        UiComboBox1.TextAlignment = ContentAlignment.MiddleLeft
        UiComboBox1.Watermark = ""
        ' 
        ' Label137
        ' 
        Label137.Dock = DockStyle.Right
        Label137.ForeColor = Color.Gray
        Label137.Location = New Point(264, 0)
        Label137.Name = "Label137"
        Label137.Padding = New Padding(10, 0, 0, 0)
        Label137.Size = New Size(10, 30)
        Label137.TabIndex = 85
        Label137.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' UiButton4
        ' 
        UiButton4.Dock = DockStyle.Right
        UiButton4.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton4.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton4.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton4.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton4.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton4.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton4.Font = New Font("微软雅黑", 9F)
        UiButton4.ForeColor = Color.Silver
        UiButton4.ForeDisableColor = Color.Silver
        UiButton4.ForeHoverColor = Color.Silver
        UiButton4.ForePressColor = Color.Silver
        UiButton4.ForeSelectedColor = Color.Silver
        UiButton4.Location = New Point(274, 0)
        UiButton4.MinimumSize = New Size(1, 1)
        UiButton4.Name = "UiButton4"
        UiButton4.Radius = 0
        UiButton4.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton4.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiButton4.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton4.RectHoverColor = Color.CornflowerBlue
        UiButton4.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton4.RectSelectedColor = Color.CornflowerBlue
        UiButton4.Size = New Size(50, 30)
        UiButton4.TabIndex = 86
        UiButton4.Text = "OK"
        UiButton4.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label9
        ' 
        Label9.AutoSize = True
        Label9.Dock = DockStyle.Top
        Label9.ForeColor = Color.Gray
        Label9.Location = New Point(10, 45)
        Label9.Name = "Label9"
        Label9.Padding = New Padding(2, 0, 0, 10)
        Label9.Size = New Size(235, 30)
        Label9.TabIndex = 20
        Label9.Text = "创建 FontName.txt 来保存字体设置"
        ' 
        ' Label14
        ' 
        Label14.AutoSize = True
        Label14.Dock = DockStyle.Top
        Label14.Font = New Font("微软雅黑", 14F)
        Label14.Location = New Point(10, 10)
        Label14.Name = "Label14"
        Label14.Padding = New Padding(0, 0, 0, 10)
        Label14.Size = New Size(50, 35)
        Label14.TabIndex = 19
        Label14.Text = "字体"
        ' 
        ' Label21
        ' 
        Label21.Dock = DockStyle.Left
        Label21.Location = New Point(300, 0)
        Label21.Name = "Label21"
        Label21.Size = New Size(20, 230)
        Label21.TabIndex = 84
        ' 
        ' Panel5
        ' 
        Panel5.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel5.Controls.Add(LinkLabel6)
        Panel5.Controls.Add(LinkLabel5)
        Panel5.Controls.Add(LinkLabel4)
        Panel5.Controls.Add(LinkLabel3)
        Panel5.Controls.Add(LinkLabel2)
        Panel5.Controls.Add(LinkLabel7)
        Panel5.Controls.Add(Label127)
        Panel5.Dock = DockStyle.Left
        Panel5.Location = New Point(0, 0)
        Panel5.Name = "Panel5"
        Panel5.Padding = New Padding(10)
        Panel5.Size = New Size(300, 230)
        Panel5.TabIndex = 83
        ' 
        ' LinkLabel6
        ' 
        LinkLabel6.ActiveLinkColor = Color.Orchid
        LinkLabel6.AutoSize = True
        LinkLabel6.Dock = DockStyle.Top
        LinkLabel6.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel6.LinkColor = Color.Orchid
        LinkLabel6.Location = New Point(10, 180)
        LinkLabel6.Name = "LinkLabel6"
        LinkLabel6.Padding = New Padding(2, 5, 0, 0)
        LinkLabel6.Size = New Size(179, 25)
        LinkLabel6.TabIndex = 19
        LinkLabel6.TabStop = True
        LinkLabel6.Text = "查看作者主页(哔哩哔哩)"
        ' 
        ' LinkLabel5
        ' 
        LinkLabel5.ActiveLinkColor = Color.MediumPurple
        LinkLabel5.AutoSize = True
        LinkLabel5.Dock = DockStyle.Top
        LinkLabel5.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel5.LinkColor = Color.MediumPurple
        LinkLabel5.Location = New Point(10, 140)
        LinkLabel5.Name = "LinkLabel5"
        LinkLabel5.Padding = New Padding(2, 20, 0, 0)
        LinkLabel5.Size = New Size(138, 40)
        LinkLabel5.TabIndex = 18
        LinkLabel5.TabStop = True
        LinkLabel5.Text = "赞助一下(afdian)"
        ' 
        ' LinkLabel4
        ' 
        LinkLabel4.ActiveLinkColor = Color.OliveDrab
        LinkLabel4.AutoSize = True
        LinkLabel4.Dock = DockStyle.Top
        LinkLabel4.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel4.LinkColor = Color.OliveDrab
        LinkLabel4.Location = New Point(10, 115)
        LinkLabel4.Name = "LinkLabel4"
        LinkLabel4.Padding = New Padding(2, 5, 0, 0)
        LinkLabel4.Size = New Size(158, 25)
        LinkLabel4.TabIndex = 17
        LinkLabel4.TabStop = True
        LinkLabel4.Text = "下载 FFmpeg(BtbN)"
        ' 
        ' LinkLabel3
        ' 
        LinkLabel3.ActiveLinkColor = Color.OliveDrab
        LinkLabel3.AutoSize = True
        LinkLabel3.Dock = DockStyle.Top
        LinkLabel3.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel3.LinkColor = Color.OliveDrab
        LinkLabel3.Location = New Point(10, 90)
        LinkLabel3.Name = "LinkLabel3"
        LinkLabel3.Padding = New Padding(2, 5, 0, 0)
        LinkLabel3.Size = New Size(184, 25)
        LinkLabel3.TabIndex = 16
        LinkLabel3.TabStop = True
        LinkLabel3.Text = "下载 FFmpeg(gyan.dev)"
        ' 
        ' LinkLabel2
        ' 
        LinkLabel2.ActiveLinkColor = Color.OliveDrab
        LinkLabel2.AutoSize = True
        LinkLabel2.Dock = DockStyle.Top
        LinkLabel2.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel2.LinkColor = Color.OliveDrab
        LinkLabel2.Location = New Point(10, 65)
        LinkLabel2.Name = "LinkLabel2"
        LinkLabel2.Padding = New Padding(2, 5, 0, 0)
        LinkLabel2.Size = New Size(227, 25)
        LinkLabel2.TabIndex = 15
        LinkLabel2.TabStop = True
        LinkLabel2.Text = "FFmpeg 官方文档(ffmpeg.org)"
        ' 
        ' LinkLabel7
        ' 
        LinkLabel7.ActiveLinkColor = Color.OliveDrab
        LinkLabel7.AutoSize = True
        LinkLabel7.Dock = DockStyle.Top
        LinkLabel7.LinkBehavior = LinkBehavior.HoverUnderline
        LinkLabel7.LinkColor = Color.OliveDrab
        LinkLabel7.Location = New Point(10, 45)
        LinkLabel7.Name = "LinkLabel7"
        LinkLabel7.Padding = New Padding(2, 0, 0, 0)
        LinkLabel7.Size = New Size(91, 20)
        LinkLabel7.TabIndex = 20
        LinkLabel7.TabStop = True
        LinkLabel7.Text = "GitHub 仓库"
        ' 
        ' Label127
        ' 
        Label127.AutoSize = True
        Label127.Dock = DockStyle.Top
        Label127.Font = New Font("微软雅黑", 14F)
        Label127.Location = New Point(10, 10)
        Label127.Name = "Label127"
        Label127.Padding = New Padding(0, 0, 0, 10)
        Label127.Size = New Size(107, 35)
        Label127.TabIndex = 14
        Label127.Text = "链接和文档"
        ' 
        ' Label20
        ' 
        Label20.Dock = DockStyle.Top
        Label20.Location = New Point(20, 150)
        Label20.Name = "Label20"
        Label20.Size = New Size(1093, 20)
        Label20.TabIndex = 81
        ' 
        ' Panel73
        ' 
        Panel73.AutoSize = True
        Panel73.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel73.Controls.Add(Label128)
        Panel73.Controls.Add(Label126)
        Panel73.Controls.Add(Label125)
        Panel73.Controls.Add(Label124)
        Panel73.Dock = DockStyle.Top
        Panel73.Location = New Point(20, 20)
        Panel73.Name = "Panel73"
        Panel73.Padding = New Padding(10)
        Panel73.Size = New Size(1093, 130)
        Panel73.TabIndex = 80
        ' 
        ' Label128
        ' 
        Label128.AutoSize = True
        Label128.Dock = DockStyle.Top
        Label128.ForeColor = Color.CornflowerBlue
        Label128.Location = New Point(10, 90)
        Label128.Name = "Label128"
        Label128.Padding = New Padding(2, 5, 0, 5)
        Label128.Size = New Size(411, 30)
        Label128.TabIndex = 12
        Label128.Text = "将 ffmpeg.exe 加入环境变量或放置于 3FUI 程序目录下即可调用"
        ' 
        ' Label126
        ' 
        Label126.AutoSize = True
        Label126.Dock = DockStyle.Top
        Label126.ForeColor = Color.Gray
        Label126.Location = New Point(10, 65)
        Label126.Name = "Label126"
        Label126.Padding = New Padding(2, 5, 0, 0)
        Label126.Size = New Size(305, 25)
        Label126.TabIndex = 11
        Label126.Text = "将转码的自由还给用户,无套路,专注写命令行"
        ' 
        ' Label125
        ' 
        Label125.AutoSize = True
        Label125.Dock = DockStyle.Top
        Label125.ForeColor = Color.Gray
        Label125.Location = New Point(10, 45)
        Label125.Name = "Label125"
        Label125.Padding = New Padding(2, 0, 0, 0)
        Label125.Size = New Size(561, 20)
        Label125.TabIndex = 10
        Label125.Text = "由 1059 Studio 开发的 3FUI 是一款真正专业、完全免费、高度自由的 FFmpeg 交互外壳"
        ' 
        ' Label124
        ' 
        Label124.AutoSize = True
        Label124.Dock = DockStyle.Top
        Label124.Font = New Font("微软雅黑", 14F)
        Label124.Location = New Point(10, 10)
        Label124.Name = "Label124"
        Label124.Padding = New Padding(0, 0, 0, 10)
        Label124.Size = New Size(233, 35)
        Label124.TabIndex = 9
        Label124.Text = "FFmpegFreeUI v0.7 EA 2"
        ' 
        ' TabPage编码队列
        ' 
        TabPage编码队列.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPage编码队列.Controls.Add(Panel56)
        TabPage编码队列.Controls.Add(Panel1)
        TabPage编码队列.Controls.Add(Panel41)
        TabPage编码队列.Controls.Add(Panel2)
        TabPage编码队列.Font = New Font("微软雅黑", 10F)
        TabPage编码队列.Location = New Point(151, 0)
        TabPage编码队列.Name = "TabPage编码队列"
        TabPage编码队列.Size = New Size(1133, 761)
        TabPage编码队列.TabIndex = 0
        TabPage编码队列.Text = "编码队列"
        ' 
        ' Panel56
        ' 
        Panel56.Controls.Add(ListView1)
        Panel56.Dock = DockStyle.Fill
        Panel56.Location = New Point(0, 90)
        Panel56.Name = "Panel56"
        Panel56.Padding = New Padding(10, 10, 0, 10)
        Panel56.Size = New Size(1133, 511)
        Panel56.TabIndex = 4
        ' 
        ' ListView1
        ' 
        ListView1.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        ListView1.BorderStyle = BorderStyle.None
        ListView1.Columns.AddRange(New ColumnHeader() {ColumnHeader1, ColumnHeader2, ColumnHeader3, ColumnHeader4, ColumnHeader5, ColumnHeader6, ColumnHeader7, ColumnHeader8})
        ListView1.Dock = DockStyle.Fill
        ListView1.ForeColor = Color.Silver
        ListView1.FullRowSelect = True
        ListView1.HeaderStyle = ColumnHeaderStyle.None
        ListView1.Location = New Point(10, 10)
        ListView1.Name = "ListView1"
        ListView1.OwnerDraw = True
        ListView1.ShowItemToolTips = True
        ListView1.Size = New Size(1123, 491)
        ListView1.StateImageList = ImageList1
        ListView1.TabIndex = 0
        ListView1.TabStop = False
        ListView1.UseCompatibleStateImageBehavior = False
        ListView1.View = View.Details
        ' 
        ' ImageList1
        ' 
        ImageList1.ColorDepth = ColorDepth.Depth32Bit
        ImageList1.ImageSize = New Size(1, 30)
        ImageList1.TransparentColor = Color.Transparent
        ' 
        ' Panel1
        ' 
        Panel1.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel1.Controls.Add(Label8)
        Panel1.Controls.Add(Label7)
        Panel1.Controls.Add(Label6)
        Panel1.Controls.Add(Label5)
        Panel1.Controls.Add(Label4)
        Panel1.Controls.Add(Label3)
        Panel1.Controls.Add(Label2)
        Panel1.Controls.Add(Label1)
        Panel1.Dock = DockStyle.Top
        Panel1.Location = New Point(0, 50)
        Panel1.Name = "Panel1"
        Panel1.Padding = New Padding(10, 0, 0, 0)
        Panel1.Size = New Size(1133, 40)
        Panel1.TabIndex = 2
        ' 
        ' Label8
        ' 
        Label8.Dock = DockStyle.Fill
        Label8.Location = New Point(900, 0)
        Label8.Name = "Label8"
        Label8.Size = New Size(233, 40)
        Label8.TabIndex = 7
        Label8.Text = "预计剩余 && 已用"
        Label8.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label7
        ' 
        Label7.Dock = DockStyle.Left
        Label7.Location = New Point(785, 0)
        Label7.Name = "Label7"
        Label7.Size = New Size(115, 40)
        Label7.TabIndex = 6
        Label7.Text = "比特率"
        Label7.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label6
        ' 
        Label6.Dock = DockStyle.Left
        Label6.Location = New Point(730, 0)
        Label6.Name = "Label6"
        Label6.Size = New Size(55, 40)
        Label6.TabIndex = 5
        Label6.Text = "质量"
        Label6.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label5
        ' 
        Label5.Dock = DockStyle.Left
        Label5.Location = New Point(580, 0)
        Label5.Name = "Label5"
        Label5.Size = New Size(150, 40)
        Label5.TabIndex = 4
        Label5.Text = "输出大小 && 预估"
        Label5.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label4
        ' 
        Label4.Dock = DockStyle.Left
        Label4.Location = New Point(500, 0)
        Label4.Name = "Label4"
        Label4.Size = New Size(80, 40)
        Label4.TabIndex = 3
        Label4.Text = "效率"
        Label4.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label3
        ' 
        Label3.Dock = DockStyle.Left
        Label3.Location = New Point(430, 0)
        Label3.Name = "Label3"
        Label3.Size = New Size(70, 40)
        Label3.TabIndex = 2
        Label3.Text = "进度"
        Label3.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label2
        ' 
        Label2.Dock = DockStyle.Left
        Label2.Location = New Point(350, 0)
        Label2.Name = "Label2"
        Label2.Size = New Size(80, 40)
        Label2.TabIndex = 1
        Label2.Text = "状态"
        Label2.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label1
        ' 
        Label1.Dock = DockStyle.Left
        Label1.Location = New Point(10, 0)
        Label1.Name = "Label1"
        Label1.Size = New Size(340, 40)
        Label1.TabIndex = 0
        Label1.Text = "输入文件"
        Label1.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Panel41
        ' 
        Panel41.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel41.Controls.Add(Panel47)
        Panel41.Controls.Add(Label120)
        Panel41.Controls.Add(Label74)
        Panel41.Dock = DockStyle.Bottom
        Panel41.Location = New Point(0, 601)
        Panel41.Name = "Panel41"
        Panel41.Padding = New Padding(10)
        Panel41.Size = New Size(1133, 160)
        Panel41.TabIndex = 5
        Panel41.Visible = False
        ' 
        ' Panel47
        ' 
        Panel47.AutoScroll = True
        Panel47.Controls.Add(Label76)
        Panel47.Dock = DockStyle.Top
        Panel47.Location = New Point(10, 40)
        Panel47.Name = "Panel47"
        Panel47.Size = New Size(1113, 78)
        Panel47.TabIndex = 14
        ' 
        ' Label76
        ' 
        Label76.Dock = DockStyle.Top
        Label76.Font = New Font("微软雅黑", 10F)
        Label76.ForeColor = Color.Chocolate
        Label76.Location = New Point(0, 0)
        Label76.Name = "Label76"
        Label76.Size = New Size(1113, 62)
        Label76.TabIndex = 15
        Label76.Text = "累计错误信息"
        ' 
        ' Label120
        ' 
        Label120.Dock = DockStyle.Top
        Label120.Location = New Point(10, 30)
        Label120.Name = "Label120"
        Label120.Size = New Size(1113, 10)
        Label120.TabIndex = 15
        ' 
        ' Label74
        ' 
        Label74.AutoSize = True
        Label74.Dock = DockStyle.Top
        Label74.Font = New Font("微软雅黑", 10F)
        Label74.ForeColor = Color.CornflowerBlue
        Label74.Location = New Point(10, 10)
        Label74.Name = "Label74"
        Label74.Size = New Size(118, 20)
        Label74.TabIndex = 13
        Label74.Text = "ffmpeg 实时信息"
        ' 
        ' Panel2
        ' 
        Panel2.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel2.Controls.Add(UiButton15)
        Panel2.Controls.Add(UiButton7)
        Panel2.Controls.Add(UiButton重新添加)
        Panel2.Controls.Add(UiButton8)
        Panel2.Controls.Add(UiButton9)
        Panel2.Controls.Add(UiButton16)
        Panel2.Controls.Add(UiButton6)
        Panel2.Controls.Add(UiButton5)
        Panel2.Controls.Add(UiButton2)
        Panel2.Controls.Add(UiButton1)
        Panel2.Controls.Add(UiButton3)
        Panel2.Dock = DockStyle.Top
        Panel2.Location = New Point(0, 0)
        Panel2.Name = "Panel2"
        Panel2.Padding = New Padding(0, 10, 10, 0)
        Panel2.Size = New Size(1133, 50)
        Panel2.TabIndex = 3
        ' 
        ' UiButton15
        ' 
        UiButton15.Dock = DockStyle.Left
        UiButton15.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton15.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton15.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton15.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton15.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton15.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton15.Font = New Font("微软雅黑", 10F)
        UiButton15.ForeColor = Color.MediumPurple
        UiButton15.ForeDisableColor = Color.MediumPurple
        UiButton15.ForeHoverColor = Color.MediumPurple
        UiButton15.ForePressColor = Color.MediumPurple
        UiButton15.ForeSelectedColor = Color.MediumPurple
        UiButton15.Location = New Point(660, 10)
        UiButton15.MinimumSize = New Size(1, 1)
        UiButton15.Name = "UiButton15"
        UiButton15.Radius = 0
        UiButton15.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton15.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton15.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton15.RectHoverColor = Color.CornflowerBlue
        UiButton15.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton15.RectSelectedColor = Color.CornflowerBlue
        UiButton15.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton15.Size = New Size(100, 40)
        UiButton15.TabIndex = 92
        UiButton15.Text = "复制命令行"
        UiButton15.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton7
        ' 
        UiButton7.Dock = DockStyle.Left
        UiButton7.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton7.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton7.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton7.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton7.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton7.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton7.Font = New Font("微软雅黑", 10F)
        UiButton7.ForeColor = Color.MediumPurple
        UiButton7.ForeDisableColor = Color.MediumPurple
        UiButton7.ForeHoverColor = Color.MediumPurple
        UiButton7.ForePressColor = Color.MediumPurple
        UiButton7.ForeSelectedColor = Color.MediumPurple
        UiButton7.Location = New Point(580, 10)
        UiButton7.MinimumSize = New Size(1, 1)
        UiButton7.Name = "UiButton7"
        UiButton7.Radius = 0
        UiButton7.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton7.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton7.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton7.RectHoverColor = Color.CornflowerBlue
        UiButton7.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton7.RectSelectedColor = Color.CornflowerBlue
        UiButton7.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton7.Size = New Size(80, 40)
        UiButton7.TabIndex = 90
        UiButton7.Text = "导出配置"
        UiButton7.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton重新添加
        ' 
        UiButton重新添加.Dock = DockStyle.Left
        UiButton重新添加.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton重新添加.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton重新添加.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton重新添加.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton重新添加.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton重新添加.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton重新添加.Font = New Font("微软雅黑", 10F)
        UiButton重新添加.ForeColor = Color.CornflowerBlue
        UiButton重新添加.ForeDisableColor = Color.CornflowerBlue
        UiButton重新添加.ForeHoverColor = Color.CornflowerBlue
        UiButton重新添加.ForePressColor = Color.CornflowerBlue
        UiButton重新添加.ForeSelectedColor = Color.CornflowerBlue
        UiButton重新添加.Location = New Point(510, 10)
        UiButton重新添加.MinimumSize = New Size(1, 1)
        UiButton重新添加.Name = "UiButton重新添加"
        UiButton重新添加.Radius = 0
        UiButton重新添加.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton重新添加.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton重新添加.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton重新添加.RectHoverColor = Color.CornflowerBlue
        UiButton重新添加.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton重新添加.RectSelectedColor = Color.CornflowerBlue
        UiButton重新添加.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton重新添加.Size = New Size(70, 40)
        UiButton重新添加.TabIndex = 94
        UiButton重新添加.Text = "重添加"
        UiButton重新添加.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton8
        ' 
        UiButton8.Dock = DockStyle.Left
        UiButton8.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton8.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton8.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton8.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton8.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton8.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton8.Font = New Font("微软雅黑", 10F)
        UiButton8.ForeColor = Color.CornflowerBlue
        UiButton8.ForeDisableColor = Color.CornflowerBlue
        UiButton8.ForeHoverColor = Color.CornflowerBlue
        UiButton8.ForePressColor = Color.CornflowerBlue
        UiButton8.ForeSelectedColor = Color.CornflowerBlue
        UiButton8.Location = New Point(440, 10)
        UiButton8.MinimumSize = New Size(1, 1)
        UiButton8.Name = "UiButton8"
        UiButton8.Radius = 0
        UiButton8.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton8.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton8.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton8.RectHoverColor = Color.CornflowerBlue
        UiButton8.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton8.RectSelectedColor = Color.CornflowerBlue
        UiButton8.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton8.Size = New Size(70, 40)
        UiButton8.TabIndex = 88
        UiButton8.Text = "重配置"
        UiButton8.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton9
        ' 
        UiButton9.Dock = DockStyle.Left
        UiButton9.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton9.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton9.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton9.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton9.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton9.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton9.Font = New Font("微软雅黑", 10F)
        UiButton9.ForeColor = Color.MediumPurple
        UiButton9.ForeDisableColor = Color.MediumPurple
        UiButton9.ForeHoverColor = Color.MediumPurple
        UiButton9.ForePressColor = Color.MediumPurple
        UiButton9.ForeSelectedColor = Color.MediumPurple
        UiButton9.Location = New Point(360, 10)
        UiButton9.MinimumSize = New Size(1, 1)
        UiButton9.Name = "UiButton9"
        UiButton9.Radius = 0
        UiButton9.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton9.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton9.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton9.RectHoverColor = Color.CornflowerBlue
        UiButton9.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton9.RectSelectedColor = Color.CornflowerBlue
        UiButton9.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton9.Size = New Size(80, 40)
        UiButton9.TabIndex = 86
        UiButton9.Text = "定位输出"
        UiButton9.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton16
        ' 
        UiButton16.Dock = DockStyle.Left
        UiButton16.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton16.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton16.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton16.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton16.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton16.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton16.Font = New Font("微软雅黑", 10F)
        UiButton16.ForeColor = Color.Goldenrod
        UiButton16.ForeDisableColor = Color.Goldenrod
        UiButton16.ForeHoverColor = Color.Goldenrod
        UiButton16.ForePressColor = Color.Goldenrod
        UiButton16.ForeSelectedColor = Color.Goldenrod
        UiButton16.Location = New Point(300, 10)
        UiButton16.MinimumSize = New Size(1, 1)
        UiButton16.Name = "UiButton16"
        UiButton16.Radius = 0
        UiButton16.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton16.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton16.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton16.RectHoverColor = Color.CornflowerBlue
        UiButton16.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton16.RectSelectedColor = Color.CornflowerBlue
        UiButton16.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton16.Size = New Size(60, 40)
        UiButton16.TabIndex = 78
        UiButton16.Text = "重置"
        UiButton16.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton6
        ' 
        UiButton6.Dock = DockStyle.Left
        UiButton6.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton6.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton6.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton6.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton6.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton6.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton6.Font = New Font("微软雅黑", 10F)
        UiButton6.ForeColor = Color.IndianRed
        UiButton6.ForeDisableColor = Color.IndianRed
        UiButton6.ForeHoverColor = Color.IndianRed
        UiButton6.ForePressColor = Color.IndianRed
        UiButton6.ForeSelectedColor = Color.IndianRed
        UiButton6.Location = New Point(240, 10)
        UiButton6.MinimumSize = New Size(1, 1)
        UiButton6.Name = "UiButton6"
        UiButton6.Radius = 0
        UiButton6.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton6.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton6.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton6.RectHoverColor = Color.CornflowerBlue
        UiButton6.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton6.RectSelectedColor = Color.CornflowerBlue
        UiButton6.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton6.Size = New Size(60, 40)
        UiButton6.TabIndex = 54
        UiButton6.Text = "移除"
        UiButton6.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton5
        ' 
        UiButton5.Dock = DockStyle.Left
        UiButton5.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton5.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton5.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton5.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton5.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton5.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton5.Font = New Font("微软雅黑", 10F)
        UiButton5.ForeColor = Color.IndianRed
        UiButton5.ForeDisableColor = Color.IndianRed
        UiButton5.ForeHoverColor = Color.IndianRed
        UiButton5.ForePressColor = Color.IndianRed
        UiButton5.ForeSelectedColor = Color.IndianRed
        UiButton5.Location = New Point(180, 10)
        UiButton5.MinimumSize = New Size(1, 1)
        UiButton5.Name = "UiButton5"
        UiButton5.Radius = 0
        UiButton5.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton5.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton5.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton5.RectHoverColor = Color.CornflowerBlue
        UiButton5.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton5.RectSelectedColor = Color.CornflowerBlue
        UiButton5.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton5.Size = New Size(60, 40)
        UiButton5.TabIndex = 52
        UiButton5.Text = "停止"
        UiButton5.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton2
        ' 
        UiButton2.Dock = DockStyle.Left
        UiButton2.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton2.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton2.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton2.Font = New Font("微软雅黑", 10F)
        UiButton2.ForeColor = Color.YellowGreen
        UiButton2.ForeDisableColor = Color.YellowGreen
        UiButton2.ForeHoverColor = Color.YellowGreen
        UiButton2.ForePressColor = Color.YellowGreen
        UiButton2.ForeSelectedColor = Color.YellowGreen
        UiButton2.Location = New Point(120, 10)
        UiButton2.MinimumSize = New Size(1, 1)
        UiButton2.Name = "UiButton2"
        UiButton2.Radius = 0
        UiButton2.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton2.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton2.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton2.RectHoverColor = Color.CornflowerBlue
        UiButton2.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton2.RectSelectedColor = Color.CornflowerBlue
        UiButton2.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton2.Size = New Size(60, 40)
        UiButton2.TabIndex = 48
        UiButton2.Text = "恢复"
        UiButton2.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton1
        ' 
        UiButton1.Dock = DockStyle.Left
        UiButton1.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton1.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton1.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.Font = New Font("微软雅黑", 10F)
        UiButton1.ForeColor = Color.Goldenrod
        UiButton1.ForeDisableColor = Color.Goldenrod
        UiButton1.ForeHoverColor = Color.Goldenrod
        UiButton1.ForePressColor = Color.Goldenrod
        UiButton1.ForeSelectedColor = Color.Goldenrod
        UiButton1.Location = New Point(60, 10)
        UiButton1.MinimumSize = New Size(1, 1)
        UiButton1.Name = "UiButton1"
        UiButton1.Radius = 0
        UiButton1.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton1.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton1.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton1.RectHoverColor = Color.CornflowerBlue
        UiButton1.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton1.RectSelectedColor = Color.CornflowerBlue
        UiButton1.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton1.Size = New Size(60, 40)
        UiButton1.TabIndex = 46
        UiButton1.Text = "暂停"
        UiButton1.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton3
        ' 
        UiButton3.Dock = DockStyle.Left
        UiButton3.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton3.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton3.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton3.FillHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiButton3.FillPressColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton3.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton3.Font = New Font("微软雅黑", 10F)
        UiButton3.ForeColor = Color.YellowGreen
        UiButton3.ForeDisableColor = Color.YellowGreen
        UiButton3.ForeHoverColor = Color.YellowGreen
        UiButton3.ForePressColor = Color.YellowGreen
        UiButton3.ForeSelectedColor = Color.YellowGreen
        UiButton3.Location = New Point(0, 10)
        UiButton3.MinimumSize = New Size(1, 1)
        UiButton3.Name = "UiButton3"
        UiButton3.Radius = 0
        UiButton3.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton3.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton3.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton3.RectHoverColor = Color.CornflowerBlue
        UiButton3.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton3.RectSelectedColor = Color.CornflowerBlue
        UiButton3.RectSides = ToolStripStatusLabelBorderSides.None
        UiButton3.Size = New Size(60, 40)
        UiButton3.TabIndex = 44
        UiButton3.Text = "开始"
        UiButton3.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' TabPage添加文件
        ' 
        TabPage添加文件.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPage添加文件.Controls.Add(Panel58)
        TabPage添加文件.Controls.Add(Panel57)
        TabPage添加文件.Controls.Add(Panel3)
        TabPage添加文件.Font = New Font("微软雅黑", 10F)
        TabPage添加文件.Location = New Point(151, 0)
        TabPage添加文件.Name = "TabPage添加文件"
        TabPage添加文件.Size = New Size(1133, 761)
        TabPage添加文件.TabIndex = 1
        TabPage添加文件.Text = "添加文件"
        ' 
        ' Panel58
        ' 
        Panel58.Controls.Add(ListView2)
        Panel58.Dock = DockStyle.Fill
        Panel58.Location = New Point(0, 60)
        Panel58.Name = "Panel58"
        Panel58.Padding = New Padding(10, 10, 0, 10)
        Panel58.Size = New Size(1133, 646)
        Panel58.TabIndex = 6
        ' 
        ' ListView2
        ' 
        ListView2.AllowDrop = True
        ListView2.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        ListView2.BorderStyle = BorderStyle.None
        ListView2.Columns.AddRange(New ColumnHeader() {ColumnHeader9})
        ListView2.Dock = DockStyle.Fill
        ListView2.ForeColor = Color.Silver
        ListView2.FullRowSelect = True
        ListView2.HeaderStyle = ColumnHeaderStyle.None
        ListView2.Location = New Point(10, 10)
        ListView2.Name = "ListView2"
        ListView2.OwnerDraw = True
        ListView2.ShowItemToolTips = True
        ListView2.Size = New Size(1123, 626)
        ListView2.StateImageList = ImageList1
        ListView2.TabIndex = 0
        ListView2.TabStop = False
        ListView2.UseCompatibleStateImageBehavior = False
        ListView2.View = View.Details
        ' 
        ' Panel57
        ' 
        Panel57.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel57.Controls.Add(UiComboBox21)
        Panel57.Controls.Add(Label100)
        Panel57.Controls.Add(UiComboBox输出容器)
        Panel57.Dock = DockStyle.Bottom
        Panel57.Location = New Point(0, 706)
        Panel57.Name = "Panel57"
        Panel57.Padding = New Padding(10)
        Panel57.Size = New Size(1133, 55)
        Panel57.TabIndex = 5
        ' 
        ' UiComboBox21
        ' 
        UiComboBox21.DataSource = Nothing
        UiComboBox21.Dock = DockStyle.Fill
        UiComboBox21.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList
        UiComboBox21.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox21.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox21.FillDisableColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox21.Font = New Font("微软雅黑", 10F)
        UiComboBox21.ForeColor = Color.Silver
        UiComboBox21.ForeDisableColor = Color.Silver
        UiComboBox21.ItemFillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox21.ItemForeColor = Color.Silver
        UiComboBox21.ItemHeight = 30
        UiComboBox21.ItemHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiComboBox21.ItemRectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiComboBox21.Items.AddRange(New Object() {"输出到原目录", "浏览 ..."})
        UiComboBox21.ItemSelectBackColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox21.ItemSelectForeColor = Color.Silver
        UiComboBox21.Location = New Point(270, 10)
        UiComboBox21.Margin = New Padding(4, 5, 4, 5)
        UiComboBox21.MaxDropDownItems = 17
        UiComboBox21.MinimumSize = New Size(63, 0)
        UiComboBox21.Name = "UiComboBox21"
        UiComboBox21.Padding = New Padding(0, 0, 30, 2)
        UiComboBox21.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiComboBox21.RectColor = Color.CornflowerBlue
        UiComboBox21.RectDisableColor = Color.CornflowerBlue
        UiComboBox21.ScrollBarHandleWidth = 20
        UiComboBox21.Size = New Size(853, 35)
        UiComboBox21.Style = Sunny.UI.UIStyle.Custom
        UiComboBox21.StyleDropDown = Sunny.UI.UIStyle.Black
        UiComboBox21.SymbolSize = 24
        UiComboBox21.TabIndex = 75
        UiComboBox21.TextAlignment = ContentAlignment.MiddleLeft
        UiComboBox21.Watermark = "选择输出目录"
        UiComboBox21.WatermarkActiveColor = Color.CornflowerBlue
        UiComboBox21.WatermarkColor = Color.CornflowerBlue
        ' 
        ' Label100
        ' 
        Label100.Dock = DockStyle.Left
        Label100.Location = New Point(260, 10)
        Label100.Name = "Label100"
        Label100.Size = New Size(10, 35)
        Label100.TabIndex = 74
        ' 
        ' UiComboBox输出容器
        ' 
        UiComboBox输出容器.DataSource = Nothing
        UiComboBox输出容器.Dock = DockStyle.Left
        UiComboBox输出容器.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox输出容器.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox输出容器.FillDisableColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox输出容器.Font = New Font("微软雅黑", 10F)
        UiComboBox输出容器.ForeColor = Color.Silver
        UiComboBox输出容器.ForeDisableColor = Color.Silver
        UiComboBox输出容器.ItemFillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox输出容器.ItemForeColor = Color.Silver
        UiComboBox输出容器.ItemHeight = 30
        UiComboBox输出容器.ItemHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiComboBox输出容器.ItemRectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiComboBox输出容器.Items.AddRange(New Object() {".mp4", ".mkv", ".flv", ".mov", ".wmv", ".rmvb", ".mp3", ".flac", ".wav", ".png", ".jpg", ".jpeg", ".gif"})
        UiComboBox输出容器.ItemSelectBackColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox输出容器.ItemSelectForeColor = Color.Silver
        UiComboBox输出容器.Location = New Point(10, 10)
        UiComboBox输出容器.Margin = New Padding(4, 5, 4, 5)
        UiComboBox输出容器.MaxDropDownItems = 17
        UiComboBox输出容器.MinimumSize = New Size(63, 0)
        UiComboBox输出容器.Name = "UiComboBox输出容器"
        UiComboBox输出容器.Padding = New Padding(0, 0, 30, 2)
        UiComboBox输出容器.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiComboBox输出容器.RectColor = Color.YellowGreen
        UiComboBox输出容器.RectDisableColor = Color.YellowGreen
        UiComboBox输出容器.ScrollBarHandleWidth = 20
        UiComboBox输出容器.Size = New Size(250, 35)
        UiComboBox输出容器.Style = Sunny.UI.UIStyle.Custom
        UiComboBox输出容器.StyleDropDown = Sunny.UI.UIStyle.Black
        UiComboBox输出容器.SymbolSize = 24
        UiComboBox输出容器.TabIndex = 71
        UiComboBox输出容器.TextAlignment = ContentAlignment.MiddleLeft
        UiComboBox输出容器.Watermark = "选择或填写输出容器(后缀)"
        UiComboBox输出容器.WatermarkActiveColor = Color.YellowGreen
        UiComboBox输出容器.WatermarkColor = Color.YellowGreen
        ' 
        ' Panel3
        ' 
        Panel3.BackColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        Panel3.Controls.Add(Label102)
        Panel3.Controls.Add(UiButton12)
        Panel3.Controls.Add(Label18)
        Panel3.Controls.Add(UiButton11)
        Panel3.Controls.Add(Label17)
        Panel3.Controls.Add(UiButton10)
        Panel3.Controls.Add(Label24)
        Panel3.Controls.Add(UiButton18)
        Panel3.Controls.Add(Label19)
        Panel3.Controls.Add(UiButton14)
        Panel3.Dock = DockStyle.Top
        Panel3.Location = New Point(0, 0)
        Panel3.Name = "Panel3"
        Panel3.Padding = New Padding(10)
        Panel3.Size = New Size(1133, 60)
        Panel3.TabIndex = 4
        ' 
        ' Label102
        ' 
        Label102.Dock = DockStyle.Fill
        Label102.Font = New Font("微软雅黑", 9F)
        Label102.ForeColor = Color.Gray
        Label102.Location = New Point(700, 10)
        Label102.Name = "Label102"
        Label102.Padding = New Padding(10, 0, 0, 0)
        Label102.Size = New Size(423, 40)
        Label102.TabIndex = 75
        Label102.Text = "每个文件都是独立的任务,互不影响!" & vbCrLf & "如需加字幕等其他高级操作需用自定义参数实现"
        Label102.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' UiButton12
        ' 
        UiButton12.Dock = DockStyle.Left
        UiButton12.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton12.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton12.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton12.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton12.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton12.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton12.Font = New Font("微软雅黑", 10F)
        UiButton12.ForeColor = Color.IndianRed
        UiButton12.ForeDisableColor = Color.IndianRed
        UiButton12.ForeHoverColor = Color.IndianRed
        UiButton12.ForePressColor = Color.IndianRed
        UiButton12.ForeSelectedColor = Color.IndianRed
        UiButton12.Location = New Point(600, 10)
        UiButton12.MinimumSize = New Size(1, 1)
        UiButton12.Name = "UiButton12"
        UiButton12.Radius = 0
        UiButton12.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton12.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton12.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton12.RectHoverColor = Color.CornflowerBlue
        UiButton12.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton12.RectSelectedColor = Color.CornflowerBlue
        UiButton12.RectSize = 2
        UiButton12.Size = New Size(100, 40)
        UiButton12.TabIndex = 50
        UiButton12.Text = "全部移除"
        UiButton12.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label18
        ' 
        Label18.Dock = DockStyle.Left
        Label18.Location = New Point(590, 10)
        Label18.Name = "Label18"
        Label18.Size = New Size(10, 40)
        Label18.TabIndex = 49
        ' 
        ' UiButton11
        ' 
        UiButton11.Dock = DockStyle.Left
        UiButton11.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton11.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton11.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton11.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton11.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton11.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton11.Font = New Font("微软雅黑", 10F)
        UiButton11.ForeColor = Color.IndianRed
        UiButton11.ForeDisableColor = Color.IndianRed
        UiButton11.ForeHoverColor = Color.IndianRed
        UiButton11.ForePressColor = Color.IndianRed
        UiButton11.ForeSelectedColor = Color.IndianRed
        UiButton11.Location = New Point(490, 10)
        UiButton11.MinimumSize = New Size(1, 1)
        UiButton11.Name = "UiButton11"
        UiButton11.Radius = 0
        UiButton11.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton11.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton11.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton11.RectHoverColor = Color.CornflowerBlue
        UiButton11.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton11.RectSelectedColor = Color.CornflowerBlue
        UiButton11.RectSize = 2
        UiButton11.Size = New Size(100, 40)
        UiButton11.TabIndex = 48
        UiButton11.Text = "移除"
        UiButton11.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label17
        ' 
        Label17.Dock = DockStyle.Left
        Label17.Location = New Point(480, 10)
        Label17.Name = "Label17"
        Label17.Size = New Size(10, 40)
        Label17.TabIndex = 47
        ' 
        ' UiButton10
        ' 
        UiButton10.Dock = DockStyle.Left
        UiButton10.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton10.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton10.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton10.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton10.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton10.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton10.Font = New Font("微软雅黑", 10F)
        UiButton10.ForeColor = Color.MediumPurple
        UiButton10.ForeDisableColor = Color.MediumPurple
        UiButton10.ForeHoverColor = Color.MediumPurple
        UiButton10.ForePressColor = Color.MediumPurple
        UiButton10.ForeSelectedColor = Color.MediumPurple
        UiButton10.Location = New Point(280, 10)
        UiButton10.MinimumSize = New Size(1, 1)
        UiButton10.Name = "UiButton10"
        UiButton10.Radius = 0
        UiButton10.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton10.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton10.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton10.RectHoverColor = Color.CornflowerBlue
        UiButton10.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton10.RectSelectedColor = Color.CornflowerBlue
        UiButton10.RectSize = 2
        UiButton10.Size = New Size(200, 40)
        UiButton10.TabIndex = 46
        UiButton10.Text = "添加文件夹及其子目录"
        UiButton10.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label24
        ' 
        Label24.Dock = DockStyle.Left
        Label24.Location = New Point(270, 10)
        Label24.Name = "Label24"
        Label24.Size = New Size(10, 40)
        Label24.TabIndex = 45
        ' 
        ' UiButton18
        ' 
        UiButton18.Dock = DockStyle.Left
        UiButton18.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton18.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton18.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton18.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton18.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton18.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton18.Font = New Font("微软雅黑", 10F)
        UiButton18.ForeColor = Color.MediumPurple
        UiButton18.ForeDisableColor = Color.MediumPurple
        UiButton18.ForeHoverColor = Color.MediumPurple
        UiButton18.ForePressColor = Color.MediumPurple
        UiButton18.ForeSelectedColor = Color.MediumPurple
        UiButton18.Location = New Point(170, 10)
        UiButton18.MinimumSize = New Size(1, 1)
        UiButton18.Name = "UiButton18"
        UiButton18.Radius = 0
        UiButton18.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton18.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton18.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton18.RectHoverColor = Color.CornflowerBlue
        UiButton18.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton18.RectSelectedColor = Color.CornflowerBlue
        UiButton18.RectSize = 2
        UiButton18.Size = New Size(100, 40)
        UiButton18.TabIndex = 44
        UiButton18.Text = "添加文件"
        UiButton18.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label19
        ' 
        Label19.Dock = DockStyle.Left
        Label19.Location = New Point(160, 10)
        Label19.Name = "Label19"
        Label19.Size = New Size(10, 40)
        Label19.TabIndex = 72
        ' 
        ' UiButton14
        ' 
        UiButton14.Dock = DockStyle.Left
        UiButton14.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton14.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton14.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton14.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton14.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton14.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton14.Font = New Font("微软雅黑", 10F)
        UiButton14.ForeColor = Color.YellowGreen
        UiButton14.ForeDisableColor = Color.YellowGreen
        UiButton14.ForeHoverColor = Color.YellowGreen
        UiButton14.ForePressColor = Color.YellowGreen
        UiButton14.ForeSelectedColor = Color.YellowGreen
        UiButton14.Location = New Point(10, 10)
        UiButton14.MinimumSize = New Size(1, 1)
        UiButton14.Name = "UiButton14"
        UiButton14.Radius = 0
        UiButton14.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton14.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton14.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton14.RectHoverColor = Color.CornflowerBlue
        UiButton14.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton14.RectSelectedColor = Color.CornflowerBlue
        UiButton14.RectSize = 2
        UiButton14.Size = New Size(150, 40)
        UiButton14.TabIndex = 71
        UiButton14.Text = "加入编码队列"
        UiButton14.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' TabPage转码压制
        ' 
        TabPage转码压制.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPage转码压制.Controls.Add(Panel6)
        TabPage转码压制.Location = New Point(151, 0)
        TabPage转码压制.Name = "TabPage转码压制"
        TabPage转码压制.Size = New Size(1133, 761)
        TabPage转码压制.TabIndex = 14
        TabPage转码压制.Text = "参数面板"
        ' 
        ' Panel6
        ' 
        Panel6.Dock = DockStyle.Fill
        Panel6.Font = New Font("微软雅黑", 10F)
        Panel6.Location = New Point(0, 0)
        Panel6.Name = "Panel6"
        Panel6.Size = New Size(1133, 761)
        Panel6.TabIndex = 0
        ' 
        ' TabPage媒体信息
        ' 
        TabPage媒体信息.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPage媒体信息.Controls.Add(Panel4)
        TabPage媒体信息.Location = New Point(151, 0)
        TabPage媒体信息.Name = "TabPage媒体信息"
        TabPage媒体信息.Size = New Size(1133, 761)
        TabPage媒体信息.TabIndex = 17
        TabPage媒体信息.Text = "媒体信息"
        ' 
        ' Panel4
        ' 
        Panel4.Controls.Add(Panel76)
        Panel4.Controls.Add(Label23)
        Panel4.Controls.Add(Panel9)
        Panel4.Dock = DockStyle.Fill
        Panel4.Font = New Font("微软雅黑", 10F)
        Panel4.Location = New Point(0, 0)
        Panel4.Name = "Panel4"
        Panel4.Padding = New Padding(20)
        Panel4.Size = New Size(1133, 761)
        Panel4.TabIndex = 0
        ' 
        ' Panel76
        ' 
        Panel76.AutoSize = True
        Panel76.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel76.Controls.Add(Panel77)
        Panel76.Dock = DockStyle.Fill
        Panel76.Location = New Point(20, 152)
        Panel76.Name = "Panel76"
        Panel76.Padding = New Padding(10)
        Panel76.Size = New Size(1093, 589)
        Panel76.TabIndex = 84
        ' 
        ' Panel77
        ' 
        Panel77.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        Panel77.Controls.Add(RichTextBox1)
        Panel77.Dock = DockStyle.Fill
        Panel77.Location = New Point(10, 10)
        Panel77.Name = "Panel77"
        Panel77.Padding = New Padding(0, 10, 0, 10)
        Panel77.Size = New Size(1073, 569)
        Panel77.TabIndex = 13
        ' 
        ' RichTextBox1
        ' 
        RichTextBox1.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        RichTextBox1.BorderStyle = BorderStyle.None
        RichTextBox1.Dock = DockStyle.Fill
        RichTextBox1.Font = New Font("微软雅黑", 12F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        RichTextBox1.ForeColor = Color.Silver
        RichTextBox1.Location = New Point(0, 10)
        RichTextBox1.Name = "RichTextBox1"
        RichTextBox1.ReadOnly = True
        RichTextBox1.ScrollBars = RichTextBoxScrollBars.Vertical
        RichTextBox1.ShowSelectionMargin = True
        RichTextBox1.Size = New Size(1073, 549)
        RichTextBox1.TabIndex = 11
        RichTextBox1.Text = ""
        ' 
        ' Label23
        ' 
        Label23.Dock = DockStyle.Top
        Label23.Location = New Point(20, 132)
        Label23.Name = "Label23"
        Label23.Size = New Size(1093, 20)
        Label23.TabIndex = 83
        ' 
        ' Panel9
        ' 
        Panel9.AutoSize = True
        Panel9.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel9.Controls.Add(Panel75)
        Panel9.Controls.Add(Label123)
        Panel9.Controls.Add(Label22)
        Panel9.Dock = DockStyle.Top
        Panel9.Location = New Point(20, 20)
        Panel9.Name = "Panel9"
        Panel9.Padding = New Padding(10)
        Panel9.Size = New Size(1093, 112)
        Panel9.TabIndex = 80
        ' 
        ' Panel75
        ' 
        Panel75.Controls.Add(UiButton打开文件显示参数)
        Panel75.Dock = DockStyle.Top
        Panel75.Location = New Point(10, 67)
        Panel75.Name = "Panel75"
        Panel75.Padding = New Padding(3, 0, 0, 0)
        Panel75.Size = New Size(1073, 35)
        Panel75.TabIndex = 11
        ' 
        ' UiButton打开文件显示参数
        ' 
        UiButton打开文件显示参数.AllowDrop = True
        UiButton打开文件显示参数.Dock = DockStyle.Left
        UiButton打开文件显示参数.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton打开文件显示参数.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton打开文件显示参数.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton打开文件显示参数.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton打开文件显示参数.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton打开文件显示参数.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton打开文件显示参数.Font = New Font("微软雅黑", 10F)
        UiButton打开文件显示参数.ForeColor = Color.YellowGreen
        UiButton打开文件显示参数.ForeDisableColor = Color.YellowGreen
        UiButton打开文件显示参数.ForeHoverColor = Color.YellowGreen
        UiButton打开文件显示参数.ForePressColor = Color.YellowGreen
        UiButton打开文件显示参数.ForeSelectedColor = Color.YellowGreen
        UiButton打开文件显示参数.Location = New Point(3, 0)
        UiButton打开文件显示参数.MinimumSize = New Size(1, 1)
        UiButton打开文件显示参数.Name = "UiButton打开文件显示参数"
        UiButton打开文件显示参数.Radius = 0
        UiButton打开文件显示参数.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton打开文件显示参数.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton打开文件显示参数.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton打开文件显示参数.RectHoverColor = Color.CornflowerBlue
        UiButton打开文件显示参数.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton打开文件显示参数.RectSelectedColor = Color.CornflowerBlue
        UiButton打开文件显示参数.RectSize = 2
        UiButton打开文件显示参数.Size = New Size(100, 35)
        UiButton打开文件显示参数.TabIndex = 44
        UiButton打开文件显示参数.Text = "打开"
        UiButton打开文件显示参数.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label123
        ' 
        Label123.AutoSize = True
        Label123.Dock = DockStyle.Top
        Label123.Font = New Font("微软雅黑", 9F)
        Label123.ForeColor = Color.Gray
        Label123.Location = New Point(10, 40)
        Label123.Name = "Label123"
        Label123.Padding = New Padding(0, 0, 0, 10)
        Label123.Size = New Size(443, 27)
        Label123.TabIndex = 4
        Label123.Text = "此功能依赖 ffprobe.exe 且直接展示其输出信息,可以直接把文件拖到打开按钮上"
        ' 
        ' Label22
        ' 
        Label22.AutoSize = True
        Label22.Dock = DockStyle.Top
        Label22.Font = New Font("微软雅黑", 10F)
        Label22.Location = New Point(10, 10)
        Label22.Name = "Label22"
        Label22.Padding = New Padding(0, 0, 0, 10)
        Label22.Size = New Size(149, 30)
        Label22.TabIndex = 0
        Label22.Text = "快捷查看媒体参数信息"
        ' 
        ' TabPageEX混流
        ' 
        TabPageEX混流.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPageEX混流.Location = New Point(151, 0)
        TabPageEX混流.Name = "TabPageEX混流"
        TabPageEX混流.Size = New Size(1133, 761)
        TabPageEX混流.TabIndex = 18
        TabPageEX混流.Text = "EX:混流"
        ' 
        ' TabPageEX合并
        ' 
        TabPageEX合并.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPageEX合并.Location = New Point(151, 0)
        TabPageEX合并.Name = "TabPageEX合并"
        TabPageEX合并.Size = New Size(1133, 761)
        TabPageEX合并.TabIndex = 19
        TabPageEX合并.Text = "EX:合并"
        ' 
        ' TabPageEX截取
        ' 
        TabPageEX截取.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        TabPageEX截取.Location = New Point(151, 0)
        TabPageEX截取.Name = "TabPageEX截取"
        TabPageEX截取.Size = New Size(1133, 761)
        TabPageEX截取.TabIndex = 20
        TabPageEX截取.Text = "EX:截取"
        ' 
        ' Timer1
        ' 
        Timer1.Interval = 1000
        ' 
        ' Form1
        ' 
        AutoScaleDimensions = New SizeF(96F, 96F)
        AutoScaleMode = AutoScaleMode.Dpi
        BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        ClientSize = New Size(1284, 761)
        Controls.Add(UiTabControlMenu1)
        DoubleBuffered = True
        Font = New Font("微软雅黑", 10F)
        ForeColor = Color.Silver
        MinimumSize = New Size(1300, 800)
        Name = "Form1"
        StartPosition = FormStartPosition.CenterScreen
        Text = "FFmpegFreeUI"
        UiTabControlMenu1.ResumeLayout(False)
        TabPage起始页面.ResumeLayout(False)
        Panel44.ResumeLayout(False)
        Panel44.PerformLayout()
        Panel10.ResumeLayout(False)
        Panel10.PerformLayout()
        Panel11.ResumeLayout(False)
        Panel15.ResumeLayout(False)
        Panel15.PerformLayout()
        Panel16.ResumeLayout(False)
        Panel7.ResumeLayout(False)
        Panel8.ResumeLayout(False)
        Panel8.PerformLayout()
        Panel12.ResumeLayout(False)
        Panel12.PerformLayout()
        Panel13.ResumeLayout(False)
        Panel5.ResumeLayout(False)
        Panel5.PerformLayout()
        Panel73.ResumeLayout(False)
        Panel73.PerformLayout()
        TabPage编码队列.ResumeLayout(False)
        Panel56.ResumeLayout(False)
        Panel1.ResumeLayout(False)
        Panel41.ResumeLayout(False)
        Panel41.PerformLayout()
        Panel47.ResumeLayout(False)
        Panel2.ResumeLayout(False)
        TabPage添加文件.ResumeLayout(False)
        Panel58.ResumeLayout(False)
        Panel57.ResumeLayout(False)
        Panel3.ResumeLayout(False)
        TabPage转码压制.ResumeLayout(False)
        TabPage媒体信息.ResumeLayout(False)
        Panel4.ResumeLayout(False)
        Panel4.PerformLayout()
        Panel76.ResumeLayout(False)
        Panel77.ResumeLayout(False)
        Panel9.ResumeLayout(False)
        Panel9.PerformLayout()
        Panel75.ResumeLayout(False)
        ResumeLayout(False)
    End Sub
    Friend WithEvents UiTabControlMenu1 As Sunny.UI.UITabControlMenu
    Friend WithEvents TabPage编码队列 As TabPage
    Friend WithEvents TabPage添加文件 As TabPage
    Friend WithEvents Panel1 As Panel
    Friend WithEvents Label8 As Label
    Friend WithEvents Label7 As Label
    Friend WithEvents Label6 As Label
    Friend WithEvents Label5 As Label
    Friend WithEvents Label4 As Label
    Friend WithEvents Label3 As Label
    Friend WithEvents Label2 As Label
    Friend WithEvents Label1 As Label
    Friend WithEvents Panel2 As Panel
    Friend WithEvents UiButton3 As Sunny.UI.UIButton
    Friend WithEvents UiButton6 As Sunny.UI.UIButton
    Friend WithEvents UiButton5 As Sunny.UI.UIButton
    Friend WithEvents UiButton2 As Sunny.UI.UIButton
    Friend WithEvents UiButton1 As Sunny.UI.UIButton
    Friend WithEvents Panel3 As Panel
    Friend WithEvents UiButton12 As Sunny.UI.UIButton
    Friend WithEvents Label18 As Label
    Friend WithEvents UiButton11 As Sunny.UI.UIButton
    Friend WithEvents Label17 As Label
    Friend WithEvents UiButton10 As Sunny.UI.UIButton
    Friend WithEvents Label24 As Label
    Friend WithEvents UiButton18 As Sunny.UI.UIButton
    Friend WithEvents Panel56 As Panel
    Friend WithEvents ListView1 As ListView
    Friend WithEvents ColumnHeader1 As ColumnHeader
    Friend WithEvents ColumnHeader2 As ColumnHeader
    Friend WithEvents ColumnHeader3 As ColumnHeader
    Friend WithEvents ColumnHeader4 As ColumnHeader
    Friend WithEvents ColumnHeader5 As ColumnHeader
    Friend WithEvents ColumnHeader6 As ColumnHeader
    Friend WithEvents ColumnHeader7 As ColumnHeader
    Friend WithEvents ColumnHeader8 As ColumnHeader
    Friend WithEvents ImageList1 As ImageList
    Friend WithEvents Panel58 As Panel
    Friend WithEvents ListView2 As ListView
    Friend WithEvents ColumnHeader9 As ColumnHeader
    Friend WithEvents Panel57 As Panel
    Friend WithEvents Label100 As Label
    Friend WithEvents UiComboBox输出容器 As Sunny.UI.UIComboBox
    Friend WithEvents Label19 As Label
    Friend WithEvents UiButton14 As Sunny.UI.UIButton
    Friend WithEvents UiComboBox21 As Sunny.UI.UIComboBox
    Friend WithEvents Timer1 As Timer
    Friend WithEvents UiButton16 As Sunny.UI.UIButton
    Friend WithEvents TabPage起始页面 As TabPage
    Friend WithEvents Panel44 As Panel
    Friend WithEvents Label102 As Label
    Friend WithEvents Panel41 As Panel
    Friend WithEvents Label74 As Label
    Friend WithEvents Panel47 As Panel
    Friend WithEvents Label76 As Label
    Friend WithEvents Label120 As Label
    Friend WithEvents TabPage转码压制 As TabPage
    Friend WithEvents Panel6 As Panel
    Friend WithEvents TabPage媒体信息 As TabPage
    Friend WithEvents Panel4 As Panel
    Friend WithEvents Panel73 As Panel
    Friend WithEvents Label128 As Label
    Friend WithEvents Label126 As Label
    Friend WithEvents Label125 As Label
    Friend WithEvents Label124 As Label
    Friend WithEvents Panel7 As Panel
    Friend WithEvents Panel5 As Panel
    Friend WithEvents LinkLabel6 As LinkLabel
    Friend WithEvents LinkLabel5 As LinkLabel
    Friend WithEvents LinkLabel4 As LinkLabel
    Friend WithEvents LinkLabel3 As LinkLabel
    Friend WithEvents LinkLabel2 As LinkLabel
    Friend WithEvents LinkLabel7 As LinkLabel
    Friend WithEvents Label127 As Label
    Friend WithEvents Label20 As Label
    Friend WithEvents Panel8 As Panel
    Friend WithEvents Label122 As Label
    Friend WithEvents Label75 As Label
    Friend WithEvents Label73 As Label
    Friend WithEvents Label65 As Label
    Friend WithEvents Label64 As Label
    Friend WithEvents Label129 As Label
    Friend WithEvents Label21 As Label
    Friend WithEvents Panel9 As Panel
    Friend WithEvents Label123 As Label
    Friend WithEvents Label22 As Label
    Friend WithEvents Panel75 As Panel
    Friend WithEvents UiButton打开文件显示参数 As Sunny.UI.UIButton
    Friend WithEvents Label23 As Label
    Friend WithEvents Panel76 As Panel
    Friend WithEvents Panel77 As Panel
    Friend WithEvents RichTextBox1 As RichTextBox
    Friend WithEvents UiButton15 As Sunny.UI.UIButton
    Friend WithEvents UiButton7 As Sunny.UI.UIButton
    Friend WithEvents UiButton重新添加 As Sunny.UI.UIButton
    Friend WithEvents UiButton8 As Sunny.UI.UIButton
    Friend WithEvents UiButton9 As Sunny.UI.UIButton
    Friend WithEvents Panel10 As Panel
    Friend WithEvents Label28 As Label
    Friend WithEvents Label29 As Label
    Friend WithEvents Label30 As Label
    Friend WithEvents Panel11 As Panel
    Friend WithEvents UiTextBox处理器核心 As Sunny.UI.UITextBox
    Friend WithEvents UiTextBox快捷输入CPU核心 As Sunny.UI.UITextBox
    Friend WithEvents Label106 As Label
    Friend WithEvents TabPageEX混流 As TabPage
    Friend WithEvents TabPageEX合并 As TabPage
    Friend WithEvents TabPageEX截取 As TabPage
    Friend WithEvents Label15 As Label
    Friend WithEvents Panel12 As Panel
    Friend WithEvents Label14 As Label
    Friend WithEvents Label9 As Label
    Friend WithEvents Panel13 As Panel
    Friend WithEvents UiComboBox1 As Sunny.UI.UIComboBox
    Friend WithEvents Label137 As Label
    Friend WithEvents UiButton4 As Sunny.UI.UIButton
    Friend WithEvents Label11 As Label
    Friend WithEvents Panel14 As Panel
    Friend WithEvents Panel15 As Panel
    Friend WithEvents Panel16 As Panel
    Friend WithEvents UiComboBox2 As Sunny.UI.UIComboBox
    Friend WithEvents Label12 As Label
    Friend WithEvents Label10 As Label

End Class

```

## /FFmpegFreeUI/Form1.resx

```resx path="/FFmpegFreeUI/Form1.resx" 
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema

    Version 2.0

    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple
    name/value pairs.

    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.

    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="ImageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>135, 17</value>
  </metadata>
</root>
```

## /FFmpegFreeUI/Form1.vb

```vb path="/FFmpegFreeUI/Form1.vb" 
Imports System.ComponentModel
Imports System.IO
Public Class Form1
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)>
    Public Shared Property DPI As Single = Form1.CreateGraphics.DpiX / 96

    Public 是否初始化 As Boolean = False
    Private 上一次窗口状态 As FormWindowState

    Public 系统状态设定 As Integer = 0

    Public 常规流程参数页面 As New 界面_常规流程参数
    Public 编码队列右键菜单 As 暗黑上下文菜单

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        界面控制.初始化()
        视频编码器数据库.初始化()
        上一次窗口状态 = Me.WindowState
    End Sub

    Private Async Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        界面控制.界面校准()
        重新创建句柄()
        If DPI <> 1 Then DPI变动时校准界面()

        Label64.Text = "正在检查更新版本 ..."
        Label65.Text = ""
        Label73.Text = ""
        Label75.Text = ""
        Label122.Text = ""
        '检测是否有网络
        If My.Computer.Network.IsAvailable Then
            Dim a As New GitHubAPI.Release
            Dim s1 As String = Await a.获取仓库发布版信息Async("Lake1059/FFmpegFreeUI", "")
            If s1 <> "" Then
                Label64.Text = "获取更新信息失败"
                Label65.Text = ""
                Label73.Text = ""
                Label75.Text = ""
                Label122.Text = ""
            Else
                Label64.Text = "发布标题:" & a.发布标题
                Label65.Text = "最新标签:" & a.版本标签
                Label73.Text = "发布用户:" & a.发布者用户名
                Label75.Text = "文件数量:" & a.可供下载的文件.Count
                Label122.Text = "发布时间:" & a.发布时间
            End If
        Else
            Label64.Text = "无网络连接!联网后重启应用程序以重试"
            Label65.Text = ""
            Label73.Text = ""
            Label75.Text = ""
            Label122.Text = ""
        End If
    End Sub

    Private Sub Form1_DpiChanged(sender As Object, e As DpiChangedEventArgs) Handles Me.DpiChanged
        DPI = e.DeviceDpiNew / 96
        DPI变动时校准界面()
    End Sub

    Public Sub 重新创建句柄()
        Try
            If Not Me.IsHandleCreated Then Me.CreateHandle()
        Catch ex As Exception
        End Try
    End Sub

    Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
        If 是否初始化 = False Then Exit Sub
        If Me.WindowState = FormWindowState.Minimized Then Exit Sub
        If Me.WindowState <> 上一次窗口状态 Then
            界面控制.界面校准()
            上一次窗口状态 = Me.WindowState
        Else
            界面控制.界面校准()
        End If
    End Sub

    Private Sub Form1_Move(sender As Object, e As EventArgs) Handles Me.Move
        If 是否初始化 = False Then Exit Sub
        界面控制.界面校准()
    End Sub

    Sub DPI变动时校准界面()
        Me.MinimumSize = New Size(0, 0)
        Me.ClientSize = New Size(1300 * DPI, 800 * DPI)
        Me.MinimumSize = Me.Size
        Me.UiTabControlMenu1.ItemSize = New Size(150 * DPI, 40 * DPI)
        Me.ImageList1.ImageSize = New Size(1, 30 * DPI)
        常规流程参数页面.UiTabControl1.ItemSize = New Size(120 * Form1.DPI, 50 * Form1.DPI)
    End Sub

    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        If 编码任务.队列.Any(Function(task) task.状态 = 编码任务.编码状态.正在处理) Then
            Dim result = MsgBox("有任务正在处理,是否强制关闭所有进程?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo)
            If result = MsgBoxResult.No Then
                e.Cancel = True
                Exit Sub
            End If
        End If
        For Each task In 编码任务.队列
            task.清除占用()
        Next
        恢复系统状态()

        If My.Computer.FileSystem.FileExists(Path.Combine(Application.StartupPath, "FontName.txt")) Then
            My.Computer.FileSystem.WriteAllText(Path.Combine(Application.StartupPath, "FontName.txt"), Label11.Font.Name, False)
        End If

    End Sub

    Private Sub ListView1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListView1.KeyDown
        Select Case e.KeyCode
            Case Keys.A : If e.Control Then 界面控制_编码队列.全选任务()
            Case Keys.Delete : 界面控制_编码队列.移除任务()
        End Select
    End Sub

    Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
        If Me.ListView1.SelectedItems.Count = 1 Then
            Timer1.Enabled = True
            Panel41.Visible = True
            刷新调试信息()
        Else
            Timer1.Enabled = False
            Panel41.Visible = False
        End If
    End Sub

    Sub 刷新调试信息()
        Try
            Label74.Text = 编码任务.队列(Me.ListView1.SelectedItems(0).Index).实时输出
            Label76.Text = String.Join(vbCrLf, 编码任务.队列(Me.ListView1.SelectedItems(0).Index).错误列表)
            If Label76.Text = "" Then
                Panel47.Visible = False
                Label120.Visible = False
            Else
                Panel47.Visible = True
                Label120.Visible = True
                Dim s1 = 根据标签宽度计算显示高度(Label76)
                Label76.Height = s1
                If s1 > TabPage编码队列.Width * 0.3 Then
                    Panel47.Height = TabPage编码队列.Width * 0.3
                Else
                    Panel47.Height = s1
                End If
            End If
        Catch ex As Exception
            编码任务.队列(Me.ListView1.SelectedItems(0).Index).错误列表.Add({{contextString}}quot;刷新界面失败 {Now}")
        End Try
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        刷新调试信息()
    End Sub



    Private Sub UiButton打开文件显示参数_Click(sender As Object, e As EventArgs) Handles UiButton打开文件显示参数.Click
        Dim openFileDialog As New OpenFileDialog With {.Multiselect = False, .Filter = "所有文件|*.*"}
        If openFileDialog.ShowDialog() = DialogResult.OK Then
            显示媒体信息流程(openFileDialog.FileName)
        End If
    End Sub
    Sub 显示媒体信息流程(文件路径 As String)
        Me.RichTextBox1.Text = ""
        Dim FFprobeProcess As New Process
        FFprobeProcess = New Process()
        FFprobeProcess.StartInfo.FileName = "ffprobe"
        FFprobeProcess.StartInfo.WorkingDirectory = Application.StartupPath
        FFprobeProcess.StartInfo.Arguments = {{contextString}}quot;-hide_banner ""{文件路径}"""
        FFprobeProcess.StartInfo.RedirectStandardOutput = True
        FFprobeProcess.StartInfo.RedirectStandardError = True
        FFprobeProcess.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8
        FFprobeProcess.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8
        FFprobeProcess.StartInfo.CreateNoWindow = True
        FFprobeProcess.EnableRaisingEvents = True
        AddHandler FFprobeProcess.OutputDataReceived, AddressOf 显示媒体信息输出事件
        AddHandler FFprobeProcess.ErrorDataReceived, AddressOf 显示媒体信息输出事件
        FFprobeProcess.Start()
        FFprobeProcess.BeginOutputReadLine()
        FFprobeProcess.BeginErrorReadLine()
    End Sub
    Sub 显示媒体信息输出事件(sender As Object, e As DataReceivedEventArgs)
        If e.Data Is Nothing Then Exit Sub
        Try
            Me.重新创建句柄()
            Me.Invoke(Sub() Me.RichTextBox1.AppendText(e.Data & vbCrLf))
        Catch ex As Exception
        End Try
    End Sub
    Private Sub UiButton打开文件显示参数_DragDrop(sender As Object, e As DragEventArgs) Handles UiButton打开文件显示参数.DragDrop
        Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
        If files.Length > 0 Then
            显示媒体信息流程(files(0))
        End If
    End Sub
    Private Sub UiButton打开文件显示参数_DragEnter(sender As Object, e As DragEventArgs) Handles UiButton打开文件显示参数.DragEnter
        If e.Data.GetData(DataFormats.FileDrop) IsNot Nothing Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub

    Private Sub UiTextBox快捷输入CPU核心_KeyPress(sender As Object, e As KeyPressEventArgs) Handles UiTextBox快捷输入CPU核心.KeyPress
        Select Case e.KeyChar
            Case "0"c To "9"c, "~"c, ChrW(Keys.Back)
            Case ChrW(Keys.Enter)
                Dim input = UiTextBox快捷输入CPU核心.Text.Trim
                Dim result As New List(Of Integer)
                Try
                    If input.Contains("~"c) Then
                        Dim parts = input.Split("~"c)
                        If parts.Length = 2 Then
                            Dim startNum, endNum As Integer
                            If Integer.TryParse(parts(0), startNum) AndAlso Integer.TryParse(parts(1), endNum) Then
                                If startNum <= endNum Then
                                    For i = startNum To endNum
                                        result.Add(i)
                                    Next
                                    UiTextBox处理器核心.Text = String.Join(",", result)
                                End If
                            End If
                        End If
                    End If
                Catch ex As Exception
                    MsgBox("输入处理异常: " & ex.Message, MsgBoxStyle.Critical)
                End Try
                e.Handled = True
            Case Else
                Exit Sub
        End Select
    End Sub

    Private Sub Label9_Click(sender As Object, e As EventArgs) Handles Label9.Click

    End Sub
End Class

```

## /FFmpegFreeUI/Form画面裁剪交互窗口.Designer.vb

```vb path="/FFmpegFreeUI/Form画面裁剪交互窗口.Designer.vb" 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form画面裁剪交互窗口
    Inherits System.Windows.Forms.Form

    'Form 重写 Dispose,以清理组件列表。
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改它。  
    '不要使用代码编辑器修改它。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Panel73 = New Panel()
        Panel75 = New Panel()
        UiCheckBox居中 = New Sunny.UI.UICheckBox()
        Label3 = New Label()
        UiComboBox比例 = New Sunny.UI.UIComboBox()
        Label2 = New Label()
        UiTextBox1 = New Sunny.UI.UITextBox()
        Label1 = New Label()
        UiTextBox画面裁剪滤镜参数 = New Sunny.UI.UITextBox()
        Label125 = New Label()
        UiButton2 = New Sunny.UI.UIButton()
        Label127 = New Label()
        UiButton1 = New Sunny.UI.UIButton()
        Panel3 = New Panel()
        Label123 = New Label()
        Label122 = New Label()
        PictureBox2 = New PictureBox()
        Label4 = New Label()
        PictureBox3 = New PictureBox()
        Label128 = New Label()
        Panel1 = New Panel()
        Panel2 = New Panel()
        PictureBox1 = New PictureBox()
        Panel73.SuspendLayout()
        Panel75.SuspendLayout()
        Panel3.SuspendLayout()
        CType(PictureBox2, ComponentModel.ISupportInitialize).BeginInit()
        CType(PictureBox3, ComponentModel.ISupportInitialize).BeginInit()
        Panel1.SuspendLayout()
        Panel2.SuspendLayout()
        CType(PictureBox1, ComponentModel.ISupportInitialize).BeginInit()
        SuspendLayout()
        ' 
        ' Panel73
        ' 
        Panel73.AutoSize = True
        Panel73.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel73.Controls.Add(Panel75)
        Panel73.Controls.Add(Panel3)
        Panel73.Dock = DockStyle.Top
        Panel73.Location = New Point(20, 20)
        Panel73.Name = "Panel73"
        Panel73.Padding = New Padding(10)
        Panel73.Size = New Size(944, 176)
        Panel73.TabIndex = 80
        ' 
        ' Panel75
        ' 
        Panel75.Controls.Add(UiCheckBox居中)
        Panel75.Controls.Add(Label3)
        Panel75.Controls.Add(UiComboBox比例)
        Panel75.Controls.Add(Label2)
        Panel75.Controls.Add(UiTextBox1)
        Panel75.Controls.Add(Label1)
        Panel75.Controls.Add(UiTextBox画面裁剪滤镜参数)
        Panel75.Controls.Add(Label125)
        Panel75.Controls.Add(UiButton2)
        Panel75.Controls.Add(Label127)
        Panel75.Controls.Add(UiButton1)
        Panel75.Dock = DockStyle.Top
        Panel75.Location = New Point(10, 131)
        Panel75.Name = "Panel75"
        Panel75.Padding = New Padding(3, 0, 0, 0)
        Panel75.Size = New Size(924, 35)
        Panel75.TabIndex = 11
        ' 
        ' UiCheckBox居中
        ' 
        UiCheckBox居中.CheckBoxColor = Color.Silver
        UiCheckBox居中.CheckBoxSize = 20
        UiCheckBox居中.Dock = DockStyle.Left
        UiCheckBox居中.Font = New Font("微软雅黑", 10F)
        UiCheckBox居中.ForeColor = Color.Silver
        UiCheckBox居中.Location = New Point(653, 0)
        UiCheckBox居中.MinimumSize = New Size(1, 1)
        UiCheckBox居中.Name = "UiCheckBox居中"
        UiCheckBox居中.Size = New Size(100, 35)
        UiCheckBox居中.TabIndex = 99
        UiCheckBox居中.Text = "居中"
        ' 
        ' Label3
        ' 
        Label3.Dock = DockStyle.Left
        Label3.Location = New Point(643, 0)
        Label3.Name = "Label3"
        Label3.Size = New Size(10, 35)
        Label3.TabIndex = 84
        ' 
        ' UiComboBox比例
        ' 
        UiComboBox比例.DataSource = Nothing
        UiComboBox比例.Dock = DockStyle.Left
        UiComboBox比例.DropDownAutoWidth = True
        UiComboBox比例.DropDownStyle = Sunny.UI.UIDropDownStyle.DropDownList
        UiComboBox比例.FillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox比例.FillColor2 = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox比例.FillDisableColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox比例.Font = New Font("微软雅黑", 10F)
        UiComboBox比例.ForeColor = Color.Silver
        UiComboBox比例.ForeDisableColor = Color.Silver
        UiComboBox比例.ItemFillColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiComboBox比例.ItemForeColor = Color.Silver
        UiComboBox比例.ItemHeight = 30
        UiComboBox比例.ItemHoverColor = Color.FromArgb(CByte(56), CByte(56), CByte(56))
        UiComboBox比例.ItemRectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiComboBox比例.Items.AddRange(New Object() {"自由", "21:9", "16:9", "3:2", "2:1", "4:3", "1:1"})
        UiComboBox比例.ItemSelectBackColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox比例.ItemSelectForeColor = Color.Silver
        UiComboBox比例.Location = New Point(543, 0)
        UiComboBox比例.Margin = New Padding(4, 5, 4, 5)
        UiComboBox比例.MaxDropDownItems = 20
        UiComboBox比例.MinimumSize = New Size(63, 0)
        UiComboBox比例.Name = "UiComboBox比例"
        UiComboBox比例.Padding = New Padding(0, 0, 30, 2)
        UiComboBox比例.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiComboBox比例.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox比例.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiComboBox比例.ScrollBarHandleWidth = 20
        UiComboBox比例.Size = New Size(100, 35)
        UiComboBox比例.Style = Sunny.UI.UIStyle.Custom
        UiComboBox比例.StyleDropDown = Sunny.UI.UIStyle.Black
        UiComboBox比例.SymbolSize = 24
        UiComboBox比例.TabIndex = 83
        UiComboBox比例.TextAlignment = ContentAlignment.MiddleLeft
        UiComboBox比例.Watermark = "比例"
        ' 
        ' Label2
        ' 
        Label2.Dock = DockStyle.Left
        Label2.Location = New Point(533, 0)
        Label2.Name = "Label2"
        Label2.Size = New Size(10, 35)
        Label2.TabIndex = 82
        ' 
        ' UiTextBox1
        ' 
        UiTextBox1.Dock = DockStyle.Left
        UiTextBox1.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.Font = New Font("微软雅黑", 11F, FontStyle.Bold)
        UiTextBox1.ForeColor = Color.DarkGray
        UiTextBox1.ForeDisableColor = Color.DarkGray
        UiTextBox1.ForeReadOnlyColor = Color.DarkGray
        UiTextBox1.Location = New Point(383, 0)
        UiTextBox1.Margin = New Padding(4, 5, 4, 5)
        UiTextBox1.MinimumSize = New Size(1, 16)
        UiTextBox1.Name = "UiTextBox1"
        UiTextBox1.Padding = New Padding(5)
        UiTextBox1.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiTextBox1.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.RectSize = 2
        UiTextBox1.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox1.ScrollBarColor = Color.DimGray
        UiTextBox1.ScrollBarStyleInherited = False
        UiTextBox1.ShowText = False
        UiTextBox1.Size = New Size(150, 35)
        UiTextBox1.TabIndex = 81
        UiTextBox1.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox1.Watermark = "指定帧时间戳"
        UiTextBox1.WatermarkActiveColor = Color.DimGray
        UiTextBox1.WatermarkColor = Color.DimGray
        ' 
        ' Label1
        ' 
        Label1.Dock = DockStyle.Left
        Label1.Location = New Point(373, 0)
        Label1.Name = "Label1"
        Label1.Size = New Size(10, 35)
        Label1.TabIndex = 80
        ' 
        ' UiTextBox画面裁剪滤镜参数
        ' 
        UiTextBox画面裁剪滤镜参数.Dock = DockStyle.Left
        UiTextBox画面裁剪滤镜参数.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox画面裁剪滤镜参数.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox画面裁剪滤镜参数.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox画面裁剪滤镜参数.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox画面裁剪滤镜参数.Font = New Font("微软雅黑", 11F, FontStyle.Bold)
        UiTextBox画面裁剪滤镜参数.ForeColor = Color.DarkGray
        UiTextBox画面裁剪滤镜参数.ForeDisableColor = Color.DarkGray
        UiTextBox画面裁剪滤镜参数.ForeReadOnlyColor = Color.DarkGray
        UiTextBox画面裁剪滤镜参数.Location = New Point(173, 0)
        UiTextBox画面裁剪滤镜参数.Margin = New Padding(4, 5, 4, 5)
        UiTextBox画面裁剪滤镜参数.MinimumSize = New Size(1, 16)
        UiTextBox画面裁剪滤镜参数.Name = "UiTextBox画面裁剪滤镜参数"
        UiTextBox画面裁剪滤镜参数.Padding = New Padding(5)
        UiTextBox画面裁剪滤镜参数.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiTextBox画面裁剪滤镜参数.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox画面裁剪滤镜参数.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox画面裁剪滤镜参数.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox画面裁剪滤镜参数.RectSize = 2
        UiTextBox画面裁剪滤镜参数.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox画面裁剪滤镜参数.ScrollBarColor = Color.DimGray
        UiTextBox画面裁剪滤镜参数.ScrollBarStyleInherited = False
        UiTextBox画面裁剪滤镜参数.ShowText = False
        UiTextBox画面裁剪滤镜参数.Size = New Size(200, 35)
        UiTextBox画面裁剪滤镜参数.TabIndex = 79
        UiTextBox画面裁剪滤镜参数.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox画面裁剪滤镜参数.Watermark = "宽:高:左上X:左上Y"
        UiTextBox画面裁剪滤镜参数.WatermarkActiveColor = Color.DimGray
        UiTextBox画面裁剪滤镜参数.WatermarkColor = Color.DimGray
        ' 
        ' Label125
        ' 
        Label125.Dock = DockStyle.Left
        Label125.Location = New Point(163, 0)
        Label125.Name = "Label125"
        Label125.Size = New Size(10, 35)
        Label125.TabIndex = 47
        ' 
        ' UiButton2
        ' 
        UiButton2.Dock = DockStyle.Left
        UiButton2.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton2.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton2.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton2.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton2.Font = New Font("微软雅黑", 10F)
        UiButton2.ForeColor = Color.Goldenrod
        UiButton2.ForeDisableColor = Color.Goldenrod
        UiButton2.ForeHoverColor = Color.Goldenrod
        UiButton2.ForePressColor = Color.Goldenrod
        UiButton2.ForeSelectedColor = Color.Goldenrod
        UiButton2.Location = New Point(88, 0)
        UiButton2.MinimumSize = New Size(1, 1)
        UiButton2.Name = "UiButton2"
        UiButton2.Radius = 0
        UiButton2.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton2.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton2.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton2.RectHoverColor = Color.CornflowerBlue
        UiButton2.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton2.RectSelectedColor = Color.CornflowerBlue
        UiButton2.RectSize = 2
        UiButton2.Size = New Size(75, 35)
        UiButton2.TabIndex = 46
        UiButton2.Text = "完成"
        UiButton2.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Label127
        ' 
        Label127.Dock = DockStyle.Left
        Label127.Location = New Point(78, 0)
        Label127.Name = "Label127"
        Label127.Size = New Size(10, 35)
        Label127.TabIndex = 45
        ' 
        ' UiButton1
        ' 
        UiButton1.Dock = DockStyle.Left
        UiButton1.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.Font = New Font("微软雅黑", 10F)
        UiButton1.ForeColor = Color.YellowGreen
        UiButton1.ForeDisableColor = Color.YellowGreen
        UiButton1.ForeHoverColor = Color.YellowGreen
        UiButton1.ForePressColor = Color.YellowGreen
        UiButton1.ForeSelectedColor = Color.YellowGreen
        UiButton1.Location = New Point(3, 0)
        UiButton1.MinimumSize = New Size(1, 1)
        UiButton1.Name = "UiButton1"
        UiButton1.Radius = 0
        UiButton1.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton1.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton1.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton1.RectHoverColor = Color.CornflowerBlue
        UiButton1.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton1.RectSelectedColor = Color.CornflowerBlue
        UiButton1.RectSize = 2
        UiButton1.Size = New Size(75, 35)
        UiButton1.TabIndex = 44
        UiButton1.Text = "打开"
        UiButton1.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' Panel3
        ' 
        Panel3.AutoSize = True
        Panel3.Controls.Add(Label123)
        Panel3.Controls.Add(Label122)
        Panel3.Controls.Add(PictureBox2)
        Panel3.Controls.Add(Label4)
        Panel3.Controls.Add(PictureBox3)
        Panel3.Dock = DockStyle.Top
        Panel3.Location = New Point(10, 10)
        Panel3.Name = "Panel3"
        Panel3.Padding = New Padding(0, 0, 0, 15)
        Panel3.Size = New Size(924, 121)
        Panel3.TabIndex = 12
        ' 
        ' Label123
        ' 
        Label123.AutoSize = True
        Label123.Dock = DockStyle.Top
        Label123.Font = New Font("微软雅黑", 9.75F)
        Label123.ForeColor = Color.Gray
        Label123.Location = New Point(0, 30)
        Label123.Name = "Label123"
        Label123.Size = New Size(503, 76)
        Label123.TabIndex = 5
        Label123.Text = "红框是截取目标,其自己占用的像素也包含在截取中;绿框在图片外围,用作明显边界" & vbCrLf & "鼠标左键拖动来调整左上角坐标,右键拖动来调整右下角坐标;越界了会互换" & vbCrLf & "可以自己改坐标文本框,然后按 Enter 键刷新红框,这样反过来操作" & vbCrLf & "请勿乱玩框线,全程使用 CPU 绘制,刷新时 UI 线程满载运行,高刷显示器务必注意"
        ' 
        ' Label122
        ' 
        Label122.AutoSize = True
        Label122.Dock = DockStyle.Top
        Label122.Font = New Font("微软雅黑", 10F)
        Label122.Location = New Point(0, 0)
        Label122.Name = "Label122"
        Label122.Padding = New Padding(0, 0, 0, 10)
        Label122.Size = New Size(135, 30)
        Label122.TabIndex = 85
        Label122.Text = "可视化裁剪使用说明"
        ' 
        ' PictureBox2
        ' 
        PictureBox2.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        PictureBox2.Dock = DockStyle.Right
        PictureBox2.Location = New Point(702, 0)
        PictureBox2.Name = "PictureBox2"
        PictureBox2.Size = New Size(106, 106)
        PictureBox2.SizeMode = PictureBoxSizeMode.Zoom
        PictureBox2.TabIndex = 6
        PictureBox2.TabStop = False
        ' 
        ' Label4
        ' 
        Label4.Dock = DockStyle.Right
        Label4.Location = New Point(808, 0)
        Label4.Name = "Label4"
        Label4.Size = New Size(10, 106)
        Label4.TabIndex = 83
        ' 
        ' PictureBox3
        ' 
        PictureBox3.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        PictureBox3.Dock = DockStyle.Right
        PictureBox3.Location = New Point(818, 0)
        PictureBox3.Name = "PictureBox3"
        PictureBox3.Size = New Size(106, 106)
        PictureBox3.SizeMode = PictureBoxSizeMode.Zoom
        PictureBox3.TabIndex = 84
        PictureBox3.TabStop = False
        ' 
        ' Label128
        ' 
        Label128.Dock = DockStyle.Top
        Label128.Location = New Point(20, 196)
        Label128.Name = "Label128"
        Label128.Size = New Size(944, 20)
        Label128.TabIndex = 83
        ' 
        ' Panel1
        ' 
        Panel1.AutoScroll = True
        Panel1.BackColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        Panel1.Controls.Add(Panel2)
        Panel1.Dock = DockStyle.Fill
        Panel1.Location = New Point(20, 216)
        Panel1.Name = "Panel1"
        Panel1.Size = New Size(944, 525)
        Panel1.TabIndex = 84
        ' 
        ' Panel2
        ' 
        Panel2.AutoSize = True
        Panel2.BackColor = Color.YellowGreen
        Panel2.Controls.Add(PictureBox1)
        Panel2.Location = New Point(0, 0)
        Panel2.Margin = New Padding(0)
        Panel2.Name = "Panel2"
        Panel2.Padding = New Padding(1)
        Panel2.Size = New Size(102, 102)
        Panel2.TabIndex = 2
        Panel2.Visible = False
        ' 
        ' PictureBox1
        ' 
        PictureBox1.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        PictureBox1.Location = New Point(1, 1)
        PictureBox1.Margin = New Padding(0)
        PictureBox1.Name = "PictureBox1"
        PictureBox1.Size = New Size(100, 100)
        PictureBox1.SizeMode = PictureBoxSizeMode.AutoSize
        PictureBox1.TabIndex = 1
        PictureBox1.TabStop = False
        ' 
        ' Form画面裁剪交互窗口
        ' 
        AutoScaleDimensions = New SizeF(96F, 96F)
        AutoScaleMode = AutoScaleMode.Dpi
        BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        ClientSize = New Size(984, 761)
        Controls.Add(Panel1)
        Controls.Add(Label128)
        Controls.Add(Panel73)
        DoubleBuffered = True
        Font = New Font("微软雅黑", 10F)
        ForeColor = Color.Silver
        MinimumSize = New Size(1000, 800)
        Name = "Form画面裁剪交互窗口"
        Padding = New Padding(20)
        ShowIcon = False
        ShowInTaskbar = False
        StartPosition = FormStartPosition.Manual
        Text = "画面裁剪交互窗口"
        Panel73.ResumeLayout(False)
        Panel73.PerformLayout()
        Panel75.ResumeLayout(False)
        Panel3.ResumeLayout(False)
        Panel3.PerformLayout()
        CType(PictureBox2, ComponentModel.ISupportInitialize).EndInit()
        CType(PictureBox3, ComponentModel.ISupportInitialize).EndInit()
        Panel1.ResumeLayout(False)
        Panel1.PerformLayout()
        Panel2.ResumeLayout(False)
        Panel2.PerformLayout()
        CType(PictureBox1, ComponentModel.ISupportInitialize).EndInit()
        ResumeLayout(False)
        PerformLayout()
    End Sub

    Friend WithEvents Panel73 As Panel
    Friend WithEvents Panel75 As Panel
    Friend WithEvents Label125 As Label
    Friend WithEvents UiButton2 As Sunny.UI.UIButton
    Friend WithEvents Label127 As Label
    Friend WithEvents UiButton1 As Sunny.UI.UIButton
    Friend WithEvents Label128 As Label
    Friend WithEvents Panel1 As Panel
    Friend WithEvents PictureBox1 As PictureBox
    Friend WithEvents UiTextBox画面裁剪滤镜参数 As Sunny.UI.UITextBox
    Friend WithEvents UiTextBox1 As Sunny.UI.UITextBox
    Friend WithEvents Label1 As Label
    Friend WithEvents Label2 As Label
    Friend WithEvents Label3 As Label
    Friend WithEvents UiComboBox比例 As Sunny.UI.UIComboBox
    Friend WithEvents UiCheckBox居中 As Sunny.UI.UICheckBox
    Friend WithEvents Panel2 As Panel
    Friend WithEvents Panel3 As Panel
    Friend WithEvents Label123 As Label
    Friend WithEvents PictureBox2 As PictureBox
    Friend WithEvents Label4 As Label
    Friend WithEvents PictureBox3 As PictureBox
    Friend WithEvents Label122 As Label
End Class

```

## /FFmpegFreeUI/Form画面裁剪交互窗口.resx

```resx path="/FFmpegFreeUI/Form画面裁剪交互窗口.resx" 
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema

    Version 2.0

    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple
    name/value pairs.

    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.

    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
```

## /FFmpegFreeUI/Form画面裁剪交互窗口.vb

```vb path="/FFmpegFreeUI/Form画面裁剪交互窗口.vb" 

Imports System.IO
Public Class Form画面裁剪交互窗口

    Private Sub Form画面裁剪交互窗口_Load(sender As Object, e As EventArgs) Handles Me.Load
        UiComboBox比例.ItemHeight = 30 * Form1.DPI
        UiCheckBox居中.CheckBoxSize = 20 * Form1.DPI
        PictureBox2.Width = PictureBox2.Height
        PictureBox3.Width = PictureBox3.Height
    End Sub
    Private Sub Form画面裁剪交互窗口_DpiChanged(sender As Object, e As DpiChangedEventArgs) Handles Me.DpiChanged
        UiComboBox比例.ItemHeight = 30 * Form1.DPI
        UiCheckBox居中.CheckBoxSize = 20 * Form1.DPI
        PictureBox2.Width = PictureBox2.Height
        PictureBox3.Width = PictureBox3.Height
    End Sub


    Public FFmpegProcess As Process

    Private Sub UiButton1_Click(sender As Object, e As EventArgs) Handles UiButton1.Click
        Dim 视频文件 As String
        Dim openFileDialog As New OpenFileDialog With {.Multiselect = False, .Filter = "所有文件|*.*"}
        If openFileDialog.ShowDialog() = DialogResult.OK Then
            视频文件 = openFileDialog.FileName
        Else
            Exit Sub
        End If
        Dim FFmpegProcess As New Process
        FFmpegProcess = New Process()
        FFmpegProcess.StartInfo.FileName = "ffmpeg.exe"
        FFmpegProcess.StartInfo.WorkingDirectory = Application.StartupPath
        FFmpegProcess.StartInfo.Arguments = {{contextString}}quot;-ss {If(UiTextBox1.Text <> "", UiTextBox1.Text, "0:0:10")} -i ""{视频文件}"" -frames:v 1 -q:v 0 ""{Path.Combine(Application.StartupPath, "ScreenCropPreview.png")}"" -y"
        FFmpegProcess.Start()
        FFmpegProcess.WaitForExit()
        If FFmpegProcess.ExitCode <> 0 Then Exit Sub
        If Not FileIO.FileSystem.FileExists(Path.Combine(Application.StartupPath, "ScreenCropPreview.png")) Then Exit Sub
        Me.PictureBox1.Image = LoadImageFromFile(Path.Combine(Application.StartupPath, "ScreenCropPreview.png"))
        My.Computer.FileSystem.DeleteFile(Path.Combine(Application.StartupPath, "ScreenCropPreview.png"))
        Panel2.Visible = True
    End Sub

    Private Sub UiButton2_Click(sender As Object, e As EventArgs) Handles UiButton2.Click
        If UiTextBox画面裁剪滤镜参数.Text <> "" Then
            Form1.常规流程参数页面.UiTextBox画面裁剪滤镜参数.Text = UiTextBox画面裁剪滤镜参数.Text
            GC.Collect()
            Me.Dispose()
        End If
    End Sub

    Private Sub Form画面裁剪交互窗口_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
        GC.Collect()
    End Sub

    Private cropRect As New Rectangle(0, 0, 200, 100)
    Private isDraggingLeftTop As Boolean = False
    Private isDraggingRightBottom As Boolean = False
    Private fixedAspectRatio As Double = 0
    Private magnifierZoom As Integer = 10
    Private magnifierSize As Integer = 5

    Protected Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H2000000 ' WS_EX_COMPOSITED
            Return cp
        End Get
    End Property

    Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
        If cropRect.Width > 0 AndAlso cropRect.Height > 0 Then
            e.Graphics.DrawRectangle(Pens.Red, cropRect)
        End If
    End Sub

    Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = MouseButtons.Left Then
            isDraggingLeftTop = True
        ElseIf e.Button = MouseButtons.Right Then
            isDraggingRightBottom = True
        End If
    End Sub

    Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
        If PictureBox1.Image Is Nothing Then Return

        Dim imgW = PictureBox1.Width
        Dim imgH = PictureBox1.Height

        ' 检查是否需要交换拖动模式
        If isDraggingLeftTop Then
            If e.X > cropRect.Right OrElse e.Y > cropRect.Bottom Then
                ' 交换拖动模式
                isDraggingLeftTop = False
                isDraggingRightBottom = True
                ' 交换矩形的角落
                Dim tmp = New Rectangle(cropRect.Left, cropRect.Top, cropRect.Width, cropRect.Height)
                cropRect = New Rectangle(tmp.Left, tmp.Top, Math.Max(1, e.X - tmp.Left), Math.Max(1, e.Y - tmp.Top))
            Else
                ' 正常左上角拖动
                Dim newX = Math.Max(0, Math.Min(e.X, cropRect.Right - 1))
                Dim newY = Math.Max(0, Math.Min(e.Y, cropRect.Bottom - 1))
                Dim newWidth = cropRect.Right - newX
                Dim newHeight = cropRect.Bottom - newY
                If fixedAspectRatio > 0 Then
                    newHeight = CInt(newWidth / fixedAspectRatio)
                End If
                If newX + newWidth > imgW Then newWidth = imgW - newX
                If newY + newHeight > imgH Then newHeight = imgH - newY

                cropRect = New Rectangle(newX, newY, newWidth, newHeight)
            End If
        ElseIf isDraggingRightBottom Then
            If e.X < cropRect.Left OrElse e.Y < cropRect.Top Then
                ' 交换拖动模式
                isDraggingRightBottom = False
                isDraggingLeftTop = True
                ' 交换矩形的角落
                Dim tmp = New Rectangle(cropRect.Left, cropRect.Top, cropRect.Width, cropRect.Height)
                cropRect = New Rectangle(e.X, e.Y, tmp.Right - e.X, tmp.Bottom - e.Y)
            Else
                ' 正常右下角拖动
                Dim maxX = imgW - 1
                Dim maxY = imgH - 1
                Dim newRight = Math.Max(cropRect.Left + 1, Math.Min(e.X, maxX))
                Dim newBottom = Math.Max(cropRect.Top + 1, Math.Min(e.Y, maxY))
                Dim newWidth = newRight - cropRect.Left
                Dim newHeight = newBottom - cropRect.Top
                If fixedAspectRatio > 0 Then
                    newHeight = CInt(newWidth / fixedAspectRatio)
                    If cropRect.Top + newHeight > imgH Then
                        newHeight = imgH - cropRect.Top
                        newWidth = CInt(newHeight * fixedAspectRatio)
                    End If
                End If

                cropRect = New Rectangle(cropRect.Left, cropRect.Top, newWidth, newHeight)
            End If
        End If

        ' 在任何情况下都应用居中模式并更新文本框
        ApplyAlignMode()
        UpdateCropTextBox()
        PictureBox1.Invalidate()
        UpdateMagnifiers()
    End Sub
    Private Sub PictureBox1_MouseUp(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseUp
        isDraggingLeftTop = False
        isDraggingRightBottom = False
    End Sub

    Private Sub ApplyAlignMode()
        If UiCheckBox居中.Checked AndAlso PictureBox1.Image IsNot Nothing Then
            Dim imgW = PictureBox1.Image.Width
            Dim imgH = PictureBox1.Image.Height
            cropRect.X = (imgW - cropRect.Width) \ 2
            cropRect.Y = (imgH - cropRect.Height) \ 2
        End If
    End Sub

    Private Sub UpdateCropTextBox()
        UiTextBox画面裁剪滤镜参数.Text = {{contextString}}quot;{cropRect.Width}:{cropRect.Height}:{cropRect.X}:{cropRect.Y}"
    End Sub

    Private Sub UiTextBox画面裁剪滤镜参数_KeyDown(sender As Object, e As KeyEventArgs) Handles UiTextBox画面裁剪滤镜参数.KeyDown
        If e.KeyCode = Keys.Enter Then
            Dim txt = UiTextBox画面裁剪滤镜参数.Text.Trim()
            Dim parts = txt.Split(":"c)
            If parts.Length = 4 Then
                Dim w, h, x, y As Integer
                If Integer.TryParse(parts(0), w) AndAlso Integer.TryParse(parts(1), h) AndAlso Integer.TryParse(parts(2), x) AndAlso Integer.TryParse(parts(3), y) Then
                    cropRect = New Rectangle(x, y, w, h)
                    ApplyAlignMode()
                    PictureBox1.Invalidate()
                End If
            End If
        End If
    End Sub

    Private Sub UiComboBox比例_SelectedIndexChanged(sender As Object, e As EventArgs) Handles UiComboBox比例.SelectedIndexChanged
        Select Case UiComboBox比例.SelectedIndex
            Case 0 : fixedAspectRatio = 0
            Case 1 : fixedAspectRatio = 21 / 9
            Case 2 : fixedAspectRatio = 16 / 9
            Case 3 : fixedAspectRatio = 3 / 2
            Case 4 : fixedAspectRatio = 2 / 1
            Case 5 : fixedAspectRatio = 4 / 3
            Case 6 : fixedAspectRatio = 1
        End Select
    End Sub

    Sub UpdateMagnifiers()
        If PictureBox1.Image Is Nothing Then Return

        Try
            ' 更新左上角放大镜
            Using bmp1 As New Bitmap(Math.Max(1, PictureBox2.Width), Math.Max(1, PictureBox2.Height))
                Using g As Graphics = Graphics.FromImage(bmp1)
                    g.Clear(Color.Black)
                    g.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
                    g.PixelOffsetMode = Drawing2D.PixelOffsetMode.Half

                    Dim imgW = PictureBox1.Image.Width
                    Dim imgH = PictureBox1.Image.Height
                    Dim centerX As Integer = Math.Max(0, Math.Min(cropRect.Left, imgW - 1))
                    Dim centerY As Integer = Math.Max(0, Math.Min(cropRect.Top, imgH - 1))

                    Dim sourceX As Integer = Math.Max(0, centerX - magnifierSize)
                    Dim sourceY As Integer = Math.Max(0, centerY - magnifierSize)
                    Dim sourceWidth As Integer = Math.Min(magnifierSize * 2, imgW - sourceX)
                    Dim sourceHeight As Integer = Math.Min(magnifierSize * 2, imgH - sourceY)

                    If sourceWidth <= 0 OrElse sourceHeight <= 0 Then
                        g.DrawString("边界外", New Font("Arial", 10), Brushes.White, 5, 5)
                    Else
                        Dim sourceRect As New Rectangle(sourceX, sourceY, sourceWidth, sourceHeight)
                        g.DrawImage(PictureBox1.Image,
                        New Rectangle(0, 0, bmp1.Width, bmp1.Height),
                        sourceRect,
                        GraphicsUnit.Pixel)

                        Dim crossX As Integer = ((centerX - sourceX) * bmp1.Width) \ sourceWidth
                        Dim crossY As Integer = ((centerY - sourceY) * bmp1.Height) \ sourceHeight

                        If crossX >= 0 AndAlso crossX < bmp1.Width AndAlso crossY >= 0 AndAlso crossY < bmp1.Height Then
                            g.DrawLine(Pens.Red, crossX, 0, crossX, bmp1.Height)
                            g.DrawLine(Pens.Red, 0, crossY, bmp1.Width, crossY)
                        End If

                        'Dim textSize As SizeF = g.MeasureString(Text, Me.Font)
                        'g.FillRectangle(New SolidBrush(Color.FromArgb(128, 0, 0, 0)), 0, 0, textSize.Width, textSize.Height)
                        'g.DrawString({{contextString}}quot;({centerX},{centerY})", Me.Font, Brushes.YellowGreen, 0, 0)
                    End If
                End Using
                PictureBox2.Image = bmp1.Clone()
            End Using

            ' 更新右下角放大镜
            Using bmp2 As New Bitmap(Math.Max(1, PictureBox3.Width), Math.Max(1, PictureBox3.Height))
                Using g As Graphics = Graphics.FromImage(bmp2)
                    g.Clear(Color.Black)
                    g.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
                    g.PixelOffsetMode = Drawing2D.PixelOffsetMode.Half

                    Dim imgW = PictureBox1.Image.Width
                    Dim imgH = PictureBox1.Image.Height
                    Dim centerX As Integer = Math.Max(0, Math.Min(cropRect.Right, imgW - 1))
                    Dim centerY As Integer = Math.Max(0, Math.Min(cropRect.Bottom, imgH - 1))

                    Dim sourceX As Integer = Math.Max(0, centerX - magnifierSize)
                    Dim sourceY As Integer = Math.Max(0, centerY - magnifierSize)
                    Dim sourceWidth As Integer = Math.Min(magnifierSize * 2, imgW - sourceX)
                    Dim sourceHeight As Integer = Math.Min(magnifierSize * 2, imgH - sourceY)

                    If sourceWidth <= 0 OrElse sourceHeight <= 0 Then
                        g.DrawString("边界外", New Font("Arial", 10), Brushes.White, 5, 5)
                    Else
                        Dim sourceRect As New Rectangle(sourceX, sourceY, sourceWidth, sourceHeight)
                        g.DrawImage(PictureBox1.Image,
                        New Rectangle(0, 0, bmp2.Width, bmp2.Height),
                        sourceRect,
                        GraphicsUnit.Pixel)

                        Dim crossX As Integer = ((centerX - sourceX) * bmp2.Width) \ sourceWidth
                        Dim crossY As Integer = ((centerY - sourceY) * bmp2.Height) \ sourceHeight

                        If crossX >= 0 AndAlso crossX < bmp2.Width AndAlso crossY >= 0 AndAlso crossY < bmp2.Height Then
                            g.DrawLine(Pens.Red, crossX, 0, crossX, bmp2.Height)
                            g.DrawLine(Pens.Red, 0, crossY, bmp2.Width, crossY)
                        End If

                        'Dim textSize As SizeF = g.MeasureString(Text, Me.Font)
                        'g.FillRectangle(New SolidBrush(Color.FromArgb(128, 0, 0, 0)), 0, 0, textSize.Width, textSize.Height)
                        'g.DrawString({{contextString}}quot;({centerX},{centerY})", Me.Font, Brushes.YellowGreen, 0, 0)
                    End If
                End Using
                PictureBox3.Image = bmp2.Clone()
            End Using
        Catch ex As Exception
            Debug.WriteLine("放大镜更新错误: " & ex.ToString())
        End Try
    End Sub





End Class
```

## /FFmpegFreeUI/GitHubAPI.vb

```vb path="/FFmpegFreeUI/GitHubAPI.vb" 
Imports System.Net.Http
Imports System.Text.Json

Public Class GitHubAPI
    Public Class Release

        Public 发布标题 As String = ""
        Public 版本标签 As String = ""
        Public 预览版 As Boolean = False
        Public 发布描述 As String = ""
        Public 发布时间 As String = ""
        Public 发布者用户名 As String = ""
        Public 可供下载的文件 As New List(Of KeyValuePair(Of String, String))

        Public ErrorString As String = ""

        Public Async Function 获取仓库发布版信息Async(存储库 As String, Optional 指定标签 As String = "") As Task(Of String)
            Try
                ErrorString = ""
                Dim url As String = {{contextString}}quot;https://api.github.com/repos/{存储库}/releases"
                If Not String.IsNullOrEmpty(指定标签) Then
                    url = {{contextString}}quot;https://api.github.com/repos/{存储库}/releases/tags/{指定标签}"
                End If

                Dim content As String = ""
                Using client As New HttpClient()
                    client.DefaultRequestHeaders.Add("User-Agent", "github_api")
                    client.Timeout = TimeSpan.FromSeconds(10)
                    Dim response = Await client.GetAsync(url)
                    If response.IsSuccessStatusCode Then
                        content = Await response.Content.ReadAsStringAsync()
                    Else
                        ErrorString = Await response.Content.ReadAsStringAsync()
                        Return ErrorString
                    End If
                End Using

                ' 解析JSON
                Dim options As New JsonSerializerOptions With {
                    .PropertyNameCaseInsensitive = True
                }

                If String.IsNullOrEmpty(指定标签) Then
                    ' 获取最新发布
                    Dim releases = JsonSerializer.Deserialize(Of List(Of GitHubRelease))(content, options)
                    If releases Is Nothing OrElse releases.Count = 0 Then
                        ErrorString = "未找到任何发布信息。"
                        Return ErrorString
                    End If
                    Dim release = releases(0)
                    填充发布信息(release)
                Else
                    ' 获取指定标签发布
                    Dim release = JsonSerializer.Deserialize(Of GitHubRelease)(content, options)
                    If release Is Nothing Then
                        ErrorString = "未找到指定标签的发布信息。"
                        Return ErrorString
                    End If
                    填充发布信息(release)
                End If

                Return ""
            Catch ex As Exception
                ErrorString = ex.Message
                Return ErrorString
            End Try
        End Function

        Private Sub 填充发布信息(release As GitHubRelease)
            发布标题 = If(release.Name, "")
            版本标签 = If(release.Tag_name, "")
            预览版 = release.Prerelease
            发布描述 = If(release.Body, "")
            发布时间 = If(release.Created_at, "")
            If 发布时间 <> "" Then
                发布时间 = DateTime.Parse(发布时间).ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss")
            End If
            发布者用户名 = If(release.Author?.Login, "")
            可供下载的文件.Clear()
            If release.Assets IsNot Nothing Then
                For Each asset In release.Assets
                    If asset.Name IsNot Nothing AndAlso asset.Browser_download_url IsNot Nothing Then
                        可供下载的文件.Add(New KeyValuePair(Of String, String)(asset.Name, asset.Browser_download_url))
                    End If
                Next
            End If
        End Sub

        ' 内部类型用于反序列化
        Private Class GitHubRelease
            Public Property Name As String
            Public Property Tag_name As String
            Public Property Prerelease As Boolean
            Public Property Body As String
            Public Property Created_at As String
            Public Property Author As GitHubAuthor
            Public Property Assets As List(Of GitHubAsset)
        End Class

        Private Class GitHubAuthor
            Public Property Login As String
        End Class

        Private Class GitHubAsset
            Public Property Name As String
            Public Property Browser_download_url As String
        End Class

    End Class
End Class
```

## /FFmpegFreeUI/Module1.vb

```vb path="/FFmpegFreeUI/Module1.vb" 
Imports System.IO
Imports System.Reflection
Imports System.Runtime.CompilerServices
Imports System.Runtime.InteropServices
Imports System.Text.Json

Module Module1

    <Extension>
    Public Sub DoubleBuffer(control As Control)
        Dim propertyInfo As PropertyInfo = control.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
        propertyInfo?.SetValue(control, True, Nothing)
    End Sub
    <Extension>
    Public Function IsEqual(page1 As TabPage, page2 As TabPage) As Boolean
        If page1 Is page2 Then Return True
        If page1 Is Nothing OrElse page2 Is Nothing Then Return False
        Return page1.Name = page2.Name
    End Function


    Public JsonSO As New JsonSerializerOptions With {.WriteIndented = True}

    Public Sub 设置富文本框行高(RichTextBoxObject As Control, LineHeight As Integer)
        Dim fmt As New PARAFORMAT2()
        fmt.cbSize = Marshal.SizeOf(fmt)
        fmt.bLineSpacingRule = 4
        fmt.dyLineSpacing = LineHeight
        fmt.dwMask = PFM_LINESPACING
        SendMessage(New HandleRef(RichTextBoxObject, RichTextBoxObject.Handle), EM_SETPARAFORMAT, 4, fmt)
    End Sub

    Public Const WM_USER As Integer = &H400
    Public Const EM_GETPARAFORMAT As Integer = WM_USER + 61
    Public Const EM_SETPARAFORMAT As Integer = WM_USER + 71
    Public Const PFM_LINESPACING As UInteger = &H100

    <StructLayout(LayoutKind.Sequential)>
    Public Structure PARAFORMAT2
        Public cbSize As Integer
        Public dwMask As UInteger
        Public wNumbering As Short
        Public wReserved As Short
        Public dxStartIndent As Integer
        Public dxRightIndent As Integer
        Public dxOffset As Integer
        Public wAlignment As Short
        Public cTabCount As Short
        <MarshalAs(UnmanagedType.ByValArray, SizeConst:=32)>
        Public rgxTabs() As Integer
        ' PARAFORMAT2 增量字段
        Public dySpaceBefore As Integer
        Public dySpaceAfter As Integer
        Public dyLineSpacing As Integer
        Public sStyle As Short
        Public bLineSpacingRule As Byte
        Public bOutlineLevel As Byte
        Public wShadingWeight As Short
        Public wShadingStyle As Short
        Public wNumberingStart As Short
        Public wNumberingStyle As Short
        Public wNumberingTab As Short
        Public wBorderSpace As Short
        Public wBorderWidth As Short
        Public wBorders As Short
    End Structure


    <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)>
    Public Function SendMessage(hWnd As HandleRef, msg As Integer, wParam As IntPtr, ByRef lParam As PARAFORMAT2) As IntPtr
    End Function

    <DllImport("kernel32.dll", SetLastError:=True)>
    Public Function SetThreadExecutionState(esFlags As EXECUTION_STATE) As EXECUTION_STATE
    End Function
    <Flags>
    Public Enum EXECUTION_STATE As UInteger
        ES_SYSTEM_REQUIRED = &H1
        ES_DISPLAY_REQUIRED = &H2
        ES_CONTINUOUS = &H80000000UI
    End Enum

    Public Sub 设定系统状态()
        Select Case Form1.系统状态设定
            Case 0
                SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS Or EXECUTION_STATE.ES_SYSTEM_REQUIRED)

            Case 1
                SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS Or EXECUTION_STATE.ES_SYSTEM_REQUIRED Or EXECUTION_STATE.ES_DISPLAY_REQUIRED)
            Case 2
                SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)
        End Select
    End Sub

    Public Sub 恢复系统状态()
        Dim unused = SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)
    End Sub

    Public Function 根据标签宽度计算显示高度(标签控件 As Label) As Integer
        Dim g As Graphics = Form1.CreateGraphics()
        Dim size As SizeF = g.MeasureString(标签控件.Text, 标签控件.Font, 标签控件.Width - 标签控件.Padding.Left - 标签控件.Padding.Right)
        g.Dispose()
        Return size.Height + 标签控件.Padding.Top + 标签控件.Padding.Bottom
    End Function

    Public Function LoadImageFromFile(File As String) As Image
        Using fs As New FileStream(File, FileMode.Open, FileAccess.Read)
            Return Image.FromStream(fs)
            fs.Dispose()
        End Using
    End Function

    Public Sub 显示窗体(哪个窗口 As Form, 以谁为基准显示 As Form)
        If 哪个窗口.Visible = True Then
            哪个窗口.Focus()
            哪个窗口.Left = (以谁为基准显示.Width - 哪个窗口.Width) * 0.5 + 以谁为基准显示.Left
            哪个窗口.Top = (以谁为基准显示.Height - 哪个窗口.Height) * 0.5 + 以谁为基准显示.Top
        Else
            哪个窗口.Left = (以谁为基准显示.Width - 哪个窗口.Width) * 0.5 + 以谁为基准显示.Left
            哪个窗口.Top = (以谁为基准显示.Height - 哪个窗口.Height) * 0.5 + 以谁为基准显示.Top
            哪个窗口.Show(以谁为基准显示)
        End If
    End Sub

    Public Sub 根据标签宽度计算并设置显示高度(标签控件 As Label)
        Dim g As Graphics = 标签控件.CreateGraphics()
        Dim size As SizeF = g.MeasureString(标签控件.Text, 标签控件.Font, 标签控件.Width - 标签控件.Padding.Left - 标签控件.Padding.Right)
        g.Dispose()
        标签控件.Height = size.Height + 标签控件.Padding.Top + 标签控件.Padding.Bottom
    End Sub

    ''' <summary>
    ''' 根据核心编号列表生成 ProcessorAffinity 掩码
    ''' </summary>
    ''' <param name="cores">逻辑核心编号,从 0 开始</param>
    ''' <returns>IntPtr 类型的掩码</returns>
    Function GetAffinityMask(cores As Integer()) As IntPtr
        Dim mask As Long = 0
        For Each core In cores
            If core >= 0 AndAlso core < Environment.ProcessorCount Then
                mask = mask Or CLng(1) << core
            Else
                Throw New ArgumentOutOfRangeException({{contextString}}quot;核心编号 {core} 无效。系统共有 {Environment.ProcessorCount} 个核心(从 0 开始)。")
            End If
        Next
        Return New IntPtr(mask)
    End Function

    Public Sub SetControlFont(FontName As String, c As Control, Optional ExcludeContorl As Control() = Nothing)
        For Each ctrl As Control In c.Controls
            If ExcludeContorl IsNot Nothing Then
                If ExcludeContorl.Contains(ctrl) Then Continue For
            End If
            Dim controlType As Type = c.GetType()
            Dim propInfo As PropertyInfo = controlType.GetProperty("Font")
            If propInfo IsNot Nothing Then ctrl.Font = New Font(FontName, ctrl.Font.Size, ctrl.Font.Style)
            If ctrl.HasChildren Then SetControlFont(FontName, ctrl, ExcludeContorl)
        Next
    End Sub


End Module

```

## /FFmpegFreeUI/My Project/Application.Designer.vb

```vb path="/FFmpegFreeUI/My Project/Application.Designer.vb" 
'------------------------------------------------------------------------------
' <auto-generated>
'     此代码由工具生成。
'     运行时版本:4.0.30319.42000
'
'     对此文件的更改可能会导致不正确的行为,并且如果
'     重新生成代码,这些更改将会丢失。
' </auto-generated>
'------------------------------------------------------------------------------

Option Strict On
Option Explicit On


Namespace My
    
    '注意:此文件是自动生成的;请勿直接进行修改。若要更改,
    ' 或者如果您在此文件中遇到生成错误,请转至项目设计器
    ' (转至“项目属性”或在解决方案资源管理器中双击“我的项目”节点),
    ' 然后在“应用程序”选项卡中进行更改。
    '
    Partial Friend Class MyApplication
        
        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Sub New()
            MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.ApplicationDefined)
            Me.IsSingleInstance = true
            Me.EnableVisualStyles = true
            Me.SaveMySettingsOnExit = false
            Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
            Me.HighDpiMode = HighDpiMode.PerMonitorV2
        End Sub
        
        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Protected Overrides Sub OnCreateMainForm()
            Me.MainForm = Global.FFmpegFreeUI.Form1
        End Sub
        
        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Protected Overrides Function OnInitialize(ByVal commandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String)) As Boolean
            Me.MinimumSplashScreenDisplayTime = 0
            Return MyBase.OnInitialize(commandLineArgs)
        End Function
    End Class
End Namespace

```

## /FFmpegFreeUI/My Project/Application.myapp

```myapp path="/FFmpegFreeUI/My Project/Application.myapp" 
<?xml version="1.0" encoding="utf-16"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <MySubMain>true</MySubMain>
  <MainForm>Form1</MainForm>
  <SingleInstance>true</SingleInstance>
  <ShutdownMode>0</ShutdownMode>
  <EnableVisualStyles>true</EnableVisualStyles>
  <AuthenticationMode>1</AuthenticationMode>
  <SaveMySettingsOnExit>false</SaveMySettingsOnExit>
  <HighDpiMode>3</HighDpiMode>
</MyApplicationData>
```

## /FFmpegFreeUI/My Project/Resources.Designer.vb

```vb path="/FFmpegFreeUI/My Project/Resources.Designer.vb" 
'------------------------------------------------------------------------------
' <auto-generated>
'     此代码由工具生成。
'     运行时版本:4.0.30319.42000
'
'     对此文件的更改可能会导致不正确的行为,并且如果
'     重新生成代码,这些更改将会丢失。
' </auto-generated>
'------------------------------------------------------------------------------

Option Strict On
Option Explicit On

Imports System

Namespace My.Resources
    
    '此类是由 StronglyTypedResourceBuilder
    '类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
    '若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
    '(以 /str 作为命令选项),或重新生成 VS 项目。
    '''<summary>
    '''  一个强类型的资源类,用于查找本地化的字符串等。
    '''</summary>
    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"),  _
     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _
    Friend Module Resources
        
        Private resourceMan As Global.System.Resources.ResourceManager
        
        Private resourceCulture As Global.System.Globalization.CultureInfo
        
        '''<summary>
        '''  返回此类使用的缓存的 ResourceManager 实例。
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
            Get
                If Object.ReferenceEquals(resourceMan, Nothing) Then
                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("FFmpegFreeUI.Resources", GetType(Resources).Assembly)
                    resourceMan = temp
                End If
                Return resourceMan
            End Get
        End Property
        
        '''<summary>
        '''  重写当前线程的 CurrentUICulture 属性,对
        '''  使用此强类型资源类的所有资源查找执行重写。
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Friend Property Culture() As Global.System.Globalization.CultureInfo
            Get
                Return resourceCulture
            End Get
            Set
                resourceCulture = value
            End Set
        End Property
    End Module
End Namespace

```

## /FFmpegFreeUI/My Project/Resources.resx

```resx path="/FFmpegFreeUI/My Project/Resources.resx" 
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</root>
```

## /FFmpegFreeUI/暗黑上下文菜单.vb

```vb path="/FFmpegFreeUI/暗黑上下文菜单.vb" 
Imports System.ComponentModel
Imports System.ComponentModel.Design

<ToolboxItem(True)>
<Designer("System.Windows.Forms.Design.ComponentDesigner, System.Design", GetType(IDesigner))>
Public Class 暗黑上下文菜单
    Inherits ContextMenuStrip

    Public Sub New()
        Renderer = New 暗黑上下文菜单自绘制()
    End Sub




End Class

```

## /FFmpegFreeUI/暗黑上下文菜单自绘制.vb

```vb path="/FFmpegFreeUI/暗黑上下文菜单自绘制.vb" 

Public Class 暗黑上下文菜单自绘制
    Inherits ToolStripRenderer

    Protected Overrides Sub Initialize(toolStrip As ToolStrip)
        MyBase.Initialize(toolStrip)
        toolStrip.BackColor = ColorTranslator.FromWin32(RGB(36, 36, 36))
        toolStrip.ForeColor = Color.Silver

    End Sub

    Protected Overrides Sub InitializeItem(item As ToolStripItem)
        MyBase.InitializeItem(item)
        item.Padding = New Padding(5)
        item.Margin = New Padding(0)
        'If item.GetType() = GetType(ToolStripSeparator) Then
        'End If
    End Sub

    Protected Overrides Sub OnRenderToolStripBackground(e As ToolStripRenderEventArgs)
        Dim g = e.Graphics
        Using b As New SolidBrush(ColorTranslator.FromWin32(RGB(36, 36, 36)))
            g.FillRectangle(b, e.AffectedBounds)
        End Using
        Using p As New Pen(ColorTranslator.FromWin32(RGB(80, 80, 80)), 2)
            g.DrawRectangle(p, e.AffectedBounds)
        End Using
        Using p As New Pen(ColorTranslator.FromWin32(RGB(80, 80, 80)), 2)
            g.DrawRectangle(p, e.AffectedBounds.Left + 1, e.AffectedBounds.Top + 1, e.AffectedBounds.Width - 2, e.AffectedBounds.Height - 2)
        End Using
    End Sub

    Protected Overrides Sub OnRenderImageMargin(e As ToolStripRenderEventArgs)
        Dim g = e.Graphics
        Dim rect As New Rectangle(0, 0, e.ToolStrip.Width - 1, e.ToolStrip.Height - 1)
        Using p As New Pen(ColorTranslator.FromWin32(RGB(80, 80, 80)), 2)
            g.DrawRectangle(p, rect)
        End Using
    End Sub

    Protected Overrides Sub OnRenderSeparator(e As ToolStripSeparatorRenderEventArgs)
        Select Case e.Item.Tag
            Case "nothing", "null"
                e.Item.AutoSize = False
                e.Item.Margin = New Padding(0)
                e.Item.Padding = New Padding(0)
                e.Item.Height = 5 * (Form1.DeviceDpi / 96)
                Exit Sub
            Case Else
                e.Item.AutoSize = False
                e.Item.Height = 2
                e.Item.Margin = New Padding(0, 5 * (Form1.DeviceDpi / 96), 0, 5 * (Form1.DeviceDpi / 96))
                e.Item.Padding = New Padding(0)
        End Select
        Dim g = e.Graphics
        Using b As New SolidBrush(ColorTranslator.FromWin32(RGB(80, 80, 80)))
            g.FillRectangle(b, 0, 0, e.Item.Width, e.Item.Height)
        End Using
    End Sub

    Protected Overrides Sub OnRenderArrow(e As ToolStripArrowRenderEventArgs)
        e.ArrowColor = Color.Silver
        e.ArrowRectangle = New Rectangle(New Point(e.ArrowRectangle.Left, e.ArrowRectangle.Top - 1), e.ArrowRectangle.Size)
        MyBase.OnRenderArrow(e)
    End Sub

    Protected Overrides Sub OnRenderMenuItemBackground(e As ToolStripItemRenderEventArgs)
        Dim g = e.Graphics
        If e.Item.Enabled Then
            If e.Item.Selected Then
                Using b As New SolidBrush(ColorTranslator.FromWin32(RGB(64, 64, 64)))
                    g.FillRectangle(b, e.Item.ContentRectangle.Left + 5, e.Item.ContentRectangle.Top, e.Item.ContentRectangle.Width - 19, e.Item.ContentRectangle.Height)
                End Using
            End If
        End If
    End Sub

    'Private ReadOnly ShortcutKeys As New List(Of String) From {
    '    "Ctrl+", "Alt+", "Shift+", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12"
    '}

    Protected Overrides Sub OnRenderItemText(e As ToolStripItemTextRenderEventArgs)
        Dim g = e.Graphics
        'Dim isShortcutKeyText As Boolean = ShortcutKeys.Any(Function(key) e.Text.Contains(key))
        If e.Item.Enabled Then
            Using b As New SolidBrush(e.TextColor)
                'If isShortcutKeyText Then
                '    TextRenderer.DrawText(e.Graphics, e.Text.Replace("&", "&&"), e.TextFont, New Rectangle(e.TextRectangle.Left, e.Item.ContentRectangle.Top, e.TextRectangle.Width, e.Item.ContentRectangle.Height), e.TextColor, Nothing, TextFormatFlags.Right Or TextFormatFlags.VerticalCenter)
                'Else
                TextRenderer.DrawText(e.Graphics, e.Text.Replace("&", "&&"), e.TextFont, New Rectangle(e.TextRectangle.Left, e.Item.ContentRectangle.Top, e.TextRectangle.Width, e.Item.ContentRectangle.Height), e.TextColor, Nothing, TextFormatFlags.VerticalCenter)
                'End If
            End Using
        Else
            e.Item.Margin = New Padding(0)
            e.Item.Padding = New Padding(0)
            Using b As New SolidBrush(e.TextColor)
                TextRenderer.DrawText(e.Graphics, e.Text.Replace("&", "&&"), New Font(e.TextFont.Name, e.TextFont.Size - 2, FontStyle.Regular), New Rectangle(e.TextRectangle.Left, e.Item.ContentRectangle.Top, e.TextRectangle.Width, e.Item.ContentRectangle.Height), e.TextColor, Nothing, TextFormatFlags.VerticalCenter)
            End Using
        End If
    End Sub


End Class

```

## /FFmpegFreeUI/暗黑列表视图自绘制.vb

```vb path="/FFmpegFreeUI/暗黑列表视图自绘制.vb" 

Public Class 暗黑列表视图自绘制

    Public Shared Sub 绑定列表视图事件(哪个列表视图控件 As ListView)
        哪个列表视图控件.DoubleBuffer
        AddHandler 哪个列表视图控件.DrawSubItem, Sub(sender, e) 绘制子项(sender, e)
        AddHandler 哪个列表视图控件.SelectedIndexChanged, Sub(sender, e) sender.Invalidate(sender.ClientRectangle)
        AddHandler 哪个列表视图控件.ItemMouseHover, Sub(sender, e) sender.Invalidate(sender.ClientRectangle)
    End Sub

    Public Shared Property 项被选中时的背景颜色 As Color = ColorTranslator.FromWin32(RGB(48, 48, 48))
    Public Shared Property 项被选中时的高亮遮罩颜色 As Color = Color.FromArgb(60, 200, 200, 200)

    ''' <summary>
    ''' 绑定此事件时不要绑定 DrawListViewItemEvent 事件,本事件直接绘制主项
    ''' </summary>
    ''' <param name="哪个列表视图控件"></param>
    ''' <param name="e"></param>
    Public Shared Sub 绘制子项(哪个列表视图控件 As ListView, e As DrawListViewSubItemEventArgs)
        Try
            Form1.重新创建句柄()
            If Not e.Bounds.IntersectsWith(哪个列表视图控件.ClientRectangle) OrElse e.Bounds.Width = 0 Then Exit Sub
            Dim 项背景色 As Color = If(哪个列表视图控件.SelectedIndices.Contains(e.ItemIndex), 项被选中时的背景颜色, 哪个列表视图控件.BackColor)
            Dim 文本高度修正 As Integer = (e.Bounds.Height - TextRenderer.MeasureText(e.SubItem.Text, e.SubItem.Font).Height) \ 2
            Dim 文本绘制区 As New Rectangle(e.Bounds.X + 5, e.Bounds.Y + 文本高度修正, e.Bounds.Width - 5, e.Bounds.Height)
            Dim 文字显示所需尺寸 As Size = TextRenderer.MeasureText(e.SubItem.Text, e.SubItem.Font)
            Dim 实际要绘制的文本 As String = e.SubItem.Text
            If 文字显示所需尺寸.Width > (e.Bounds.Width - 5 * Form1.DPI) Then
                Dim 点号所占用的宽度 As Integer = TextRenderer.MeasureText("...", e.SubItem.Font).Width
                Dim 实际文本可用宽度 As Integer = e.Bounds.Width - 点号所占用的宽度
                While TextRenderer.MeasureText(实际要绘制的文本, e.SubItem.Font).Width > 实际文本可用宽度 AndAlso 实际要绘制的文本.Length > 0
                    实际要绘制的文本 = 实际要绘制的文本.Substring(0, 实际要绘制的文本.Length - 1)
                End While
                实际要绘制的文本 &= "..."
            End If
            Using brush As New SolidBrush(项背景色)
                e.Graphics.FillRectangle(brush, e.Bounds)
            End Using
            TextRenderer.DrawText(e.Graphics, 实际要绘制的文本.Replace("&", "&&"), e.SubItem.Font, 文本绘制区, e.Item.ForeColor, 项背景色, TextFormatFlags.Default)
        Catch ex As Exception

        End Try
    End Sub



End Class

```

## /FFmpegFreeUI/界面_常规流程参数.resx

```resx path="/FFmpegFreeUI/界面_常规流程参数.resx" 
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema

    Version 2.0

    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple
    name/value pairs.

    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.

    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
```

## /FFmpegFreeUI/界面_常规流程参数.vb

```vb path="/FFmpegFreeUI/界面_常规流程参数.vb" 

Public Class 界面_常规流程参数
    Private Sub 界面_常规流程参数_Load(sender As Object, e As EventArgs) Handles Me.Load
        AddHandler UiComboBox编码类别.SelectedIndexChanged, AddressOf 视频编码类别改动事件
        AddHandler UiComboBox具体编码.SelectedIndexChanged, AddressOf 视频具体编码改动事件
        '==============================================
        AddHandler UiComboBox分辨率.TextChanged, AddressOf 视频分辨率变动事件
        AddHandler UiTextBox分辨率自动计算宽度.TextChanged, AddressOf 视频分辨率自动计算宽度变动事件
        AddHandler UiTextBox分辨率自动计算高度.TextChanged, AddressOf 视频分辨率自动计算高度变动事件
        '==============================================
        AddHandler UiComboBox比特率控制方式.SelectedIndexChanged, AddressOf 视频比特率控制方式改动事件
        '==============================================
        AddHandler UiComboBox色彩管理处理方式.TextChanged, AddressOf 色彩管理处理方式变动事件
        '==============================================
        AddHandler UiComboBox降噪方式.TextChanged, AddressOf 视频降噪方式变动事件
        '==========================================
        AddHandler UiComboBox音频比特率控制方式.TextChanged, AddressOf 音频比特率控制方式参数变动事件
        '==========================================
        AddHandler UiComboBox图片编码器.TextChanged, AddressOf 图片编码器参数变动事件
        '==============================================
        AddHandler UiButton22.Click, AddressOf 预设管理.保存预设到文件
        AddHandler UiButton21.Click, AddressOf 预设管理.从文件读取预设
        AddHandler UiButton13.Click, AddressOf 预设管理.重置全部包含在预设中的设置

        AddHandler UiButton1.Click, Sub() 显示窗体(Form画面裁剪交互窗口, Form1)

        设置富文本框行高(RichTextBox1, 350)
        界面校准()
    End Sub

    Sub 视频编码类别改动事件()
        UiComboBox具体编码.Items.Clear()
        UiComboBox具体编码.Text = ""
        Select Case Form1.常规流程参数页面.UiComboBox编码类别.SelectedIndex
            Case 0
                UiComboBox编码预设.Items.Clear()
                UiComboBox编码预设.Text = ""
                UiComboBox配置文件.Items.Clear()
                UiComboBox配置文件.Text = ""
                UiComboBox场景优化.Items.Clear()
                UiComboBox场景优化.Text = ""
                UiComboBox像素格式.Items.Clear()
                UiComboBox像素格式.Text = ""
            Case 1
                UiComboBox具体编码.Items.Add("copy")
            Case 2    'H.266/VVC
                UiComboBox具体编码.Items.Add("libx266")
                UiComboBox具体编码.Items.Add("libvvenc")
            Case 3    'AV1
                UiComboBox具体编码.Items.Add("libaom-av1")
                UiComboBox具体编码.Items.Add("libsvtav1")
                UiComboBox具体编码.Items.Add("av1_nvenc")
                UiComboBox具体编码.Items.Add("av1_qsv")
                UiComboBox具体编码.Items.Add("av1_amf")
                UiComboBox具体编码.Items.Add("librav1e")
                UiComboBox具体编码.Items.Add("av1_vaapi")
            Case 4    'H.265/HEVC
                UiComboBox具体编码.Items.Add("libx265")
                UiComboBox具体编码.Items.Add("hevc_nvenc")
                UiComboBox具体编码.Items.Add("hevc_qsv")
                UiComboBox具体编码.Items.Add("hevc_amf")
                UiComboBox具体编码.Items.Add("hevc_d3d12va")
                UiComboBox具体编码.Items.Add("hevc_vaapi")
                UiComboBox具体编码.Items.Add("hevc_vulkan")
            Case 5    'H.264/AVC
                UiComboBox具体编码.Items.Add("libx264")
                UiComboBox具体编码.Items.Add("h264_nvenc")
                UiComboBox具体编码.Items.Add("h264_qsv")
                UiComboBox具体编码.Items.Add("h264_amf")
                UiComboBox具体编码.Items.Add("h264_vaapi")
                UiComboBox具体编码.Items.Add("h264_vulkan")
            Case 6    'ProRes
                UiComboBox具体编码.Items.Add("prores_ks")
                UiComboBox具体编码.Items.Add("prores_aw")
            Case 7    'VP9
                UiComboBox具体编码.Items.Add("libvpx-vp9")
                UiComboBox具体编码.Items.Add("vp9_vaapi")
            Case 8    'RMVB
                UiComboBox具体编码.Items.Add("rv10")
                UiComboBox具体编码.Items.Add("rv20")
            Case 9    'MPEG
                UiComboBox具体编码.Items.Add("mpeg4")
                UiComboBox具体编码.Items.Add("libxvid")
                UiComboBox具体编码.Items.Add("libxeve")
            Case 10    'WMV
                UiComboBox具体编码.Items.Add("wmv1")
                UiComboBox具体编码.Items.Add("wmv2")
            Case 11    '禁用
                UiComboBox具体编码.Items.Add("")
        End Select
        If UiComboBox具体编码.Items.Count > 1 Then UiComboBox具体编码.SelectedIndex = 0
    End Sub
    Sub 视频具体编码改动事件()
        UiComboBox编码预设.Items.Clear()
        UiComboBox编码预设.Text = ""
        UiComboBox配置文件.Items.Clear()
        UiComboBox配置文件.Text = ""
        UiComboBox场景优化.Items.Clear()
        UiComboBox场景优化.Text = ""
        UiComboBox像素格式.Items.Clear()
        UiComboBox像素格式.Text = ""
        If UiComboBox具体编码.SelectedIndex > -1 AndAlso 视频编码器数据库.字典.ContainsKey(UiComboBox具体编码.Text) Then
            UiComboBox编码预设.Items.AddRange(视频编码器数据库.字典(UiComboBox具体编码.Text).Preset.ToArray)
            If UiComboBox具体编码.Text = "libsvtav1" Then
                UiComboBox编码预设.SelectedIndex = 3
            Else
                UiComboBox编码预设.SelectedIndex = 0
            End If
            UiComboBox配置文件.Items.AddRange(视频编码器数据库.字典(UiComboBox具体编码.Text).Profile.ToArray)
            UiComboBox场景优化.Items.AddRange(视频编码器数据库.字典(UiComboBox具体编码.Text).Tune.ToArray)
            UiComboBox像素格式.Items.AddRange(视频编码器数据库.字典(UiComboBox具体编码.Text).Pix_fmt.ToArray)
        End If
    End Sub
    Sub 视频分辨率变动事件()
        If UiComboBox分辨率.Text <> "" Then
            UiTextBox分辨率自动计算宽度.Text = ""
            UiTextBox分辨率自动计算高度.Text = ""
        End If
    End Sub
    Sub 视频分辨率自动计算宽度变动事件()
        If UiTextBox分辨率自动计算宽度.Text <> "" Then
            UiTextBox分辨率自动计算高度.Text = ""
            UiComboBox分辨率.Text = ""
        End If
    End Sub
    Sub 视频分辨率自动计算高度变动事件()
        If UiTextBox分辨率自动计算高度.Text <> "" Then
            UiTextBox分辨率自动计算宽度.Text = ""
            UiComboBox分辨率.Text = ""
        End If
    End Sub
    Sub 视频比特率控制方式改动事件()
        Select Case UiComboBox比特率控制方式.SelectedIndex
            Case 0
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
            Case 1    '动态码率 VBR - 存储首选,硬件加速首选
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
            Case 2    '动态码率 VBR HQ - 硬件加速专用,极致质量
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
            Case 3    '恒定质量 CRF - 存储首选,软件编码首选
                UiComboBox全局质量控制参数.SelectedIndex = 3
            Case 4    '恒定量化 CQP - 不推荐,主用于研究和特定场景
                UiComboBox全局质量控制参数.SelectedIndex = 2
            Case 5    '平均码率 ABR - 折中方案,在一定范围内波动
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
            Case 6    '二次编码 TPE - 花费时间节省比特率
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
            Case 7    '恒定速率 CBR - 流媒体常用,不适合存储
                If UiComboBox全局质量控制参数.SelectedIndex = 3 Then UiComboBox全局质量控制参数.SelectedIndex = 0
        End Select
    End Sub
    Sub 视频降噪方式变动事件()
        Label129.Visible = False
        Select Case UiComboBox降噪方式.SelectedIndex
            Case 1 'hqdn3d - 时空域降噪,去除普通噪声并保留细节
                Label降噪参数1.Text = "亮度空间强度" & vbCrLf & "luma_spatial"
                UiTextBox降噪参数1.Watermark = "默认 4"
                Label降噪参数2.Text = "色度空间强度" & vbCrLf & "chroma_spatial"
                UiTextBox降噪参数2.Watermark = "默认 3"
                Label降噪参数3.Text = "亮度时间强度" & vbCrLf & "luma_tmp"
                UiTextBox降噪参数3.Watermark = "默认 6"
                Label降噪参数4.Text = "色度时间强度" & vbCrLf & "chroma_tmp"
                UiTextBox降噪参数4.Watermark = "默认 1"
                Panel39.Visible = True
                Panel38.Visible = True
            Case 2    'nlmeans - 高级降噪,效果更好且计算量更大
                Label降噪参数1.Text = "降噪强度" & vbCrLf & "范围 1~10"
                UiTextBox降噪参数1.Watermark = "默认 1"
                Label降噪参数2.Text = "参考像素块大小" & vbCrLf & "必须是奇数"
                UiTextBox降噪参数2.Watermark = "默认 7"
                Label降噪参数3.Text = "色度降噪" & vbCrLf & "启用 = 1 禁用 = 0"
                UiTextBox降噪参数3.Watermark = ""
                Label降噪参数4.Text = "搜索半径" & vbCrLf & "越大越慢"
                UiTextBox降噪参数4.Watermark = "默认 7"
                Panel39.Visible = True
                Panel38.Visible = True
            Case 3  'atadenoise - 轻量级时间域降噪
                Label降噪参数1.Text = "亮度静态帧加权" & vbCrLf & "0a"
                UiTextBox降噪参数1.Watermark = "默认 0.02"
                Label降噪参数2.Text = "亮度动态帧加权" & vbCrLf & "0b"
                UiTextBox降噪参数2.Watermark = "默认 0.04"
                Label降噪参数3.Text = "色度静态加权" & vbCrLf & "1a"
                UiTextBox降噪参数3.Watermark = "默认 0.02"
                Label降噪参数4.Text = "色度动态加权" & vbCrLf & "1b"
                UiTextBox降噪参数4.Watermark = "默认 0.04"
                Panel39.Visible = True
                Panel38.Visible = True
            Case 4    'bm3d - 高质量降噪,适合严重噪声且消耗大量性能
                Label降噪参数1.Text = "噪声强度" & vbCrLf & "sigma"
                UiTextBox降噪参数1.Watermark = "默认 1"
                Label降噪参数2.Text = "块大小 建议 4~8" & vbCrLf & "block"
                UiTextBox降噪参数2.Watermark = "默认 4"
                Label降噪参数3.Text = "块步长" & vbCrLf & "bstep"
                UiTextBox降噪参数3.Watermark = "block/2"
                Label降噪参数4.Text = "相似块数量" & vbCrLf & "group"
                UiTextBox降噪参数4.Watermark = "默认 1"
                Panel39.Visible = True
                Panel38.Visible = True
            Case 5   '外部 AviSynth - 加载 avs 文件
                UiTextBox降噪参数1.Text = ""
                UiTextBox降噪参数2.Text = ""
                UiTextBox降噪参数3.Text = ""
                UiTextBox降噪参数4.Text = ""
                Panel38.Visible = False
                Panel39.Visible = False
                Label129.Visible = True
                Form1.常规流程参数页面.UiTextBox之前参数.Text = "-i <inputfile>"
                Form1.常规流程参数页面.UiTextBox将视频参数用于这些流.Text = "0:v:0"
                Form1.常规流程参数页面.UiTextBox将音频参数用于这些流.Text = "1:a:0"
            Case Else
                UiTextBox降噪参数1.Text = ""
                UiTextBox降噪参数2.Text = ""
                UiTextBox降噪参数3.Text = ""
                UiTextBox降噪参数4.Text = ""
                Panel38.Visible = False
                Panel39.Visible = False
        End Select
    End Sub
    Sub 色彩管理处理方式变动事件()
        If UiComboBox色彩管理处理方式.Text = "" Then
            UiComboBox矩阵系数.Text = ""
            UiComboBox色域.Text = ""
            UiComboBox传输特性.Text = ""
            UiComboBox色彩范围.Text = ""
        End If
    End Sub
    Sub 音频比特率控制方式参数变动事件()
        If UiComboBox音频比特率控制方式.Text = "" Then
            UiTextBox音频基础比特率.Text = ""
            UiTextBox音频比特率质量值.Text = ""
        End If
    End Sub
    Sub 图片编码器参数变动事件()
        If UiComboBox图片编码器.Text = "" Then
            UiTextBox图片编码器质量.Text = ""
        End If
    End Sub

    Private Sub UiTabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles UiTabControl1.SelectedIndexChanged
        界面校准()
    End Sub
    Sub 界面校准()
        Dim 选项卡 As TabPage = UiTabControl1.SelectedTab
        Select Case True
            Case 选项卡.IsEqual(TabPage解码参数)
                UiComboBox解码器.ItemHeight = 30 * Form1.DPI
                UiComboBox解码数据格式.ItemHeight = 30 * Form1.DPI
            Case 选项卡.IsEqual(TabPage视频参数)
                UiComboBox编码类别.ItemHeight = 30 * Form1.DPI
                UiComboBox具体编码.ItemHeight = 30 * Form1.DPI
                UiComboBox编码预设.ItemHeight = 30 * Form1.DPI
                UiComboBox分辨率.ItemHeight = 30 * Form1.DPI
                UiComboBox帧速率.ItemHeight = 30 * Form1.DPI
                UiComboBox比特率控制方式.ItemHeight = 30 * Form1.DPI
                UiComboBox全局质量控制参数.ItemHeight = 30 * Form1.DPI
                UiComboBox配置文件.ItemHeight = 30 * Form1.DPI
                UiComboBox场景优化.ItemHeight = 30 * Form1.DPI
                UiComboBox像素格式.ItemHeight = 30 * Form1.DPI
            Case 选项卡.IsEqual(TabPage高级视频参数)
                UiComboBox矩阵系数.ItemHeight = 30 * Form1.DPI
                UiComboBox色域.ItemHeight = 30 * Form1.DPI
                UiComboBox传输特性.ItemHeight = 30 * Form1.DPI
                UiComboBox色彩范围.ItemHeight = 30 * Form1.DPI
                UiComboBox色彩管理处理方式.ItemHeight = 30 * Form1.DPI
                UiComboBox降噪方式.ItemHeight = 30 * Form1.DPI
                UiComboBox逐行与隔行处理方式.ItemHeight = 30 * Form1.DPI
            Case 选项卡.IsEqual(TabPage音频参数)
                UiComboBox音频编码器.ItemHeight = 30 * Form1.DPI
                UiComboBox音频比特率控制方式.ItemHeight = 30 * Form1.DPI
                UiComboBox声道布局.ItemHeight = 30 * Form1.DPI
                UiComboBox采样率.ItemHeight = 30 * Form1.DPI
            Case 选项卡.IsEqual(TabPage图片参数)
                UiComboBox图片编码器.ItemHeight = 30 * Form1.DPI
            Case 选项卡.IsEqual(TabPage自定义参数)

            Case 选项卡.IsEqual(TabPage流控制)
                UiCheckBox保留其他视频流.CheckBoxSize = 20 * Form1.DPI
                UiCheckBox保留其他音频流.CheckBoxSize = 20 * Form1.DPI
                UiCheckBox保留内嵌字幕流.CheckBoxSize = 20 * Form1.DPI
                UiCheckBox保留元数据.CheckBoxSize = 20 * Form1.DPI
                UiCheckBox保留章节信息.CheckBoxSize = 20 * Form1.DPI
                UiCheckBox自动混流同名字幕文件.CheckBoxSize = 20 * Form1.DPI
            Case 选项卡.IsEqual(TabPage预设管理)
                Dim a As New 预设数据类型
                预设管理.储存预设(a)
                RichTextBox1.Size = New Size(RichTextBox1.Parent.Width, RichTextBox1.Parent.Height - RichTextBox1.Parent.Padding.Top * 2)
                RichTextBox1.Text = "ffmpeg.exe " & 预设管理.将预设数据转换为命令行(a, "假装这是输入目录\假装这是输入文件", "假装这是输出目录\假装这是输出文件")
        End Select

    End Sub

End Class

```

## /FFmpegFreeUI/界面_混流.Designer.vb

```vb path="/FFmpegFreeUI/界面_混流.Designer.vb" 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class 界面_混流
    Inherits System.Windows.Forms.UserControl

    'UserControl 重写释放以清理组件列表。
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改它。  
    '不要使用代码编辑器修改它。
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Panel73 = New Panel()
        Label123 = New Label()
        Label20 = New Label()
        Panel1 = New Panel()
        Panel2 = New Panel()
        ListView1 = New ListView()
        Panel3 = New Panel()
        Panel62 = New Panel()
        UiTextBox2 = New Sunny.UI.UITextBox()
        Label7 = New Label()
        UiTextBox1 = New Sunny.UI.UITextBox()
        Label101 = New Label()
        Panel4 = New Panel()
        Label5 = New Label()
        Label4 = New Label()
        Label3 = New Label()
        Label9 = New Label()
        Label10 = New Label()
        Label1 = New Label()
        Label2 = New Label()
        Label11 = New Label()
        Panel5 = New Panel()
        Panel75 = New Panel()
        UiTextBox将视频参数用于这些流 = New Sunny.UI.UITextBox()
        Label6 = New Label()
        Label132 = New Label()
        UiButton1 = New Sunny.UI.UIButton()
        UiButton启动混流 = New Sunny.UI.UIButton()
        Panel73.SuspendLayout()
        Panel1.SuspendLayout()
        Panel2.SuspendLayout()
        Panel3.SuspendLayout()
        Panel62.SuspendLayout()
        Panel4.SuspendLayout()
        Panel5.SuspendLayout()
        Panel75.SuspendLayout()
        SuspendLayout()
        ' 
        ' Panel73
        ' 
        Panel73.AutoSize = True
        Panel73.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel73.Controls.Add(Label123)
        Panel73.Dock = DockStyle.Top
        Panel73.Location = New Point(20, 20)
        Panel73.Name = "Panel73"
        Panel73.Padding = New Padding(10)
        Panel73.Size = New Size(1060, 58)
        Panel73.TabIndex = 80
        ' 
        ' Label123
        ' 
        Label123.AutoSize = True
        Label123.Dock = DockStyle.Top
        Label123.Font = New Font("微软雅黑", 9.75F)
        Label123.ForeColor = Color.Gray
        Label123.Location = New Point(10, 10)
        Label123.Name = "Label123"
        Label123.Size = New Size(348, 38)
        Label123.TabIndex = 4
        Label123.Text = "此功能为扩展,不走编码队列,直接让 ffmpeg 以原样运行" & vbCrLf & "仅提供基础混流,高级功能请移步 MKVToolNix GUI"
        ' 
        ' Label20
        ' 
        Label20.Dock = DockStyle.Top
        Label20.Location = New Point(20, 78)
        Label20.Name = "Label20"
        Label20.Size = New Size(1060, 20)
        Label20.TabIndex = 82
        ' 
        ' Panel1
        ' 
        Panel1.AutoSize = True
        Panel1.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel1.Controls.Add(Panel2)
        Panel1.Controls.Add(Panel3)
        Panel1.Controls.Add(Panel4)
        Panel1.Controls.Add(Label1)
        Panel1.Controls.Add(Label2)
        Panel1.Dock = DockStyle.Fill
        Panel1.Location = New Point(20, 98)
        Panel1.Name = "Panel1"
        Panel1.Padding = New Padding(10)
        Panel1.Size = New Size(1060, 507)
        Panel1.TabIndex = 83
        ' 
        ' Panel2
        ' 
        Panel2.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        Panel2.Controls.Add(ListView1)
        Panel2.Dock = DockStyle.Fill
        Panel2.Location = New Point(10, 98)
        Panel2.Name = "Panel2"
        Panel2.Padding = New Padding(0, 10, 0, 10)
        Panel2.Size = New Size(1040, 235)
        Panel2.TabIndex = 5
        ' 
        ' ListView1
        ' 
        ListView1.BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        ListView1.BorderStyle = BorderStyle.None
        ListView1.Dock = DockStyle.Fill
        ListView1.Font = New Font("微软雅黑", 9.75F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ListView1.Location = New Point(0, 10)
        ListView1.Name = "ListView1"
        ListView1.Size = New Size(1040, 215)
        ListView1.TabIndex = 0
        ListView1.UseCompatibleStateImageBehavior = False
        ' 
        ' Panel3
        ' 
        Panel3.Controls.Add(Panel62)
        Panel3.Dock = DockStyle.Bottom
        Panel3.Location = New Point(10, 333)
        Panel3.Name = "Panel3"
        Panel3.Size = New Size(1040, 164)
        Panel3.TabIndex = 6
        ' 
        ' Panel62
        ' 
        Panel62.Controls.Add(UiTextBox2)
        Panel62.Controls.Add(Label7)
        Panel62.Controls.Add(UiTextBox1)
        Panel62.Controls.Add(Label101)
        Panel62.Dock = DockStyle.Top
        Panel62.Location = New Point(0, 0)
        Panel62.Name = "Panel62"
        Panel62.Padding = New Padding(0, 0, 0, 10)
        Panel62.Size = New Size(1040, 40)
        Panel62.TabIndex = 5
        ' 
        ' UiTextBox2
        ' 
        UiTextBox2.Dock = DockStyle.Left
        UiTextBox2.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox2.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox2.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox2.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox2.Font = New Font("微软雅黑", 9.75F)
        UiTextBox2.ForeColor = Color.DarkGray
        UiTextBox2.ForeDisableColor = Color.DarkGray
        UiTextBox2.ForeReadOnlyColor = Color.DarkGray
        UiTextBox2.Location = New Point(300, 0)
        UiTextBox2.Margin = New Padding(4, 5, 4, 5)
        UiTextBox2.MinimumSize = New Size(1, 16)
        UiTextBox2.Name = "UiTextBox2"
        UiTextBox2.Padding = New Padding(5)
        UiTextBox2.Radius = 30
        UiTextBox2.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox2.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox2.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox2.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox2.ScrollBarColor = Color.DimGray
        UiTextBox2.ScrollBarStyleInherited = False
        UiTextBox2.ShowText = False
        UiTextBox2.Size = New Size(100, 30)
        UiTextBox2.TabIndex = 98
        UiTextBox2.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox2.Watermark = ""
        UiTextBox2.WatermarkActiveColor = Color.DimGray
        UiTextBox2.WatermarkColor = Color.DimGray
        ' 
        ' Label7
        ' 
        Label7.Dock = DockStyle.Left
        Label7.Font = New Font("微软雅黑", 9.75F)
        Label7.Location = New Point(200, 0)
        Label7.Name = "Label7"
        Label7.Padding = New Padding(10, 0, 0, 0)
        Label7.Size = New Size(100, 30)
        Label7.TabIndex = 97
        Label7.Text = "语言"
        Label7.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' UiTextBox1
        ' 
        UiTextBox1.Dock = DockStyle.Left
        UiTextBox1.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox1.Font = New Font("微软雅黑", 9.75F)
        UiTextBox1.ForeColor = Color.DarkGray
        UiTextBox1.ForeDisableColor = Color.DarkGray
        UiTextBox1.ForeReadOnlyColor = Color.DarkGray
        UiTextBox1.Location = New Point(100, 0)
        UiTextBox1.Margin = New Padding(4, 5, 4, 5)
        UiTextBox1.MinimumSize = New Size(1, 16)
        UiTextBox1.Name = "UiTextBox1"
        UiTextBox1.Padding = New Padding(5)
        UiTextBox1.Radius = 30
        UiTextBox1.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox1.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox1.ScrollBarColor = Color.DimGray
        UiTextBox1.ScrollBarStyleInherited = False
        UiTextBox1.ShowText = False
        UiTextBox1.Size = New Size(100, 30)
        UiTextBox1.TabIndex = 96
        UiTextBox1.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox1.Watermark = ""
        UiTextBox1.WatermarkActiveColor = Color.DimGray
        UiTextBox1.WatermarkColor = Color.DimGray
        ' 
        ' Label101
        ' 
        Label101.Dock = DockStyle.Left
        Label101.Font = New Font("微软雅黑", 9.75F)
        Label101.Location = New Point(0, 0)
        Label101.Name = "Label101"
        Label101.Size = New Size(100, 30)
        Label101.TabIndex = 95
        Label101.Text = "视频流索引号"
        Label101.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Panel4
        ' 
        Panel4.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel4.Controls.Add(Label5)
        Panel4.Controls.Add(Label4)
        Panel4.Controls.Add(Label3)
        Panel4.Controls.Add(Label9)
        Panel4.Controls.Add(Label10)
        Panel4.Dock = DockStyle.Top
        Panel4.Location = New Point(10, 58)
        Panel4.Name = "Panel4"
        Panel4.Padding = New Padding(10, 0, 0, 0)
        Panel4.Size = New Size(1040, 40)
        Panel4.TabIndex = 7
        ' 
        ' Label5
        ' 
        Label5.Dock = DockStyle.Fill
        Label5.Font = New Font("微软雅黑", 10F)
        Label5.Location = New Point(885, 0)
        Label5.Name = "Label5"
        Label5.Size = New Size(155, 40)
        Label5.TabIndex = 4
        Label5.Text = "使用章节"
        Label5.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label4
        ' 
        Label4.Dock = DockStyle.Left
        Label4.Font = New Font("微软雅黑", 10F)
        Label4.Location = New Point(710, 0)
        Label4.Name = "Label4"
        Label4.Size = New Size(175, 40)
        Label4.TabIndex = 3
        Label4.Text = "使用字幕流"
        Label4.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label3
        ' 
        Label3.Dock = DockStyle.Left
        Label3.Font = New Font("微软雅黑", 10F)
        Label3.Location = New Point(535, 0)
        Label3.Name = "Label3"
        Label3.Size = New Size(175, 40)
        Label3.TabIndex = 2
        Label3.Text = "使用音频流"
        Label3.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label9
        ' 
        Label9.Dock = DockStyle.Left
        Label9.Font = New Font("微软雅黑", 10F)
        Label9.Location = New Point(360, 0)
        Label9.Name = "Label9"
        Label9.Size = New Size(175, 40)
        Label9.TabIndex = 1
        Label9.Text = "使用视频流"
        Label9.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label10
        ' 
        Label10.Dock = DockStyle.Left
        Label10.Font = New Font("微软雅黑", 10F)
        Label10.Location = New Point(10, 0)
        Label10.Name = "Label10"
        Label10.Size = New Size(350, 40)
        Label10.TabIndex = 0
        Label10.Text = "输入文件"
        Label10.TextAlign = ContentAlignment.MiddleLeft
        ' 
        ' Label1
        ' 
        Label1.AutoSize = True
        Label1.Dock = DockStyle.Top
        Label1.Font = New Font("微软雅黑", 9.75F)
        Label1.ForeColor = Color.Gray
        Label1.Location = New Point(10, 39)
        Label1.Name = "Label1"
        Label1.Size = New Size(178, 19)
        Label1.TabIndex = 4
        Label1.Text = "然后选中来编辑要使用哪些流"
        ' 
        ' Label2
        ' 
        Label2.AutoSize = True
        Label2.Dock = DockStyle.Top
        Label2.Font = New Font("微软雅黑", 11F, FontStyle.Bold)
        Label2.Location = New Point(10, 10)
        Label2.Name = "Label2"
        Label2.Padding = New Padding(0, 0, 0, 10)
        Label2.Size = New Size(99, 29)
        Label2.TabIndex = 0
        Label2.Text = "添加输入文件"
        ' 
        ' Label11
        ' 
        Label11.Dock = DockStyle.Bottom
        Label11.Location = New Point(20, 605)
        Label11.Name = "Label11"
        Label11.Size = New Size(1060, 20)
        Label11.TabIndex = 84
        ' 
        ' Panel5
        ' 
        Panel5.AutoSize = True
        Panel5.BackColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        Panel5.Controls.Add(Panel75)
        Panel5.Dock = DockStyle.Bottom
        Panel5.Location = New Point(20, 625)
        Panel5.Name = "Panel5"
        Panel5.Padding = New Padding(10)
        Panel5.Size = New Size(1060, 55)
        Panel5.TabIndex = 85
        ' 
        ' Panel75
        ' 
        Panel75.Controls.Add(UiTextBox将视频参数用于这些流)
        Panel75.Controls.Add(Label6)
        Panel75.Controls.Add(Label132)
        Panel75.Controls.Add(UiButton1)
        Panel75.Controls.Add(UiButton启动混流)
        Panel75.Dock = DockStyle.Top
        Panel75.Location = New Point(10, 10)
        Panel75.Name = "Panel75"
        Panel75.Size = New Size(1040, 35)
        Panel75.TabIndex = 12
        ' 
        ' UiTextBox将视频参数用于这些流
        ' 
        UiTextBox将视频参数用于这些流.Dock = DockStyle.Fill
        UiTextBox将视频参数用于这些流.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox将视频参数用于这些流.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox将视频参数用于这些流.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox将视频参数用于这些流.FillReadOnlyColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiTextBox将视频参数用于这些流.Font = New Font("微软雅黑", 9.75F)
        UiTextBox将视频参数用于这些流.ForeColor = Color.DarkGray
        UiTextBox将视频参数用于这些流.ForeDisableColor = Color.DarkGray
        UiTextBox将视频参数用于这些流.ForeReadOnlyColor = Color.DarkGray
        UiTextBox将视频参数用于这些流.Location = New Point(130, 0)
        UiTextBox将视频参数用于这些流.Margin = New Padding(4, 5, 4, 5)
        UiTextBox将视频参数用于这些流.MinimumSize = New Size(1, 16)
        UiTextBox将视频参数用于这些流.Name = "UiTextBox将视频参数用于这些流"
        UiTextBox将视频参数用于这些流.Padding = New Padding(5)
        UiTextBox将视频参数用于这些流.Radius = 35
        UiTextBox将视频参数用于这些流.RectColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox将视频参数用于这些流.RectDisableColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox将视频参数用于这些流.RectReadOnlyColor = Color.FromArgb(CByte(80), CByte(80), CByte(80))
        UiTextBox将视频参数用于这些流.ScrollBarBackColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiTextBox将视频参数用于这些流.ScrollBarColor = Color.DimGray
        UiTextBox将视频参数用于这些流.ScrollBarStyleInherited = False
        UiTextBox将视频参数用于这些流.ShowText = False
        UiTextBox将视频参数用于这些流.Size = New Size(780, 35)
        UiTextBox将视频参数用于这些流.TabIndex = 100
        UiTextBox将视频参数用于这些流.TextAlignment = ContentAlignment.MiddleLeft
        UiTextBox将视频参数用于这些流.Watermark = "输出到目标位置"
        UiTextBox将视频参数用于这些流.WatermarkActiveColor = Color.DimGray
        UiTextBox将视频参数用于这些流.WatermarkColor = Color.DimGray
        ' 
        ' Label6
        ' 
        Label6.Dock = DockStyle.Right
        Label6.Location = New Point(910, 0)
        Label6.Name = "Label6"
        Label6.Size = New Size(10, 35)
        Label6.TabIndex = 99
        ' 
        ' Label132
        ' 
        Label132.Dock = DockStyle.Left
        Label132.Location = New Point(120, 0)
        Label132.Name = "Label132"
        Label132.Size = New Size(10, 35)
        Label132.TabIndex = 98
        ' 
        ' UiButton1
        ' 
        UiButton1.AllowDrop = True
        UiButton1.Dock = DockStyle.Left
        UiButton1.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton1.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton1.Font = New Font("微软雅黑", 10F)
        UiButton1.ForeColor = Color.YellowGreen
        UiButton1.ForeDisableColor = Color.YellowGreen
        UiButton1.ForeHoverColor = Color.YellowGreen
        UiButton1.ForePressColor = Color.YellowGreen
        UiButton1.ForeSelectedColor = Color.YellowGreen
        UiButton1.Location = New Point(0, 0)
        UiButton1.MinimumSize = New Size(1, 1)
        UiButton1.Name = "UiButton1"
        UiButton1.Radius = 0
        UiButton1.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton1.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton1.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton1.RectHoverColor = Color.CornflowerBlue
        UiButton1.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton1.RectSelectedColor = Color.CornflowerBlue
        UiButton1.RectSize = 2
        UiButton1.Size = New Size(120, 35)
        UiButton1.TabIndex = 45
        UiButton1.Text = "导出位置"
        UiButton1.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' UiButton启动混流
        ' 
        UiButton启动混流.AllowDrop = True
        UiButton启动混流.Dock = DockStyle.Right
        UiButton启动混流.FillColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton启动混流.FillColor2 = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton启动混流.FillDisableColor = Color.FromArgb(CByte(36), CByte(36), CByte(36))
        UiButton启动混流.FillHoverColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton启动混流.FillPressColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton启动混流.FillSelectedColor = Color.FromArgb(CByte(48), CByte(48), CByte(48))
        UiButton启动混流.Font = New Font("微软雅黑", 10F)
        UiButton启动混流.ForeColor = Color.YellowGreen
        UiButton启动混流.ForeDisableColor = Color.YellowGreen
        UiButton启动混流.ForeHoverColor = Color.YellowGreen
        UiButton启动混流.ForePressColor = Color.YellowGreen
        UiButton启动混流.ForeSelectedColor = Color.YellowGreen
        UiButton启动混流.Location = New Point(920, 0)
        UiButton启动混流.MinimumSize = New Size(1, 1)
        UiButton启动混流.Name = "UiButton启动混流"
        UiButton启动混流.Radius = 0
        UiButton启动混流.RadiusSides = Sunny.UI.UICornerRadiusSides.None
        UiButton启动混流.RectColor = Color.FromArgb(CByte(64), CByte(64), CByte(64))
        UiButton启动混流.RectDisableColor = Color.FromArgb(CByte(12), CByte(12), CByte(12))
        UiButton启动混流.RectHoverColor = Color.CornflowerBlue
        UiButton启动混流.RectPressColor = Color.FromArgb(CByte(64), CByte(148), CByte(64))
        UiButton启动混流.RectSelectedColor = Color.CornflowerBlue
        UiButton启动混流.RectSize = 2
        UiButton启动混流.Size = New Size(120, 35)
        UiButton启动混流.TabIndex = 44
        UiButton启动混流.Text = "启动混流"
        UiButton启动混流.TipsFont = New Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ' 
        ' 界面_混流
        ' 
        AutoScaleDimensions = New SizeF(96F, 96F)
        AutoScaleMode = AutoScaleMode.Dpi
        BackColor = Color.FromArgb(CByte(24), CByte(24), CByte(24))
        Controls.Add(Panel1)
        Controls.Add(Label11)
        Controls.Add(Label20)
        Controls.Add(Panel73)
        Controls.Add(Panel5)
        Font = New Font("微软雅黑", 9.75F, FontStyle.Regular, GraphicsUnit.Point, CByte(134))
        ForeColor = Color.Silver
        Name = "界面_混流"
        Padding = New Padding(20)
        Size = New Size(1100, 700)
        Panel73.ResumeLayout(False)
        Panel73.PerformLayout()
        Panel1.ResumeLayout(False)
        Panel1.PerformLayout()
        Panel2.ResumeLayout(False)
        Panel3.ResumeLayout(False)
        Panel62.ResumeLayout(False)
        Panel4.ResumeLayout(False)
        Panel5.ResumeLayout(False)
        Panel75.ResumeLayout(False)
        ResumeLayout(False)
        PerformLayout()
    End Sub

    Friend WithEvents Panel73 As Panel
    Friend WithEvents Label123 As Label
    Friend WithEvents Label20 As Label
    Friend WithEvents Panel1 As Panel
    Friend WithEvents Label1 As Label
    Friend WithEvents Label2 As Label
    Friend WithEvents Panel3 As Panel
    Friend WithEvents Panel2 As Panel
    Friend WithEvents ListView1 As ListView
    Friend WithEvents Panel4 As Panel
    Friend WithEvents Label5 As Label
    Friend WithEvents Label4 As Label
    Friend WithEvents Label3 As Label
    Friend WithEvents Label9 As Label
    Friend WithEvents Label10 As Label
    Friend WithEvents Label11 As Label
    Friend WithEvents Panel5 As Panel
    Friend WithEvents Panel75 As Panel
    Friend WithEvents UiButton启动混流 As Sunny.UI.UIButton
    Friend WithEvents UiButton1 As Sunny.UI.UIButton
    Friend WithEvents Label6 As Label
    Friend WithEvents Label132 As Label
    Friend WithEvents UiTextBox将视频参数用于这些流 As Sunny.UI.UITextBox
    Friend WithEvents Panel62 As Panel
    Friend WithEvents UiTextBox1 As Sunny.UI.UITextBox
    Friend WithEvents Label101 As Label
    Friend WithEvents UiTextBox2 As Sunny.UI.UITextBox
    Friend WithEvents Label7 As Label

End Class

```

## /FFmpegFreeUI/界面_混流.resx

```resx path="/FFmpegFreeUI/界面_混流.resx" 
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema

    Version 2.0

    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.

    Example:

    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>

    There are any number of "resheader" rows that contain simple
    name/value pairs.

    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.

    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:

    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.

    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
```

## /FFmpegFreeUI/界面_混流.vb

```vb path="/FFmpegFreeUI/界面_混流.vb" 
Public Class 界面_混流

    Private Sub 界面_混流_Load(sender As Object, e As EventArgs) Handles Me.Load

    End Sub




End Class

```

## /FFmpegFreeUI/界面控制.vb

```vb path="/FFmpegFreeUI/界面控制.vb" 

Imports System.IO

Public Class 界面控制

    Public Shared Sub 初始化()
        Dim 字体列表 As New List(Of String)
        For Each 字体 As FontFamily In FontFamily.Families
            字体列表.Add(字体.Name)
        Next
        字体列表.Sort()
        If My.Computer.FileSystem.FileExists(Path.Combine(Application.StartupPath, "FontName.txt")) Then
            Form1.UiComboBox1.Text = My.Computer.FileSystem.ReadAllText(Path.Combine(Application.StartupPath, "FontName.txt"))
            If Form1.UiComboBox1.Text = "" Then Exit Sub
            SetControlFont(Form1.UiComboBox1.Text, Form1, {Form1.UiComboBox1})
        End If
        Form1.UiComboBox1.Items.AddRange(字体列表.ToArray)
        AddHandler Form1.UiButton4.Click, Sub()
                                              If Form1.UiComboBox1.Text = "" Then Exit Sub
                                              SetControlFont(Form1.UiComboBox1.Text, Form1, {Form1.UiComboBox1})
                                          End Sub
        AddHandler Form1.UiComboBox1.SelectedIndexChanged, Sub()
                                                               If Form1.UiComboBox1.Text = "" Then Exit Sub
                                                               Form1.Label11.Font = New Font(Form1.UiComboBox1.Text, Form1.Label11.Font.Size)
                                                           End Sub
        Form1.UiComboBox2.SelectedIndex = 0
        AddHandler Form1.UiComboBox2.SelectedIndexChanged, Sub()
                                                               If Form1.UiComboBox2.Text = "" Then Exit Sub
                                                               If Form1.UiComboBox2.SelectedIndex < 0 Then Exit Sub
                                                               Form1.系统状态设定 = Form1.UiComboBox2.SelectedIndex
                                                           End Sub

        Form1.编码队列右键菜单 = New 暗黑上下文菜单 With {.ShowImageMargin = False, .Font = Form1.Font}
        Form1.ListView1.ContextMenuStrip = Form1.编码队列右键菜单
        Form1.编码队列右键菜单.Items.AddRange(New ToolStripItem() {
            New ToolStripSeparator() With {.Tag = "null"},
            New ToolStripMenuItem("任务状态控制") With {.ForeColor = Color.CornflowerBlue, .Enabled = False},
            New ToolStripMenuItem("全新开始任务", Nothing, AddressOf 界面控制_编码队列.开始任务) With {.ForeColor = Color.YellowGreen},
            New ToolStripMenuItem("暂停(挂起进程)", Nothing, AddressOf 界面控制_编码队列.暂停任务) With {.ForeColor = Color.Goldenrod},
            New ToolStripMenuItem("继续(恢复进程)", Nothing, AddressOf 界面控制_编码队列.恢复任务) With {.ForeColor = Color.YellowGreen},
            New ToolStripMenuItem("停止(关闭进程)", Nothing, AddressOf 界面控制_编码队列.停止任务) With {.ForeColor = Color.IndianRed},
            New ToolStripMenuItem("移除", Nothing, AddressOf 界面控制_编码队列.移除任务) With {.ForeColor = Color.IndianRed},
            New ToolStripMenuItem("重置状态", Nothing, AddressOf 界面控制_编码队列.重置任务),
            New ToolStripSeparator(),
            New ToolStripMenuItem("任务管理") With {.ForeColor = Color.CornflowerBlue, .Enabled = False},
            New ToolStripMenuItem("全选", Nothing, AddressOf 界面控制_编码队列.全选任务),
            New ToolStripMenuItem("定位输出文件", Nothing, AddressOf 界面控制_编码队列.定位输出) With {.ForeColor = Color.MediumPurple},
            New ToolStripMenuItem("重新配置", Nothing, AddressOf 界面控制_编码队列.重新配置) With {.ForeColor = Color.CornflowerBlue},
            New ToolStripMenuItem("重新添加", Nothing, AddressOf 界面控制_编码队列.重新添加) With {.ForeColor = Color.CornflowerBlue},
            New ToolStripMenuItem("导出配置", Nothing, AddressOf 界面控制_编码队列.导出配置),
            New ToolStripSeparator() With {.Tag = "null"}
        })

        设置富文本框行高(Form1.RichTextBox1, 350)
        Form1.RichTextBox1.AllowDrop = True
        Form1.Panel6.Controls.Add(Form1.常规流程参数页面)
        Form1.常规流程参数页面.Dock = DockStyle.Fill


        Form1.UiComboBox21.SelectedIndex = 0
        Form1.Panel41.AutoSize = True


        AddHandler Form1.UiTabControlMenu1.SelectedIndexChanged, AddressOf 界面校准

        AddHandler Form1.LinkLabel7.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://github.com/Lake1059/FFmpegFreeUI", .UseShellExecute = True})
        AddHandler Form1.LinkLabel2.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://ffmpeg.org/documentation.html", .UseShellExecute = True})
        AddHandler Form1.LinkLabel3.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://www.gyan.dev/ffmpeg/builds/", .UseShellExecute = True})
        AddHandler Form1.LinkLabel4.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://github.com/BtbN/FFmpeg-Builds/releases", .UseShellExecute = True})
        AddHandler Form1.LinkLabel5.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://afdian.com/a/1059Studio", .UseShellExecute = True})
        AddHandler Form1.LinkLabel6.LinkClicked, Sub() Process.Start(New ProcessStartInfo With {.FileName = "https://space.bilibili.com/319785096", .UseShellExecute = True})


        暗黑列表视图自绘制.绑定列表视图事件(Form1.ListView1)
        暗黑列表视图自绘制.绑定列表视图事件(Form1.ListView2)


        AddHandler Form1.UiButton3.Click, AddressOf 界面控制_编码队列.开始任务
        AddHandler Form1.UiButton1.Click, AddressOf 界面控制_编码队列.暂停任务
        AddHandler Form1.UiButton2.Click, AddressOf 界面控制_编码队列.恢复任务
        AddHandler Form1.UiButton5.Click, AddressOf 界面控制_编码队列.停止任务
        AddHandler Form1.UiButton6.Click, AddressOf 界面控制_编码队列.移除任务
        AddHandler Form1.UiButton16.Click, AddressOf 界面控制_编码队列.重置任务
        AddHandler Form1.UiButton9.Click, AddressOf 界面控制_编码队列.定位输出
        AddHandler Form1.UiButton8.Click, AddressOf 界面控制_编码队列.重新配置
        AddHandler Form1.UiButton重新添加.Click, AddressOf 界面控制_编码队列.重新添加
        AddHandler Form1.UiButton7.Click, AddressOf 界面控制_编码队列.导出配置
        AddHandler Form1.UiButton15.Click, AddressOf 界面控制_编码队列.复制命令行

        AddHandler Form1.UiButton14.Click, AddressOf 界面控制_添加文件.加入编码队列
        AddHandler Form1.ListView2.DragEnter, AddressOf 界面控制_添加文件.ListView2_DragEnter
        AddHandler Form1.ListView2.DragDrop, AddressOf 界面控制_添加文件.ListView2_DragDrop
        AddHandler Form1.UiButton18.Click, AddressOf 界面控制_添加文件.添加文件
        AddHandler Form1.UiButton10.Click, AddressOf 界面控制_添加文件.打开文件夹添加全部文件
        AddHandler Form1.UiButton11.Click, AddressOf 界面控制_添加文件.批量移除选中项
        AddHandler Form1.UiButton12.Click, AddressOf 界面控制_添加文件.移除全部项
        AddHandler Form1.UiComboBox21.SelectedIndexChanged, AddressOf 界面控制_添加文件.选择输出目录

        '==============================================


        Form1.是否初始化 = True
    End Sub

    Public Shared Sub 界面校准()
        Dim 选项卡 As TabPage = Form1.UiTabControlMenu1.SelectedTab
        Select Case True
            Case 选项卡.IsEqual(Form1.TabPage起始页面)
                Form1.UiComboBox1.ItemHeight = 30 * Form1.DPI
                Form1.UiComboBox2.ItemHeight = 30 * Form1.DPI

            Case 选项卡.IsEqual(Form1.TabPage编码队列)
                Form1.Label1.Width = Form1.Panel1.Width - Form1.Panel1.Padding.Left - Form1.Label2.Width - Form1.Label3.Width - Form1.Label4.Width - Form1.Label5.Width - Form1.Label6.Width - Form1.Label7.Width - 200 * Form1.DPI
                Form1.ListView1.Columns(0).Width = Form1.Label1.Width - 5 * Form1.DPI
                Form1.ListView1.Columns(1).Width = Form1.Label2.Width
                Form1.ListView1.Columns(2).Width = Form1.Label3.Width
                Form1.ListView1.Columns(3).Width = Form1.Label4.Width
                Form1.ListView1.Columns(4).Width = Form1.Label5.Width
                Form1.ListView1.Columns(5).Width = Form1.Label6.Width
                Form1.ListView1.Columns(6).Width = Form1.Label7.Width
                Form1.ListView1.Columns(7).Width = Form1.Label8.Width - SystemInformation.VerticalScrollBarWidth * Form1.DPI * 2

                Dim s1 As Integer = 0
                For Each c As Control In Form1.Panel2.Controls
                    s1 += c.Width
                Next
                Form1.Panel2.Padding = New Padding((Form1.Panel2.Width - s1) * 0.5, Form1.Panel2.Padding.Top, (Form1.Panel2.Width - s1) * 0.5, 0)

            Case 选项卡.IsEqual(Form1.TabPage添加文件)
                Form1.ListView2.Columns(0).Width = Form1.ListView2.Width - SystemInformation.VerticalScrollBarWidth * Form1.DPI * 2
                Form1.UiComboBox输出容器.ItemHeight = 30 * Form1.DPI
                Form1.UiComboBox21.ItemHeight = 30 * Form1.DPI

            Case 选项卡.IsEqual(Form1.TabPage转码压制)
                Form1.常规流程参数页面.界面校准()

            Case 选项卡.IsEqual(Form1.TabPage媒体信息)
                Form1.RichTextBox1.Size = New Size(Form1.RichTextBox1.Parent.Width, Form1.RichTextBox1.Parent.Height - Form1.RichTextBox1.Parent.Padding.Top * 2)


        End Select
    End Sub



End Class

```

## /IMG/e1.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e1.png

## /IMG/e_av1_nvenc.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_av1_nvenc.png

## /IMG/e_h264_nvenc.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_h264_nvenc.png

## /IMG/e_h264_qsv.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_h264_qsv.png

## /IMG/e_hevc_nvenc.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_hevc_nvenc.png

## /IMG/e_hevc_qsv.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_hevc_qsv.png

## /IMG/e_svtav1.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_svtav1.png

## /IMG/e_x264.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_x264.png

## /IMG/e_x265.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/e_x265.png

## /IMG/mi.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/mi.png

## /IMG/sc.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/sc.png

## /IMG/vp.png

Binary file available at https://raw.githubusercontent.com/Lake1059/FFmpegFreeUI/refs/heads/main/IMG/vp.png

## /新手下完看这个/1.如果你的需求是使用这个软件

```如果你的需求是使用这个软件 path="/新手下完看这个/1.如果你的需求是使用这个软件" 

```

## /新手下完看这个/2.而不是要工程文件

```而不是要工程文件 path="/新手下完看这个/2.而不是要工程文件" 

```


The content has been capped at 50000 tokens. The user could consider applying other filters to refine the result. The better and more specific the context, the better the LLM can follow instructions. If the context seems verbose, the user can refine the filter using uithub. Thank you for using https://uithub.com - Perfect LLM context for any GitHub repo.
Copied!