Compare commits

..

No commits in common. "master" and "release/1.1.0.074" have entirely different histories.

48 changed files with 1970 additions and 4129 deletions

12
.gitignore vendored
View File

@ -1,6 +1,8 @@
bin
obj
packages
*~
/.github
/.vs /.vs
/bin
/obj
/*.user
/*/.vs
/*/bin
/*/obj
/*/*.user

72
AppResource.Designer.cs generated Normal file
View File

@ -0,0 +1,72 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace RandomFileRunner {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class AppResource {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal AppResource() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RandomFileRunner.AppResource", typeof(AppResource).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-random-file-runner.
/// </summary>
internal static string AppHelpURL {
get {
return ResourceManager.GetString("AppHelpURL", resourceCulture);
}
}
}
}

View File

@ -112,37 +112,12 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="AppAuthorURL" xml:space="preserve">
<value />
</data>
<data name="AppCompanyURL" xml:space="preserve">
<value>https://www.hiimray.co.uk</value>
</data>
<data name="AppHelpURL" xml:space="preserve"> <data name="AppHelpURL" xml:space="preserve">
<value>https://www.hiimray.co.uk/software-random-file-runner</value> <value>https://www.hiimray.co.uk/software-random-file-runner</value>
</data> </data>
<data name="AppProductURL" xml:space="preserve">
<value>https://www.hiimray.co.uk/software-random-file-runner</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="folder_minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\folder-minus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="help_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\help-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\icon_64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\save.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@ -33,7 +33,7 @@ namespace RandomFileRunner
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
pictureBox1 = new System.Windows.Forms.PictureBox(); pictureBox1 = new System.Windows.Forms.PictureBox();
toolTip1 = new System.Windows.Forms.ToolTip(components); toolTip1 = new System.Windows.Forms.ToolTip(components);
button1 = new RyzStudio.Windows.ThemedForms.T3Button(); button2 = new RyzStudio.Windows.ThemedForms.ThButton();
label9 = new System.Windows.Forms.Label(); label9 = new System.Windows.Forms.Label();
menuStrip1 = new System.Windows.Forms.MenuStrip(); menuStrip1 = new System.Windows.Forms.MenuStrip();
fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -42,8 +42,6 @@ namespace RandomFileRunner
toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -52,80 +50,62 @@ namespace RandomFileRunner
toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
label1 = new System.Windows.Forms.Label(); label1 = new System.Windows.Forms.Label();
textBox1 = new RyzStudio.Windows.FontForms.TextBox.T4ClearTextBox(); button1 = new RyzStudio.Windows.ThemedForms.ThButton();
tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
textBox1 = new RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox();
tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
button5 = new RyzStudio.Windows.ThemedForms.ThButton();
openFileDialog2 = new System.Windows.Forms.OpenFileDialog(); openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
progressBar2 = new RyzStudio.Windows.Forms.TProgressBar(); progressBar2 = new RyzStudio.Windows.ThemedForms.ThProgressBar();
progressBar1 = new RyzStudio.Windows.Forms.TProgressBar(); progressBar1 = new RyzStudio.Windows.ThemedForms.ThProgressBar();
label3 = new System.Windows.Forms.Label(); label3 = new System.Windows.Forms.Label();
label4 = new System.Windows.Forms.Label(); label4 = new System.Windows.Forms.Label();
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter(); tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
t3UserControl1 = new RyzStudio.Windows.ThemedForms.T3UserControl(); label2 = new System.Windows.Forms.Label();
t3UserControl2 = new RyzStudio.Windows.ThemedForms.T3UserControl(); textBox2 = new RyzStudio.Windows.ThemedForms.ThButtonTextBox();
memoBox1 = new RyzStudio.Windows.Forms.TMemoBox(); button4 = new RyzStudio.Windows.ThemedForms.ThButton();
t3UserControl3 = new RyzStudio.Windows.ThemedForms.T3UserControl();
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
t3UserControl1.SuspendLayout();
t3UserControl2.SuspendLayout();
t3UserControl3.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
// pictureBox1 // pictureBox1
// //
pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right;
pictureBox1.ErrorImage = null; pictureBox1.ErrorImage = null;
pictureBox1.InitialImage = null; pictureBox1.InitialImage = null;
pictureBox1.Location = new System.Drawing.Point(270, 281); pictureBox1.Location = new System.Drawing.Point(289, 121);
pictureBox1.Name = "pictureBox1"; pictureBox1.Name = "pictureBox1";
pictureBox1.Size = new System.Drawing.Size(37, 37); pictureBox1.Size = new System.Drawing.Size(33, 33);
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
pictureBox1.TabIndex = 15; pictureBox1.TabIndex = 15;
pictureBox1.TabStop = false; pictureBox1.TabStop = false;
// //
// button1 // button2
// //
button1.ActiveImage = null; button2.AcceptButton = null;
button1.Align = RyzStudio.Enums.ContentAlignment.None; button2.ActiveImage = null;
button1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right; button2.BackColor = System.Drawing.Color.Transparent;
button1.BackColor = System.Drawing.Color.Transparent; button2.EnableMenuOnClick = false;
button1.EnableMenuOnClick = false; button2.EnableReactiveVisual = true;
button1.EnableMovable = false; button2.HoverImage = null;
button1.EnableStepWidth = true; button2.IdleImage = null;
button1.HoverImage = null; button2.LabelText = "&Search";
button1.IdleImage = null; button2.Location = new System.Drawing.Point(127, 121);
// button2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
// button2.Name = "button2";
// button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
button1.Label.BackColor = System.Drawing.Color.White; button2.Size = new System.Drawing.Size(149, 33);
button1.Label.Dock = System.Windows.Forms.DockStyle.Fill; button2.TabIndex = 1;
button1.Label.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); button2.TabStop = false;
button1.Label.ForeColor = System.Drawing.Color.FromArgb(126, 54, 244); button2.MouseClick += button2_MouseClick;
button1.Label.Location = new System.Drawing.Point(4, 4);
button1.Label.Margin = new System.Windows.Forms.Padding(0);
button1.Label.Name = "label1";
button1.Label.Size = new System.Drawing.Size(133, 30);
button1.Label.TabIndex = 0;
button1.Label.Text = "&Search";
button1.Label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
button1.LabelText = "&Search";
button1.Location = new System.Drawing.Point(314, 281);
button1.Name = "button1";
button1.Size = new System.Drawing.Size(140, 37);
button1.TabIndex = 1;
button1.TabStop = false;
button1.MouseClick += button2_MouseClick;
// //
// label9 // label9
// //
label9.AutoSize = true; label9.Location = new System.Drawing.Point(13, 78);
label9.Location = new System.Drawing.Point(10, 36);
label9.Name = "label9"; label9.Name = "label9";
label9.Padding = new System.Windows.Forms.Padding(0, 8, 0, 0); label9.Size = new System.Drawing.Size(101, 33);
label9.Size = new System.Drawing.Size(104, 23);
label9.TabIndex = 27; label9.TabIndex = 27;
label9.Text = "File Search Pattern"; label9.Text = "Search Pattern";
label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// menuStrip1 // menuStrip1
@ -135,11 +115,10 @@ namespace RandomFileRunner
menuStrip1.Name = "menuStrip1"; menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new System.Drawing.Size(464, 24); menuStrip1.Size = new System.Drawing.Size(464, 24);
menuStrip1.TabIndex = 32; menuStrip1.TabIndex = 32;
menuStrip1.MenuActivate += menuStrip1_MenuActivate;
// //
// fileToolStripMenuItem // fileToolStripMenuItem
// //
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, saveAsToolStripMenuItem, toolStripMenuItem15, toolStripMenuItem2, toolStripSeparator2, exitToolStripMenuItem2 }); fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
fileToolStripMenuItem.Name = "fileToolStripMenuItem"; fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
fileToolStripMenuItem.Text = "&File"; fileToolStripMenuItem.Text = "&File";
@ -148,53 +127,39 @@ namespace RandomFileRunner
// //
newToolStripMenuItem.Name = "newToolStripMenuItem"; newToolStripMenuItem.Name = "newToolStripMenuItem";
newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N; newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
newToolStripMenuItem.Size = new System.Drawing.Size(180, 22); newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
newToolStripMenuItem.Text = "&New"; newToolStripMenuItem.Text = "&New";
newToolStripMenuItem.Click += newToolStripMenuItem_Click; newToolStripMenuItem.Click += newToolStripMenuItem_Click;
// //
// openToolStripMenuItem // openToolStripMenuItem
// //
openToolStripMenuItem.Image = AppResource.folder_minus;
openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.Name = "openToolStripMenuItem";
openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O; openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
openToolStripMenuItem.Size = new System.Drawing.Size(180, 22); openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
openToolStripMenuItem.Text = "&Open"; openToolStripMenuItem.Text = "&Open";
openToolStripMenuItem.Click += openToolStripMenuItem_Click; openToolStripMenuItem.Click += openToolStripMenuItem_Click;
// //
// toolStripMenuItem13 // toolStripMenuItem13
// //
toolStripMenuItem13.Name = "toolStripMenuItem13"; toolStripMenuItem13.Name = "toolStripMenuItem13";
toolStripMenuItem13.Size = new System.Drawing.Size(177, 6); toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
// //
// saveAsToolStripMenuItem // saveAsToolStripMenuItem
// //
saveAsToolStripMenuItem.Image = AppResource.save;
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
saveAsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
saveAsToolStripMenuItem.Text = "Save &As..."; saveAsToolStripMenuItem.Text = "Save &As...";
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click; saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
// //
// toolStripMenuItem15 // toolStripMenuItem15
// //
toolStripMenuItem15.Name = "toolStripMenuItem15"; toolStripMenuItem15.Name = "toolStripMenuItem15";
toolStripMenuItem15.Size = new System.Drawing.Size(177, 6); toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
//
// toolStripMenuItem2
//
toolStripMenuItem2.Name = "toolStripMenuItem2";
toolStripMenuItem2.Size = new System.Drawing.Size(180, 22);
toolStripMenuItem2.Text = "&Export File List...";
toolStripMenuItem2.Click += toolStripMenuItem2_Click;
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
// //
// exitToolStripMenuItem2 // exitToolStripMenuItem2
// //
exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
exitToolStripMenuItem2.Size = new System.Drawing.Size(180, 22); exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
exitToolStripMenuItem2.Text = "E&xit"; exitToolStripMenuItem2.Text = "E&xit";
exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click; exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click;
// //
@ -207,11 +172,10 @@ namespace RandomFileRunner
// //
// optionsToolStripMenuItem // optionsToolStripMenuItem
// //
optionsToolStripMenuItem.Image = AppResource.settings;
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12; optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
optionsToolStripMenuItem.Size = new System.Drawing.Size(180, 22); optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
optionsToolStripMenuItem.Text = "&Options..."; optionsToolStripMenuItem.Text = "&Options";
optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click; optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
// //
// helpToolStripMenuItem1 // helpToolStripMenuItem1
@ -223,49 +187,83 @@ namespace RandomFileRunner
// //
// viewHelpToolStripMenuItem1 // viewHelpToolStripMenuItem1
// //
viewHelpToolStripMenuItem1.Image = AppResource.help_circle;
viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
viewHelpToolStripMenuItem1.Text = "&View Help"; viewHelpToolStripMenuItem1.Text = "&View Help";
viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click; viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
// //
// toolStripMenuItem16 // toolStripMenuItem16
// //
toolStripMenuItem16.Name = "toolStripMenuItem16"; toolStripMenuItem16.Name = "toolStripMenuItem16";
toolStripMenuItem16.Size = new System.Drawing.Size(177, 6); toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
// //
// aboutToolStripMenuItem1 // aboutToolStripMenuItem1
// //
aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
aboutToolStripMenuItem1.Size = new System.Drawing.Size(180, 22); aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
aboutToolStripMenuItem1.Text = "&About"; aboutToolStripMenuItem1.Text = "&About";
aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click; aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
// //
// label1 // label1
// //
label1.AutoSize = true; label1.Location = new System.Drawing.Point(13, 36);
label1.Location = new System.Drawing.Point(10, 78);
label1.Name = "label1"; label1.Name = "label1";
label1.Padding = new System.Windows.Forms.Padding(0, 8, 0, 0); label1.Size = new System.Drawing.Size(101, 33);
label1.Size = new System.Drawing.Size(82, 23);
label1.TabIndex = 40; label1.TabIndex = 40;
label1.Text = "Search In Path"; label1.Text = "Search Path";
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
button1.BackColor = System.Drawing.Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Close";
button1.Location = new System.Drawing.Point(296, 545);
button1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
button1.Name = "button1";
button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
button1.Size = new System.Drawing.Size(149, 37);
button1.TabIndex = 6;
button1.TabStop = false;
button1.MouseClick += button1_MouseClick;
//
// tHorizontalSeparator2
//
tHorizontalSeparator2.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator2.Location = new System.Drawing.Point(8, 513);
tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0);
tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(5760, 22);
tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator2.Name = "tHorizontalSeparator2";
tHorizontalSeparator2.Size = new System.Drawing.Size(448, 22);
tHorizontalSeparator2.TabIndex = 42;
tHorizontalSeparator2.TabStop = false;
//
// textBox1 // textBox1
// //
textBox1.Align = RyzStudio.Enums.ContentAlignment.Right; textBox1.AcceptButton = null;
textBox1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; textBox1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
textBox1.BackColor = System.Drawing.Color.Transparent; textBox1.BackColor = System.Drawing.Color.Transparent;
textBox1.ClearedValue = ""; textBox1.ClearedValue = "";
textBox1.EnableMovable = false; textBox1.EnableReactiveVisual = true;
textBox1.EnableStepWidth = true; textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
textBox1.Icon = "O"; textBox1.HighlightImage = (System.Drawing.Image)resources.GetObject("textBox1.HighlightImage");
textBox1.IconSize = 13F; textBox1.Location = new System.Drawing.Point(127, 78);
textBox1.Location = new System.Drawing.Point(194, 36); textBox1.Margin = new System.Windows.Forms.Padding(10, 10, 10, 0);
textBox1.Name = "textBox1"; textBox1.Name = "textBox1";
textBox1.Size = new System.Drawing.Size(260, 32); textBox1.NormalImage = (System.Drawing.Image)resources.GetObject("textBox1.NormalImage");
textBox1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
textBox1.Size = new System.Drawing.Size(318, 32);
textBox1.TabIndex = 0; textBox1.TabIndex = 0;
textBox1.TabStop = false; textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false; textBox1.UseSystemPasswordChar = false;
@ -273,10 +271,36 @@ namespace RandomFileRunner
// tHorizontalSeparator1 // tHorizontalSeparator1
// //
tHorizontalSeparator1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; tHorizontalSeparator1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
tHorizontalSeparator1.AutoPosition = true; tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.Location = new System.Drawing.Point(5, 326); tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator1.Location = new System.Drawing.Point(8, 164);
tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0);
tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(5760, 22);
tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator1.Name = "tHorizontalSeparator1"; tHorizontalSeparator1.Name = "tHorizontalSeparator1";
tHorizontalSeparator1.Size = new System.Drawing.Size(454, 10); tHorizontalSeparator1.Size = new System.Drawing.Size(448, 22);
tHorizontalSeparator1.TabIndex = 45;
tHorizontalSeparator1.TabStop = false;
//
// button5
//
button5.AcceptButton = null;
button5.ActiveImage = null;
button5.BackColor = System.Drawing.Color.Transparent;
button5.EnableMenuOnClick = false;
button5.EnableReactiveVisual = true;
button5.HoverImage = null;
button5.IdleImage = null;
button5.LabelText = "&Run Next";
button5.Location = new System.Drawing.Point(127, 309);
button5.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
button5.Name = "button5";
button5.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
button5.Size = new System.Drawing.Size(149, 33);
button5.TabIndex = 5;
button5.TabStop = false;
button5.MouseClick += button5_MouseClick;
// //
// openFileDialog2 // openFileDialog2
// //
@ -290,38 +314,44 @@ namespace RandomFileRunner
// //
// progressBar2 // progressBar2
// //
progressBar2.Align = RyzStudio.Enums.ContentAlignment.None; progressBar2.AcceptButton = null;
progressBar2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
progressBar2.BackColor = System.Drawing.Color.Transparent; progressBar2.BackColor = System.Drawing.Color.Transparent;
progressBar2.BarColour = System.Drawing.Color.FromArgb(79, 193, 203); progressBar2.BarColour = System.Drawing.Color.FromArgb(79, 193, 203);
progressBar2.Dock = System.Windows.Forms.DockStyle.Fill; progressBar2.BarTextColour = System.Drawing.Color.Black;
progressBar2.EnableMovable = false; progressBar2.EnableReactiveVisual = false;
progressBar2.EnableStepWidth = false; progressBar2.Font = new System.Drawing.Font("Segoe UI", 9F);
progressBar2.Location = new System.Drawing.Point(3, 3); progressBar2.Location = new System.Drawing.Point(127, 215);
progressBar2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
progressBar2.Maximum = 100; progressBar2.Maximum = 100;
progressBar2.Minimum = 0; progressBar2.Minimum = 0;
progressBar2.Name = "progressBar2"; progressBar2.Name = "progressBar2";
progressBar2.OnProgressChanged = null; progressBar2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
progressBar2.ShowText = true; progressBar2.ProgressText = "50/100";
progressBar2.Size = new System.Drawing.Size(438, 14); progressBar2.ShowProgressText = true;
progressBar2.Size = new System.Drawing.Size(318, 20);
progressBar2.TabIndex = 46; progressBar2.TabIndex = 46;
progressBar2.TabStop = false; progressBar2.TabStop = false;
progressBar2.Value = 50; progressBar2.Value = 50;
// //
// progressBar1 // progressBar1
// //
progressBar1.Align = RyzStudio.Enums.ContentAlignment.None; progressBar1.AcceptButton = null;
progressBar1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
progressBar1.BackColor = System.Drawing.Color.Transparent; progressBar1.BackColor = System.Drawing.Color.Transparent;
progressBar1.BarColour = System.Drawing.Color.FromArgb(79, 202, 130); progressBar1.BarColour = System.Drawing.Color.FromArgb(79, 202, 130);
progressBar1.Dock = System.Windows.Forms.DockStyle.Fill; progressBar1.BarTextColour = System.Drawing.Color.Black;
progressBar1.EnableMovable = false; progressBar1.EnableReactiveVisual = false;
progressBar1.EnableStepWidth = false; progressBar1.Font = new System.Drawing.Font("Segoe UI", 9F);
progressBar1.Location = new System.Drawing.Point(3, 3); progressBar1.Location = new System.Drawing.Point(127, 192);
progressBar1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
progressBar1.Maximum = 100; progressBar1.Maximum = 100;
progressBar1.Minimum = 0; progressBar1.Minimum = 0;
progressBar1.Name = "progressBar1"; progressBar1.Name = "progressBar1";
progressBar1.OnProgressChanged = null; progressBar1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
progressBar1.ShowText = true; progressBar1.ProgressText = "50/100";
progressBar1.Size = new System.Drawing.Size(438, 14); progressBar1.ShowProgressText = true;
progressBar1.Size = new System.Drawing.Size(318, 20);
progressBar1.TabIndex = 47; progressBar1.TabIndex = 47;
progressBar1.TabStop = false; progressBar1.TabStop = false;
progressBar1.Value = 50; progressBar1.Value = 50;
@ -330,93 +360,84 @@ namespace RandomFileRunner
// //
label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label3.AutoEllipsis = true; label3.AutoEllipsis = true;
label3.Location = new System.Drawing.Point(10, 411); label3.Location = new System.Drawing.Point(127, 256);
label3.Margin = new System.Windows.Forms.Padding(0); label3.Margin = new System.Windows.Forms.Padding(0);
label3.Name = "label3"; label3.Name = "label3";
label3.Size = new System.Drawing.Size(446, 15); label3.Size = new System.Drawing.Size(318, 15);
label3.TabIndex = 49; label3.TabIndex = 49;
label3.Text = "label3"; label3.Text = "label3";
// //
// label4 // label4
// //
label4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; label4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
label4.Location = new System.Drawing.Point(10, 396); label4.Location = new System.Drawing.Point(127, 241);
label4.Margin = new System.Windows.Forms.Padding(0); label4.Margin = new System.Windows.Forms.Padding(0);
label4.Name = "label4"; label4.Name = "label4";
label4.Size = new System.Drawing.Size(446, 15); label4.Size = new System.Drawing.Size(318, 15);
label4.TabIndex = 48; label4.TabIndex = 48;
label4.Text = "label4"; label4.Text = "label4";
// //
// dialogFooter1 // tHorizontalSeparator3
// //
dialogFooter1.Align = RyzStudio.Enums.ContentAlignment.None; tHorizontalSeparator3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240); tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
dialogFooter1.Button1Result = System.Windows.Forms.DialogResult.OK; tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
dialogFooter1.Button1Text = "&Run Next"; tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
dialogFooter1.Button1Visible = true; tHorizontalSeparator3.Location = new System.Drawing.Point(8, 281);
dialogFooter1.Button2Result = System.Windows.Forms.DialogResult.Cancel; tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0);
dialogFooter1.Button2Text = "&Close"; tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(5760, 22);
dialogFooter1.Button2Visible = true; tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
dialogFooter1.Dock = System.Windows.Forms.DockStyle.Bottom; tHorizontalSeparator3.Name = "tHorizontalSeparator3";
dialogFooter1.EnableMovable = false; tHorizontalSeparator3.Size = new System.Drawing.Size(448, 22);
dialogFooter1.EnableStepWidth = false; tHorizontalSeparator3.TabIndex = 50;
dialogFooter1.Location = new System.Drawing.Point(0, 531); tHorizontalSeparator3.TabStop = false;
dialogFooter1.Name = "dialogFooter1";
dialogFooter1.Size = new System.Drawing.Size(464, 70);
dialogFooter1.TabIndex = 0;
dialogFooter1.TabStop = false;
dialogFooter1.OnButton1Click += dialogFooter1_OnButton1Click;
dialogFooter1.OnButton2Click += dialogFooter1_OnButton2Click;
// //
// t3UserControl1 // label2
// //
t3UserControl1.Align = RyzStudio.Enums.ContentAlignment.None; label2.Location = new System.Drawing.Point(13, 192);
t3UserControl1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; label2.Name = "label2";
t3UserControl1.BackColor = System.Drawing.Color.Transparent; label2.Size = new System.Drawing.Size(101, 33);
t3UserControl1.Controls.Add(progressBar1); label2.TabIndex = 51;
t3UserControl1.EnableMovable = false; label2.Text = "Search Engine";
t3UserControl1.EnableStepWidth = false; label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
t3UserControl1.Location = new System.Drawing.Point(10, 346);
t3UserControl1.Name = "t3UserControl1";
t3UserControl1.Size = new System.Drawing.Size(444, 20);
t3UserControl1.TabIndex = 56;
// //
// t3UserControl2 // textBox2
// //
t3UserControl2.Align = RyzStudio.Enums.ContentAlignment.None; textBox2.AcceptButton = null;
t3UserControl2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; textBox2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
t3UserControl2.BackColor = System.Drawing.Color.Transparent; textBox2.BackColor = System.Drawing.Color.Transparent;
t3UserControl2.Controls.Add(progressBar2); textBox2.EnableReactiveVisual = true;
t3UserControl2.EnableMovable = false; textBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
t3UserControl2.EnableStepWidth = false; textBox2.HighlightImage = null;
t3UserControl2.Location = new System.Drawing.Point(10, 371); textBox2.Location = new System.Drawing.Point(127, 36);
t3UserControl2.Name = "t3UserControl2"; textBox2.Margin = new System.Windows.Forms.Padding(10, 10, 10, 0);
t3UserControl2.Size = new System.Drawing.Size(444, 20); textBox2.Name = "textBox2";
t3UserControl2.TabIndex = 57; textBox2.NormalImage = null;
textBox2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
textBox2.Size = new System.Drawing.Size(318, 32);
textBox2.TabIndex = 52;
textBox2.TabStop = false;
textBox2.UseSystemPasswordChar = false;
textBox2.OnButtonClick += textBox2_OnButtonClick;
// //
// memoBox1 // button4
// //
memoBox1.Dock = System.Windows.Forms.DockStyle.Fill; button4.AcceptButton = null;
memoBox1.Location = new System.Drawing.Point(3, 3); button4.ActiveImage = null;
memoBox1.MemoFileDropType = RyzStudio.Windows.Forms.TMemoBox.MemoFileDrop.All; button4.BackColor = System.Drawing.Color.Transparent;
memoBox1.MonitorClipboard = false; button4.EnableMenuOnClick = false;
memoBox1.Name = "memoBox1"; button4.EnableReactiveVisual = true;
memoBox1.Size = new System.Drawing.Size(288, 184); button4.HoverImage = null;
memoBox1.TabIndex = 64; button4.IdleImage = null;
memoBox1.TextChanged += memoBox1_TextChanged; button4.LabelText = "Save File &List";
// button4.Location = new System.Drawing.Point(296, 309);
// t3UserControl3 button4.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
// button4.Name = "button4";
t3UserControl3.Align = RyzStudio.Enums.ContentAlignment.Right; button4.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
t3UserControl3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right; button4.Size = new System.Drawing.Size(149, 33);
t3UserControl3.BackColor = System.Drawing.Color.Transparent; button4.TabIndex = 53;
t3UserControl3.Controls.Add(memoBox1); button4.TabStop = false;
t3UserControl3.EnableMovable = false; button4.MouseClick += button4_MouseClick;
t3UserControl3.EnableStepWidth = false;
t3UserControl3.Location = new System.Drawing.Point(160, 78);
t3UserControl3.Name = "t3UserControl3";
t3UserControl3.Size = new System.Drawing.Size(294, 190);
t3UserControl3.TabIndex = 65;
// //
// MainForm // MainForm
// //
@ -425,14 +446,19 @@ namespace RandomFileRunner
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
BackColor = System.Drawing.Color.FromArgb(250, 250, 250); BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
ClientSize = new System.Drawing.Size(464, 601); ClientSize = new System.Drawing.Size(464, 601);
Controls.Add(t3UserControl3); Controls.Add(button4);
Controls.Add(t3UserControl2); Controls.Add(textBox2);
Controls.Add(t3UserControl1); Controls.Add(label2);
Controls.Add(dialogFooter1); Controls.Add(tHorizontalSeparator3);
Controls.Add(label3); Controls.Add(label3);
Controls.Add(label4); Controls.Add(label4);
Controls.Add(progressBar2);
Controls.Add(progressBar1);
Controls.Add(button5);
Controls.Add(tHorizontalSeparator1); Controls.Add(tHorizontalSeparator1);
Controls.Add(textBox1); Controls.Add(textBox1);
Controls.Add(button2);
Controls.Add(tHorizontalSeparator2);
Controls.Add(button1); Controls.Add(button1);
Controls.Add(label1); Controls.Add(label1);
Controls.Add(menuStrip1); Controls.Add(menuStrip1);
@ -445,17 +471,14 @@ namespace RandomFileRunner
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
menuStrip1.ResumeLayout(false); menuStrip1.ResumeLayout(false);
menuStrip1.PerformLayout(); menuStrip1.PerformLayout();
t3UserControl1.ResumeLayout(false);
t3UserControl2.ResumeLayout(false);
t3UserControl3.ResumeLayout(false);
t3UserControl3.PerformLayout();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
#endregion #endregion
private RyzStudio.Windows.ThemedForms.ThButton button1;
private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.PictureBox pictureBox1;
private RyzStudio.Windows.ThemedForms.T3Button button1; private RyzStudio.Windows.ThemedForms.ThButton button2;
private System.Windows.Forms.ToolTip toolTip1; private System.Windows.Forms.ToolTip toolTip1;
private System.Windows.Forms.Label label9; private System.Windows.Forms.Label label9;
private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.MenuStrip menuStrip1;
@ -474,20 +497,19 @@ namespace RandomFileRunner
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private RyzStudio.Windows.FontForms.TextBox.T4ClearTextBox textBox1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
private RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox textBox1;
private RyzStudio.Windows.ThemedForms.ThButton button5;
private System.Windows.Forms.OpenFileDialog openFileDialog2; private System.Windows.Forms.OpenFileDialog openFileDialog2;
private System.Windows.Forms.SaveFileDialog saveFileDialog1; private System.Windows.Forms.SaveFileDialog saveFileDialog1;
private RyzStudio.Windows.Forms.TProgressBar progressBar2; private RyzStudio.Windows.ThemedForms.ThProgressBar progressBar2;
private RyzStudio.Windows.Forms.TProgressBar progressBar1; private RyzStudio.Windows.ThemedForms.ThProgressBar progressBar1;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
private RyzStudio.Windows.ThemedForms.T3UserControl t3UserControl1; private System.Windows.Forms.Label label2;
private RyzStudio.Windows.ThemedForms.T3UserControl t3UserControl2; private RyzStudio.Windows.ThemedForms.ThButtonTextBox textBox2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; private RyzStudio.Windows.ThemedForms.ThButton button4;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private RyzStudio.Windows.Forms.TMemoBox memoBox1;
private RyzStudio.Windows.ThemedForms.T3UserControl t3UserControl3;
} }
} }

View File

@ -1,22 +1,29 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Json;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using RyzStudio.IO; using RyzStudio.IO;
using RyzStudio.Runtime.InteropServices; using RyzStudio.Runtime.InteropServices;
using RyzStudio.Windows.Forms; using RyzStudio.Windows.Forms;
using Application = System.Windows.Forms.Application;
namespace RandomFileRunner namespace RandomFileRunner
{ {
public partial class MainForm : Form public partial class MainForm : Form
{ {
private readonly Random _randy;
private readonly FileSearcher _fileSearcher; private readonly FileSearcher _fileSearcher;
private CancellationTokenSource _cancellationToken = new CancellationTokenSource(); private CancellationTokenSource _cancellationToken = new CancellationTokenSource();
private bool _isBusy = false;
private List<string> _searchPaths = new List<string>();
private List<string> _foundFiles = new List<string>(); private List<string> _foundFiles = new List<string>();
private Process _currentProcess = null; private Process _currentProcess = null;
@ -25,56 +32,44 @@ namespace RandomFileRunner
{ {
InitializeComponent(); InitializeComponent();
textBox2.SetIcon("search");
textBox2.TextBox.ReadOnly = true;
_randy = new Random();
_fileSearcher = new FileSearcher(); _fileSearcher = new FileSearcher();
_fileSearcher.OnDirectoryFound += fileSearcher_OnDirectoryFound; _fileSearcher.OnDirectoryFound += fileSearcher_OnDirectoryFound;
_fileSearcher.OnFileFound += fileSearcher_OnFileFound; _fileSearcher.OnFileFound += fileSearcher_OnFileFound;
_fileSearcher.OnSearchCompleted += fileSearcher_OnSearchCompleted; _fileSearcher.OnSearchCompleted += fileSearcher_OnSearchCompleted;
memoBox1.WordWrap = false;
memoBox1.ScrollBars = ScrollBars.Vertical;
} }
protected async override void OnLoad(EventArgs e) protected override void OnLoad(EventArgs e)
{ {
base.OnLoad(e); base.OnLoad(e);
this.ClearSession(); this.ClearSession();
var args = this.GetCommandLine();
string jsonfigFilename = null;
if (!args.TryGetValue("o", out jsonfigFilename))
{
if (!args.TryGetValue("open", out jsonfigFilename))
{
jsonfigFilename = null;
}
}
if (string.IsNullOrWhiteSpace(jsonfigFilename))
{
jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
}
if (System.IO.File.Exists(jsonfigFilename))
{
await LoadSessionFile(jsonfigFilename);
UIControl.Invoke(button1, (x) => button1.Enabled = (this.CurrentSession.SearchItems.Count > 0));
}
} }
protected async override void OnShown(EventArgs e) protected async override void OnShown(EventArgs e)
{ {
base.OnShown(e); base.OnShown(e);
memoBox1.Focus(); var args = RyzStudio.Windows.Forms.Application.GetCommandLine();
string jsonfigFilename = args.Where(x => (x.Key.Equals("o") || x.Key.Equals("open"))).Select(x => x.Value).FirstOrDefault();
if (string.IsNullOrWhiteSpace(jsonfigFilename))
{
jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
} }
protected override void OnFormClosing(FormClosingEventArgs e) if (!string.IsNullOrWhiteSpace(jsonfigFilename) && System.IO.File.Exists(jsonfigFilename))
{ {
base.OnFormClosing(e); await LoadSessionFile(jsonfigFilename);
}
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (this.IsBusy) if (this.IsBusy)
{ {
@ -105,7 +100,7 @@ namespace RandomFileRunner
case User32.WM_HOTKEY: case User32.WM_HOTKEY:
if (m.WParam.ToInt32() == 1) if (m.WParam.ToInt32() == 1)
{ {
dialogFooter1_OnButton1Click(null, null); button5_MouseClick(null, null);
} }
break; break;
@ -125,42 +120,32 @@ namespace RandomFileRunner
public bool IsBusy public bool IsBusy
{ {
get => field; get => _isBusy;
private set set
{ {
field = value; _isBusy = value;
UIControl.Invoke(pictureBox1, (x) => pictureBox1.Image = (value ? RyzStudio.Resources.T3Resource.loading_block : null)); UIControl.SetValue(pictureBox1, (_isBusy ? UIResource.loading_block : null));
UIControl.Invoke(textBox1, (x) => textBox1.Enabled = !value); UIControl.SetEnable(textBox1, !_isBusy);
UIControl.Invoke(button1, (x) => button1.LabelText = (value ? "&Cancel" : "&Search")); button2.LabelText = (_isBusy ? "&Cancel" : "&Search");
UIControl.Invoke(dialogFooter1, (x) => dialogFooter1.Button1Visible = !value); UIControl.SetEnable(button5, !_isBusy);
UIControl.SetEnable(button4, !_isBusy);
} }
} }
public AppSession CurrentSession public AppSession CurrentSession { get; set; } = new AppSession();
{
get
{
if (field == null) field = new AppSession();
return field; public List<string> SearchPaths
} {
private set => field = value; get => _searchPaths;
} = new AppSession(); set
{
_searchPaths = value;
private List<string> SearchPathList textBox2.Text = string.Join(", ", _searchPaths.ToArray());
{
get
{
return (memoBox1.Lines?.ToList() ?? new List<string>()).Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
} }
} }
private void menuStrip1_MenuActivate(object sender, EventArgs e)
{
saveAsToolStripMenuItem.Enabled = (!this.IsBusy && (this.SearchPathList.Count > 0));
toolStripMenuItem2.Enabled = (!this.IsBusy && (_foundFiles.Count > 0));
}
#region Main Menu #region Main Menu
@ -228,11 +213,240 @@ namespace RandomFileRunner
} }
/// <summary> /// <summary>
/// Export file list /// Close
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private async void toolStripMenuItem2_Click(object sender, EventArgs e) private void exitToolStripMenuItem2_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// Options
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.IsBusy)
{
return;
}
var optionsForm = new OptionsForm(this.CurrentSession);
if (optionsForm.ShowDialog() == DialogResult.OK)
{
this.CurrentSession = optionsForm.Session;
InvalidateHotKey();
}
}
/// <summary>
/// Help
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void viewHelpToolStripMenuItem1_Click(object sender, EventArgs e)
{
RyzStudio.Diagnostics.Process.Execute(AppResource.AppHelpURL);
}
/// <summary>
/// About
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
{
MessageBox.Show(Application.ProductName + " v" + Application.ProductVersion, "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
#region Search Engine
private async Task fileSearcher_OnFileFound(FileSearcher sender, string searchPath, string fileName)
{
await Task.Run(() =>
{
_foundFiles.Add(fileName);
UIControl.SetText(label3, Path.GetFileName(fileName));
progressBar2.Maximum = (sender.FileCount + sender.NoAccessFileCount);
progressBar2.Value = sender.FileCount;
});
}
private async Task fileSearcher_OnDirectoryFound(FileSearcher sender, string searchPath, string directoryName)
{
await Task.Run(() =>
{
UIControl.SetText(label4, Path.GetFileName(directoryName));
progressBar1.Maximum = sender.DirectoryCount;
progressBar1.Value = sender.BufferLevel;
});
}
private async Task fileSearcher_OnSearchCompleted(FileSearcher sender, TimeSpan elapsedTime)
{
await Task.Run(() =>
{
UIControl.SetText(label4, $"Done in {Math.Floor(elapsedTime.TotalMinutes)}m {elapsedTime.Seconds}s");
UIControl.SetText(label3, ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
progressBar1.Value = sender.BufferLevel;
progressBar2.Value = sender.FileCount;
});
}
#endregion
private void textBox2_OnButtonClick(object sender, EventArgs e)
{
if (this.IsBusy)
{
return;
}
var form = new MemoBoxForm();
form.Lines = SearchPaths;
if (form.ShowDialog() == DialogResult.OK)
{
SearchPaths = form.Lines;
}
}
/// <summary>
/// Search
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button2_MouseClick(object sender, MouseEventArgs e)
{
if (this.IsBusy)
{
button2.LabelText = "&Cancelling...";
_cancellationToken.Cancel();
return;
}
this.IsBusy = true;
progressBar1.ShowProgressText = true;
progressBar2.ShowProgressText = true;
_foundFiles = new List<string>();
_cancellationToken = new CancellationTokenSource();
_currentProcess = null;
_fileSearcher.FileSearchPattern = textBox1.Text;
_fileSearcher.SearchPath = new List<string>();
await Task.Run(() =>
{
foreach (var item in SearchPaths)
{
if (_cancellationToken.IsCancellationRequested)
{
break;
}
if (System.IO.File.Exists(item))
{
_foundFiles.Add(item);
continue;
}
if (System.IO.Directory.Exists(item))
{
_fileSearcher.SearchPath.Add(item);
continue;
}
}
UIControl.SetText(label3, ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
});
if (_fileSearcher.SearchPath.Count > 0)
{
await _fileSearcher.Search(_cancellationToken.Token);
}
this.IsBusy = false;
_cancellationToken = new CancellationTokenSource();
}
/// <summary>
/// Run next
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button5_MouseClick(object sender, MouseEventArgs e)
{
if (this.IsBusy)
{
return;
}
if (_foundFiles.Count <= 0)
{
return;
}
await Task.Run(() =>
{
//this.IsBusy = true;
if (this.CurrentSession == null)
{
this.CurrentSession = new AppSession();
}
if (this.CurrentSession.ClosePrevOnNext)
{
CloseCurrentProcess(_currentProcess);
}
string filename = null;
// retry 8 times
for (int i = 0; i < this.CurrentSession.RetryOnError; i++)
{
filename = _foundFiles[_randy.Next(0, (_foundFiles.Count - 1))];
if (System.IO.File.Exists(filename))
{
continue;
}
filename = null;
}
if (!string.IsNullOrWhiteSpace(filename))
{
_currentProcess = RyzStudio.Diagnostics.Process.Execute(filename);
}
//this.IsBusy = false;
});
}
/// <summary>
/// Save File List
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button4_MouseClick(object sender, MouseEventArgs e)
{ {
if (this.IsBusy) if (this.IsBusy)
{ {
@ -256,214 +470,11 @@ namespace RandomFileRunner
} }
catch (Exception exc) catch (Exception exc)
{ {
RyzStudio.Forms.T3MessageBox.Show(this, exc.Message, "Save File List", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(exc.Message, "Save File List");
} }
} }
} }
/// <summary>
/// Close
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void exitToolStripMenuItem2_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// Export File List
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void toolStripMenuItem1_Click(object sender, EventArgs e)
{
}
/// <summary>
/// Options
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.IsBusy)
{
return;
}
var optionsForm = new OptionsForm(this.CurrentSession);
if (optionsForm.ShowDialog() == DialogResult.OK)
{
this.CurrentSession = optionsForm.Result;
InvalidateHotKey();
}
}
/// <summary>
/// Help
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void viewHelpToolStripMenuItem1_Click(object sender, EventArgs e)
{
RyzStudio.Diagnostics.Process.Execute(AppResource.AppHelpURL);
}
/// <summary>
/// About
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
{
var form = new RyzStudio.Forms.T3AboutForm();
form.ProductURL = AppResource.AppProductURL;
form.AuthorURL = AppResource.AppAuthorURL;
form.CompanyURL = AppResource.AppCompanyURL;
form.ProductCopyrightStartYear = 2021;
form.ProductLogo = AppResource.icon_64;
form.ShowDialog();
}
#endregion
#region Search Engine
private async Task fileSearcher_OnFileFound(FileSearcher sender, string searchPath, string fileName)
{
await Task.Run(() =>
{
_foundFiles.Add(fileName);
UIControl.Invoke(label3, (x) => label3.Text = Path.GetFileName(fileName));
progressBar2.Maximum = (sender.FileCount + sender.NoAccessFileCount);
progressBar2.Value = sender.FileCount;
});
}
private async Task fileSearcher_OnDirectoryFound(FileSearcher sender, string searchPath, string directoryName)
{
await Task.Run(() =>
{
UIControl.Invoke(label4, (x) => label4.Text = Path.GetFileName(directoryName));
progressBar1.Maximum = sender.DirectoryCount;
progressBar1.Value = sender.BufferLevel;
});
}
private async Task fileSearcher_OnSearchCompleted(FileSearcher sender, TimeSpan elapsedTime)
{
await Task.Run(() =>
{
if (!_cancellationToken.IsCancellationRequested)
{
UIControl.Invoke(label4, (x) => label4.Text = $"Done ({Math.Floor(elapsedTime.TotalMinutes)}m {elapsedTime.Seconds}s)");
}
else
{
UIControl.Invoke(label4, (x) => label4.Text = $"Cancelled ({Math.Floor(elapsedTime.TotalMinutes)}m {elapsedTime.Seconds}s)");
_cancellationToken = new CancellationTokenSource();
}
UIControl.Invoke(label3, (x) => label3.Text = ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
progressBar1.Value = sender.BufferLevel;
progressBar2.Value = sender.FileCount;
UIControl.Invoke(dialogFooter1, (x) => dialogFooter1.Button1Visible = (_foundFiles.Count > 0));
this.IsBusy = false;
});
}
#endregion
/// <summary>
/// Search
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button2_MouseClick(object sender, MouseEventArgs e)
{
if (this.IsBusy)
{
button1.LabelText = "&Cancelling...";
_cancellationToken.Cancel();
return;
}
this.IsBusy = true;
progressBar1.ShowText = true;
progressBar2.ShowText = true;
_foundFiles = new List<string>();
_cancellationToken = new CancellationTokenSource();
_currentProcess = null;
var paths = this.SearchPathList;
_fileSearcher.FileSearchPattern = textBox1.Text;
_fileSearcher.SearchPath = new List<string>();
UIControl.Invoke(label4, (x) => label4.Text = $"Peeking...");
UIControl.Invoke(label3, (x) => label3.Text = "");
await Task.Run(() =>
{
foreach (var item in paths)
{
if (_cancellationToken.IsCancellationRequested)
{
break;
}
if (System.IO.File.Exists(item))
{
_foundFiles.Add(item);
UIControl.Invoke(label3, (x) => label3.Text = item);
continue;
}
if (System.IO.Directory.Exists(item))
{
_fileSearcher.SearchPath.Add(item);
UIControl.Invoke(label3, (x) => label3.Text = item);
continue;
}
}
UIControl.Invoke(label4, (x) => label4.Text = $"Peeking... {paths.Count}");
UIControl.Invoke(label3, (x) => label3.Text = ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
});
if (_fileSearcher.SearchPath.Count <= 0)
{
UIControl.Invoke(label4, (x) => label4.Text = $"Done");
UIControl.Invoke(label3, (x) => label3.Text = ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
}
else
{
UIControl.Invoke(label4, (x) => label4.Text = $"Searching...");
await _fileSearcher.Search(_cancellationToken.Token);
}
//this.IsBusy = false;
}
/// <summary> /// <summary>
/// Close /// Close
/// </summary> /// </summary>
@ -520,40 +531,26 @@ namespace RandomFileRunner
_foundFiles = new List<string>(); _foundFiles = new List<string>();
_currentProcess = null; _currentProcess = null;
UIControl.Invoke(textBox1, (_) => textBox1.Text = "*.*"); textBox1.Text = "*.*";
UIControl.Invoke(memoBox1, (_) => memoBox1.Clear());
progressBar1.Clear(0); progressBar1.Clear(0, 0, 0);
progressBar2.Clear(0); progressBar2.Clear(0, 0, 0);
UIControl.Invoke(label4, (x) => label4.Text = ""); UIControl.SetText(label4, "");
UIControl.Invoke(label3, (x) => label3.Text = ""); UIControl.SetText(label3, "");
UIControl.Invoke(button1, (x) => button1.Enabled = false);
UIControl.Invoke(dialogFooter1, (x) => dialogFooter1.Button1Visible = false);
} }
protected async Task LoadSessionFile(string filename) protected async Task LoadSessionFile(string filename)
{ {
await Task.Run(async () => await Task.Run(() =>
{ {
this.CurrentSession = await RyzStudio.Text.Json.JsonSerialiser.DeserialiseFile<AppSession>(filename); this.CurrentSession = RyzStudio.Text.Json.JsonSerialiser.DeserialiseFile<AppSession>(filename) ?? new AppSession();
ClearSession(); ClearSession();
textBox1.Text = (string.IsNullOrWhiteSpace(this.CurrentSession.SearchFilePattern) ? "*" : this.CurrentSession.SearchFilePattern?.Trim()); textBox1.Text = (string.IsNullOrWhiteSpace(this.CurrentSession.SearchFilePattern) ? "*" : this.CurrentSession.SearchFilePattern?.Trim());
foreach (var item in this.CurrentSession?.SearchItems) SearchPaths = this.CurrentSession?.SearchItems ?? new List<string>();
{
if (string.IsNullOrWhiteSpace(item))
{
continue;
}
UIControl.Invoke(memoBox1, (_) => memoBox1.AddLine(item));
}
UIControl.Invoke(label4, (x) => label4.Text = "Ready");
UIControl.Invoke(button1, (x) => button1.Enabled = (this.CurrentSession?.SearchItems.Count > 0));
// hotkey // hotkey
InvalidateHotKey(); InvalidateHotKey();
@ -575,84 +572,41 @@ namespace RandomFileRunner
await Task.Run(() => await Task.Run(() =>
{ {
this.CurrentSession.SearchFilePattern = textBox1.Text; this.CurrentSession.SearchFilePattern = textBox1.Text;
this.CurrentSession.SearchItems = this.SearchPathList; this.CurrentSession.SearchItems = new List<string>();
var result = RyzStudio.Text.Json.JsonSerialiser.SerialiseFile(filename, this.CurrentSession); foreach (var item in SearchPaths)
if (result.Success)
{ {
RyzStudio.Forms.T3MessageBox.Show(this, "Session saved!", "Save session"); if (string.IsNullOrWhiteSpace(item))
}
else
{
RyzStudio.Forms.T3MessageBox.Show(this, result.Message, "Save session", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
});
}
/// <summary>
/// Run Next
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void dialogFooter1_OnButton1Click(object sender, MouseEventArgs e)
{
if (this.IsBusy)
{
return;
}
if (_foundFiles.Count <= 0)
{
return;
}
await Task.Run(() =>
{
this.IsBusy = true;
if (this.CurrentSession.ClosePrevOnNext)
{
CloseCurrentProcess(_currentProcess);
}
string filename = null;
// retry 8 times
for (int i = 0; i < this.CurrentSession.RetryOnError; i++)
{
filename = _foundFiles[Random.Shared.Next(0, (_foundFiles.Count - 1))];
if (System.IO.File.Exists(filename))
{ {
continue; continue;
} }
filename = null; this.CurrentSession.SearchItems.Add(item.Trim());
} }
if (!string.IsNullOrWhiteSpace(filename)) string sourceCode = null;
try
{ {
_currentProcess = RyzStudio.Diagnostics.Process.Execute(filename); sourceCode = JsonSerializer.Serialize(this.CurrentSession);
}
catch (Exception)
{
MessageBox.Show("Unable to write session", "Save session");
return;
} }
this.IsBusy = false; try
{
System.IO.File.WriteAllText(filename, sourceCode);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "Save session");
return;
}
}); });
} }
/// <summary>
/// Close
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dialogFooter1_OnButton2Click(object sender, MouseEventArgs e)
{
this.Close();
}
private void memoBox1_TextChanged(object sender, EventArgs e)
{
UIControl.Invoke(button1, (x) => button1.Enabled = !string.IsNullOrWhiteSpace(memoBox1.Text));
}
} }
} }

453
MainForm.resx Normal file
View File

@ -0,0 +1,453 @@
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>716, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBox1.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wQAADsEBuJFr7QAAAN5JREFUOE/tUzsKwkAUXLCyFMHjeIvdB4Gk8ALamU4rsbLaTWz0AOYGOYMewTqe
QLEQnZc8WRMSsBYHhrzPzJBin2pC60PPGLs3xl3Bp5DrHe9E1g2tHUH8QMjKmGReketyZkRWh9abfhTZ
YRimI4jWRPYSBMngkzzjHWtYyx6xK4X0Anz/7rcsxM4BdoxBTuTOqCdEaUyU6DrTuNqxxuXsEXsFDLfg
UdpOsIa10nr8A34p4CRtJ1jTGoC3PsPiBi78ETXplqzBwU3F5sHHgWWGJ3rHt+3tg+Uu84ek1AsYYd8q
EsfwCwAAAABJRU5ErkJggg==
</value>
</data>
<data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wQAADsEBuJFr7QAAANFJREFUOE/tkzEKAjEURANWliJ4HG+h9l5AO7fTSjyCxWpCIBB2b+AZ9AjW6wlc
LGSdWb9Elw1YiwOP/Pw/E1Ikqqksyzpa670x5goqgfWOM7HFhfAE5jvWNdYFkZq9sdg+laZp13vfBwOY
NjBfnHO9d9jjjB56mZG4UhgW4HXdbykkXl97iMYBnFFPrbUJGDVIOKOHXmYk/hSaW3CUbVT00CvboP8B
v3TASbZR0RM7YA5KsAT1J2phBUq8wpnEgvg5MMwxvGFte/uVzPLwkZR6AInAKK6aICfTAAAAAElFTkSu
QmCC
</value>
</data>
<metadata name="openFileDialog2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1155, 17</value>
</metadata>
<metadata name="saveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1295, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>52</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMz
MygzMzPXMzMzszIyMmU1NTUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMTExOTQ0NO00NDT/NDU1/zMzM/8zMzP9MzMzyDMzM3k0NDQsAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA0NDRFMzQ09D0+Pv6htbX/xODh/5apqv9ncXL/Ojs7/jMzM/8zMzP/NDQ04DQ0
NJkyMjJNMzMzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzM180NDT7T1BQ/b/R0f/S7/D/0O7v/9Du7//Q7u//y+np/6e9
vf93hIT/QkVF/jMzM/8zMzP/NDQ08DMzM6o0NDReMzMzDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzdzU1Nf5eYWH+xtna/9nx8v/Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//zuzt/7DIyf+CkZH/UlhY/jMzM/8zMzP/MzMz/DMzM8QzMzNvNTU1HQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQMzMzOVNTU1/2xwcP7O4+P/3PLz/9Xw
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7zW1/+Ro6P/Ymtr/zY2
Nv4zMzP/MzMz/zMzM9UzMzOIMzMzPAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkBzMzM6k5OTn/eH5+/9Po
6f/c8vP/2/Lz/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/8Xh4v+csLD/bHd3/zs9Pf4zMzP/MzMz/zQ0NOI0NDSZMjIyTSQkJAcAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0RMzMzwjw8
PP+Ij5D/2O7v/9zy8//c8vP/1/Hy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8vo6f+jubr/dICA/0NGRv4zMzP/MzMz/zQ0
NPIyMjJrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3
NxwzMzPVQUFB/5Wfn//a8fL/3PLz/9zy8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t
7v+wyMn/gZCQ/zk6Ov4zMzPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMTExKjQ0NOJGRkb/oKys/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/19naP80NDT5JCQkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAyMjI4NTU17UhISP6turr/3PLz/9zy8//c8vP/3PLz/9zy8//X8fH/0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/4KRkv8zMzP/MTExOQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NE80NDT3Tk9P/bnJyv/c8vP/3PLz/9zy8//c8vP/3PLz/9zy
8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/6a8vf8zMzP/MzMzcwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyYTQ0NPxUVlb9wtPU/9zy8//c8vP/3PLz/9zy
8//c8vP/3PLz/9vy8//Q7u//0O7v/8fk5f/O7O3/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8nm
5/81NTX+NDQ0rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzN3MzMz/11gYP3K3d3/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/3PLz/9jx8v/Q7u//i6Cg/wMEBP8hJib/rcbH/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7/9RV1f/MzMz6gAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVAzIyMpgzMzP/Z2tr/tDk
5f/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//TVlZ/wAAAP8AAAD/CgsL/4ic
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/91goL/MzMz/zMzMyMAAAAAAAAAAAAAAABAQEAIMzMzqzMz
M/9yeHj/1uvr/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P/Q7u//TVhY/wAA
AP8AAAD/AAAA/wAAAP9baGj/zOnq/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Zra7/MzMz/zQ0NF4AAAAAAAAAAAAA
AAAzMzPCMzMz/3uEhP/a7/D/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2/Lz/9Du
7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/MDc3/7vW1//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/++2dr/MzMz/zQ0
NJkAAAAAAAAAAAAAAAAzMzPNPD09/tvx8v/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
8//c8vP/2fHy/9Du7//Q7u//TVhY/wAAAP8AAAD/YnBw/wYHB/8AAAD/AAAA/xQWFv+ds7T/0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//REdH/jQ0NNQAAAAAAAAAAAAAAAAyMjKTMzMz/8ve3//d8/T/3fPz/93z8//c8vP/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/1/Hx/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/6e/wP8bHx//AAAA/wAA
AP8DBAT/b39//8/t7v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//aHJz/zMzM/0tLS0RAAAAAAAAAAA0NDRZMzMz/6u6u//d8/T/3fPz/93z
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du
7//A3N3/OkJD/wAAAP8AAAD/AAAA/0BJSf/E4OH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//jJ2e/zMzM/8yMjJIAAAAAAAAAAAzMzMeMzMz/4aQ
kP/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1O/w/9Du7//Q7u//TVhY/wAA
AP8AAAD/s8zN/9Du7//Q7u//z+3u/29/f/8CAgL/AAAA/wAAAP8fIyT/rMXG/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//sMfI/zMzM/8zMzOCAAAAAAAA
AAAAAAAAMzMz5FpfX/7d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0u/w/9Du
7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7/+Uqar/DhAQ/wAAAP8AAAD/CgsL/4md
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//zuvs/zo7
O/40NDS8AAAAAAAAAAAAAAAAMzMzqTY2N//V6er/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7//Q7u//tM7P/yct
Lf8AAAD/AAAA/wAAAP9baWn/zerr/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/1tjY/80NDT1QEBABAAAAAAAAAAAMzMzbzMzM/+4ycn/3fPz/93z8//c8vP/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/8nm5/9OWlr/AAAA/wAAAP8AAAD/a3p7/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/36Njf8zMzP/MzMzMgAAAAAAAAAAMTExNDMzM/+UoaH/3fPz/93z
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/8nm5/9OWlr/AAAA/wAAAP8AAAD/a3p7/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/6O4uf8zMzP/MzMzbQAAAAAAAAAAQEBABDQ0
NPRrcnL/3fP0/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7//Q7u//TVhY/wAA
AP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7//Q7u//tM7P/yctLf8AAAD/AAAA/wAAAP9baWn/zerr/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8bi4/80NDT/MjIypwAA
AAAAAAAAAAAAADMzM749Pj7+3PHx/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du
7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7/+Uqar/DxER/wAAAP8AAAD/CgsL/4ic
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7/9NUVL+NDQ04gAAAAAAAAAAAAAAADIyMoQzMzP/w9bW/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy
8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//z+3u/29/f/8CAgL/AAAA/wAA
AP8fIyT/rMXG/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7/9yfn//MzMz/zU1NR0AAAAAAAAAADQ0NEozMzP/oa+w/93z8//d8/P/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/0u/w/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//A3N3/O0ND/wAA
AP8AAAD/AAAA/0BJSf/D3+D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+WqKn/MzMz/zIyMlcAAAAAAAAAADAwMBAzMzP9eIGB/93z
8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1O/w/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/6e/
wP8bHx//AAAA/wAAAP8CAwP/b39//8/t7v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+50tP/MzMz/zMzM5EAAAAAAAAAAAAA
AAA0NDTUSk1N/t3z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7//Q7u//TVhY/wAA
AP8AAAD/YnBw/wYHB/8AAAD/AAAA/xQWFv+ds7T/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//O7O3/Oz09/jMz
M80AAAAAAAAAAAAAAAA0NDSZMzMz/87i4//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du
7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/MDc3/7vW1//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp
6v9qdHT/MzMz/zMzM8IAAAAAAAAAAAAAAAAyMjJgMzMz/6u8vP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy
8//c8vP/2/Lz/9Du7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP9baGj/zOnq/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//yOXm/19oaP8zMzP/MzMzuTs7Ow0AAAAAAAAAAAAAAAAwMDAlMzMz/4WRkf/d8/P/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P/Q7u//TVlZ/wAAAP8AAAD/CgsL/4icnf/Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//B3d7/UVdX/jMzM/8zMzOgMzMzBQAAAAAAAAAAAAAAAAAAAAAAAAAAMzMz6Vlf
X//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9fx8v/Q7u//i6Cg/wMEBP8hJib/rcbH/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/7vV1v9KTk79MzMz/zMzM4gAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMzMzrzU1Nf7V6+z/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//R7/D/0O7v/8fk
5f/O7O3/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//sMjI/0FDQ/0zMzP9MzMzaQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAMjIydTMzM/+4ysv/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
8//X8fH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+nvb3/OTs7/TQ0NPkyMjJWAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0OzMzM/+ToKH/3fPz/9zy8//c8vP/3PLz/9zy
8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5eqq/81Njb+NDU18TEx
MT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkBzMzM/hpcXH/3fPz/9zy
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2vLz/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//i5yd/zQ0
NP80NDTnMTExLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMz
M8Q5Ojr+jZqa/8DT1P/b8vL/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9nx8v/R7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/87s
7f91goL/MzMz/zMzM9U3NzccAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADIyMms0NDTyMzMz/zMzM/9KTU3+hY+P/7XHyP/Y7u//3PLz/9zy8//c8vP/3PLz/9zy
8//Z8fL/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//y+jp/2dwcf8zMzP/MzMzwi0tLREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDMzMzPDMzM4g0NDTbMzMz/zMzM/89Pj7+cnp6/6W0
tP/R5ub/3PLz/9zy8//c8vP/2fHy/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
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
AAAAAAAAAAAAAAAAAAAAAAAAMjIyVzg4OPmKmpv+eomJ/kVKSvY1Njb8PD09xDIyMmszMzMeAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NW5BQkL6tcXG/9Hu7//Q7u//0O7v/7vV1v+LnJ3/WF9f9jQ1
Nf06OzvfNDQ0iTMzMzwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4ODiDTU5O+sDS0v/Y8fL/0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//xODh/5ywsP9pc3P4ODk5+jg5OfA3NzemMjIyTSQkJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMFOTk5qVdaWvjK3d3/3PLz/9Pv8P/Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6en/ore4/3F9ffs+QED4Nzc39zs8PLIyMjJcNzc3DgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrDDo8PMBobGz40eXm/9zy8//b8vP/0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t7v+vx8f/fYyN/kBD
Q/czMzN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2NhM8Pj7Pdnx8+NXq6//c8vP/3PLz/9fw
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//i5yc/zs8PLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NjYhOzw84YGIiPrY7+//3PLz/9zy
8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7/+vx8f/ODk58gAAAAEAAAAAAAAAAAAAAAAAAAAAMzMzLTo7O+2PmZn82vHy/9zy
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
8//W8PH/xODh/wEBAf8ICQn/hZiZ/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//i5yc/TY3N/c0NDRJAAAAAAAAAAAAAAAAMjIyKTk6Ovva8PD/3PLz/9zy
8//c8vP/3PLz/9vy8//R7u//l62t/7DKyv/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//z+3u/3mIiPw3ODjyMTExOQAAAAAAAAAAAAAAAAAAAAAAAAABODk58sDS
0//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp6v9ncXL5Nzk55jY2NiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA7Pj69nKqr/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//I5eb/XGRk+Ds8PNU3NzcXAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADMzM3hCRET3jZqb/r/S0v/b8vL/3PLz/9zy8//c8vP/2/Lz/9Lv8P/Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wdzd/0tRUfc5OjrAKysrDAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlw5OjqwNjc39kZISPeAiov7tMXG/9ju7v/c8vP/2vLz/9Lv
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v9DRkb4OTs7qjMzMwUAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEMzMzPDc3N5Q4OTnqOjs7+211
dvijsrL/z+Tl/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+wyMj/PT4/+Dc3N5UAAAACAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAA1NTUrMzMzdzo7O840NDT+V1xc9o6cnP+60dL/0e7v/9Du7//Q7u//pry8/zg5Ofo3Nzd4AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMx4yMjJrOjs7wjU1NftGS0vzfImK/IiYmf42Nzf6MjIyVwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlY5OzuqOTo65jIy
MkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wB///4AB//4A
AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAwAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA
AACAAAAAwAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//8AB///4A////wf/KAAAABgA
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAOz4+Vzs8PO1DRkavMjIyUS4uLgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz9pX2Nj78Le3/+rwsP/d4SF8EVI
SO1CRUXQODg4ci8vLxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAUJERotxd3fz0+rr/9Du7//Q7u//0O7v/9Du7/+2z9D/hJOU9k1SUus+QEDjPD4+hzIy
MjMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEQkNDq4WPj/Pa8PH/1fDx/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+/2tv/j6Ch/VdeXu8/QUHoQUNDnC8vLxsAAAAAAAAAAAAA
AAAAAAAAAAAAAC4uLgtFSEjEl6Oj9tvy8v/c8vP/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//I5eb/eYaH/Tk5OXUAAAAAAAAAAAAAAAAAAAAAOTk5EkVISNKmsrP53PLz/9zy
8//Z8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//ssrL/0NH
R74AAAAAAAAAAAAAAAAwMDAgRkhI4q++wP3c8vP/3PLz/9zy8//W8PH/i5+f/5yys//Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//z+zt/z9BQuoAAAAAAAAAADQ0NCxHSUnnvtDQ/dzy
8//c8vP/3PLz/9zy8//S7/D/Jisr/wIDA/9tfX7/z+3u/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
7//Q7u//0O7v/1JYWOowMDAgAAAAADs9PezH2tv/3fPz/9zy8//c8vP/3PLz/9vy8//Q7u//Jisr/xgc
HP8CAgL/QElJ/8Tg4f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/36NjfY1NTVcAAAAAENG
RtDN4eH/3fPz/9zy8//c8vP/3PLz/9rx8v/Q7u//Jisr/1pnZ/+Uqar/DxER/x0iIv+qw8T/0O7v/9Du
7//Q7u//0O7v/9Du7//Q7u//0O7v/6W7u/9CRkalAAAAAD5AQIutvL3+3fPz/9zy8//c8vP/3PLz/9jx
8v/Q7u//Jisr/1pnZ//Q7u//uNLT/ywyM/8HBwf/gJOT/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8jk
5f9BQ0PgAAAAADIyMkeDjY3x3fPz/9zy8//c8vP/3PLz/9bw8f/Q7u//Jisr/1pnZ//Q7u//0O7v/8nn
5/9QW1z/AAAA/2Z1df/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/9GS0vsMzMzDzc3Nw5VWFnt3fPz/9zy
8//c8vP/3PLz/9bw8f/Q7u//Jisr/1pnZ//Q7u//0O7v/8nn5/9QW1z/AAAA/2Z1df/Q7u//0O7v/9Du
7//Q7u//0O7v/9Du7/9teXnvNDQ0RQAAAABARETi1+vs/9zy8//c8vP/3PLz/9bw8f/Q7u//Jisr/1pn
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
rEGAAKxBgAGsQYADrEHgD6xB/B+sQQ==
</value>
</data>
</root>

248
MemoBoxForm.cs Normal file
View File

@ -0,0 +1,248 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace RandomFileRunner
{
public class MemoBoxForm : Form
{
private ThButton button1;
private ThMemoBox memoBox1;
private ThButton button3;
private ThButton button4;
private ContextMenuStrip contextMenuStrip1;
private System.ComponentModel.IContainer components;
private ToolStripMenuItem addDirectoryToolStripMenuItem;
private ToolStripMenuItem addFileToolStripMenuItem;
private FolderBrowserDialog folderBrowserDialog1;
private OpenFileDialog openFileDialog1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
public MemoBoxForm() : base()
{
InitializeComponent();
memoBox1.TextBox.WordWrap = false;
}
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
button1 = new ThButton();
tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
memoBox1 = new ThMemoBox();
button3 = new ThButton();
contextMenuStrip1 = new ContextMenuStrip(components);
addDirectoryToolStripMenuItem = new ToolStripMenuItem();
addFileToolStripMenuItem = new ToolStripMenuItem();
button4 = new ThButton();
folderBrowserDialog1 = new FolderBrowserDialog();
openFileDialog1 = new OpenFileDialog();
contextMenuStrip1.SuspendLayout();
SuspendLayout();
//
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button1.BackColor = System.Drawing.Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Save";
button1.Location = new System.Drawing.Point(241, 469);
button1.Margin = new Padding(10, 0, 10, 10);
button1.Name = "button1";
button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new System.Drawing.Size(128, 32);
button1.TabIndex = 4;
button1.TabStop = false;
button1.MouseClick += button1_MouseClick;
//
// tHorizontalSeparator1
//
tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator1.Name = "tHorizontalSeparator1";
tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
tHorizontalSeparator1.TabIndex = 188;
tHorizontalSeparator1.TabStop = false;
//
// memoBox1
//
memoBox1.AcceptButton = null;
memoBox1.AllowDrop = true;
memoBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
memoBox1.BackColor = System.Drawing.Color.Transparent;
memoBox1.EnableReactiveVisual = true;
memoBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
memoBox1.Location = new System.Drawing.Point(10, 70);
memoBox1.Margin = new Padding(10, 6, 10, 6);
memoBox1.Name = "memoBox1";
memoBox1.Padding = new Padding(4, 4, 3, 3);
memoBox1.ReadOnly = false;
memoBox1.ScrollBars = ScrollBars.Vertical;
memoBox1.Size = new System.Drawing.Size(364, 361);
memoBox1.TabIndex = 191;
memoBox1.TabStop = false;
memoBox1.WordWrap = false;
//
// button3
//
button3.AcceptButton = null;
button3.ActiveImage = null;
button3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
button3.BackColor = System.Drawing.Color.Transparent;
button3.ContextMenuStrip = contextMenuStrip1;
button3.EnableMenuOnClick = true;
button3.EnableReactiveVisual = true;
button3.HoverImage = null;
button3.IdleImage = null;
button3.LabelText = "&Add";
button3.Location = new System.Drawing.Point(10, 21);
button3.Margin = new Padding(10, 0, 10, 10);
button3.Name = "button3";
button3.Padding = new Padding(4, 4, 3, 3);
button3.Size = new System.Drawing.Size(177, 33);
button3.TabIndex = 189;
button3.TabStop = false;
//
// contextMenuStrip1
//
contextMenuStrip1.Items.AddRange(new ToolStripItem[] { addDirectoryToolStripMenuItem, addFileToolStripMenuItem });
contextMenuStrip1.Name = "contextMenuStrip1";
contextMenuStrip1.Size = new System.Drawing.Size(148, 48);
//
// addDirectoryToolStripMenuItem
//
addDirectoryToolStripMenuItem.Name = "addDirectoryToolStripMenuItem";
addDirectoryToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
addDirectoryToolStripMenuItem.Text = "&Add Directory";
addDirectoryToolStripMenuItem.Click += addDirectoryToolStripMenuItem_Click;
//
// addFileToolStripMenuItem
//
addFileToolStripMenuItem.Name = "addFileToolStripMenuItem";
addFileToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
addFileToolStripMenuItem.Text = "Add &File";
addFileToolStripMenuItem.Click += addFileToolStripMenuItem_Click;
//
// button4
//
button4.AcceptButton = null;
button4.ActiveImage = null;
button4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
button4.BackColor = System.Drawing.Color.Transparent;
button4.EnableMenuOnClick = false;
button4.EnableReactiveVisual = true;
button4.HoverImage = null;
button4.IdleImage = null;
button4.LabelText = "&Clear";
button4.Location = new System.Drawing.Point(197, 21);
button4.Margin = new Padding(10, 0, 10, 10);
button4.Name = "button4";
button4.Padding = new Padding(4, 4, 3, 3);
button4.Size = new System.Drawing.Size(177, 33);
button4.TabIndex = 190;
button4.TabStop = false;
button4.MouseClick += button4_MouseClick;
//
// folderBrowserDialog1
//
folderBrowserDialog1.ShowNewFolderButton = false;
//
// openFileDialog1
//
openFileDialog1.Filter = "All files (*.*)|*.*";
//
// MemoBoxForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new System.Drawing.Size(384, 521);
Controls.Add(memoBox1);
Controls.Add(button3);
Controls.Add(button4);
Controls.Add(tHorizontalSeparator1);
Controls.Add(button1);
MinimumSize = new System.Drawing.Size(400, 560);
Name = "MemoBoxForm";
ShowIcon = false;
ShowInTaskbar = false;
Text = "Manage Search Paths";
contextMenuStrip1.ResumeLayout(false);
ResumeLayout(false);
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.DialogResult = System.Windows.Forms.DialogResult.None;
}
public List<string> Lines
{
get => memoBox1.Lines;
set
{
memoBox1.TextBox.Lines = value.ToArray();
}
}
private void button1_MouseClick(object sender, MouseEventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
/// <summary>
/// Add Directory.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
memoBox1.TextBox.AddLine(folderBrowserDialog1.SelectedPath);
}
}
/// <summary>
/// Add File.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addFileToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
memoBox1.TextBox.AddLine(openFileDialog1.FileName);
}
}
/// <summary>
/// Clear.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_MouseClick(object sender, MouseEventArgs e)
{
memoBox1.Text = string.Empty;
}
}
}

129
MemoBoxForm.resx Normal file
View File

@ -0,0 +1,129 @@
<?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="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>831, 17</value>
</metadata>
<metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>986, 17</value>
</metadata>
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1155, 17</value>
</metadata>
</root>

View File

@ -19,11 +19,7 @@ namespace RandomFileRunner
public string SearchFilePattern { get; set; } = "*"; public string SearchFilePattern { get; set; } = "*";
public List<string> SearchItems public List<string> SearchItems { get; set; } = new List<string>();
{
get => field ?? new List<string>();
set => field = value;
}
public bool SearchTopDirectoryOnly { get; set; } = false; public bool SearchTopDirectoryOnly { get; set; } = false;
@ -31,12 +27,7 @@ namespace RandomFileRunner
public int RetryOnError { get; set; } = 8; public int RetryOnError { get; set; } = 8;
public HotKeyOptions NextHotKey public HotKeyOptions NextHotKey { get; set; } = new HotKeyOptions();
{
get => field ?? new HotKeyOptions();
set => field = value;
}
} }
} }

308
OptionsForm.cs Normal file
View File

@ -0,0 +1,308 @@
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
using RyzStudio.Windows.ThemedForms.PickerBox;
using System;
using System.Windows.Forms;
namespace RandomFileRunner
{
public class OptionsForm : Form
{
private ThButton button1;
private ThYesNoPickerBox pickerBox1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label8;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private ThNumericPickerBox pickerBox2;
private ThKeyCodeTextBox textBox1;
private ThYesNoPickerBox pickerBox3;
private Label label1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
private Label label2;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
public OptionsForm(AppSession session) : base()
{
InitializeComponent();
this.Session = session;
}
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm));
ThKeyCodeTextBox.Results results1 = new ThKeyCodeTextBox.Results();
button1 = new ThButton();
pickerBox1 = new ThYesNoPickerBox();
label6 = new Label();
label8 = new Label();
tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
pickerBox2 = new ThNumericPickerBox();
textBox1 = new ThKeyCodeTextBox();
pickerBox3 = new ThYesNoPickerBox();
label1 = new Label();
tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
label2 = new Label();
SuspendLayout();
//
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button1.BackColor = System.Drawing.Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Save";
button1.Location = new System.Drawing.Point(241, 469);
button1.Margin = new Padding(10, 0, 10, 10);
button1.Name = "button1";
button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new System.Drawing.Size(128, 32);
button1.TabIndex = 4;
button1.TabStop = false;
button1.MouseClick += button1_MouseClick;
//
// pickerBox1
//
pickerBox1.AcceptButton = null;
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox1.BackColor = System.Drawing.Color.Transparent;
pickerBox1.EnableReactiveVisual = true;
pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
pickerBox1.Location = new System.Drawing.Point(285, 21);
pickerBox1.Margin = new Padding(10, 10, 10, 0);
pickerBox1.Name = "pickerBox1";
pickerBox1.Padding = new Padding(4, 4, 3, 3);
pickerBox1.SelectedIndex = 1;
pickerBox1.Size = new System.Drawing.Size(84, 35);
pickerBox1.TabIndex = 0;
pickerBox1.TabStop = false;
pickerBox1.Value = true;
//
// label6
//
label6.AutoSize = true;
label6.BackColor = System.Drawing.Color.Transparent;
label6.ForeColor = System.Drawing.SystemColors.ControlText;
label6.Location = new System.Drawing.Point(10, 85);
label6.Margin = new Padding(0);
label6.Name = "label6";
label6.Padding = new Padding(0, 9, 0, 10);
label6.Size = new System.Drawing.Size(81, 34);
label6.TabIndex = 182;
label6.Text = "Retry On Error";
label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label8
//
label8.AutoSize = true;
label8.BackColor = System.Drawing.Color.Transparent;
label8.ForeColor = System.Drawing.SystemColors.ControlText;
label8.Location = new System.Drawing.Point(10, 21);
label8.Margin = new Padding(0);
label8.Name = "label8";
label8.Padding = new Padding(0, 9, 0, 10);
label8.Size = new System.Drawing.Size(143, 34);
label8.TabIndex = 186;
label8.Text = "Search Top Directory Only";
label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tHorizontalSeparator1
//
tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator1.Name = "tHorizontalSeparator1";
tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
tHorizontalSeparator1.TabIndex = 188;
tHorizontalSeparator1.TabStop = false;
//
// tHorizontalSeparator2
//
tHorizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator2.Location = new System.Drawing.Point(10, 59);
tHorizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator2.Name = "tHorizontalSeparator2";
tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
tHorizontalSeparator2.TabIndex = 190;
tHorizontalSeparator2.TabStop = false;
//
// pickerBox2
//
pickerBox2.AcceptButton = null;
pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox2.BackColor = System.Drawing.Color.Transparent;
pickerBox2.EnableReactiveVisual = true;
pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
pickerBox2.Location = new System.Drawing.Point(285, 85);
pickerBox2.Margin = new Padding(10, 10, 10, 0);
pickerBox2.MaxDropDownItems = 10;
pickerBox2.Maximum = 50;
pickerBox2.Minimum = 0;
pickerBox2.Name = "pickerBox2";
pickerBox2.Padding = new Padding(4, 4, 3, 3);
pickerBox2.SelectedIndex = 0;
pickerBox2.Size = new System.Drawing.Size(84, 35);
pickerBox2.TabIndex = 1;
pickerBox2.TabStop = false;
pickerBox2.Value = 0;
//
// textBox1
//
textBox1.AcceptButton = null;
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
textBox1.BackColor = System.Drawing.Color.Transparent;
textBox1.EnableReactiveVisual = true;
textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
textBox1.HighlightImage = (System.Drawing.Image)resources.GetObject("textBox1.HighlightImage");
results1.IsAlt = false;
results1.IsCtrl = false;
results1.IsShift = false;
results1.Key = Keys.None;
textBox1.KeyCodeResults = results1;
textBox1.Location = new System.Drawing.Point(241, 197);
textBox1.Margin = new Padding(10, 10, 10, 0);
textBox1.Name = "textBox1";
textBox1.NormalImage = (System.Drawing.Image)resources.GetObject("textBox1.NormalImage");
textBox1.Padding = new Padding(4, 4, 3, 3);
textBox1.Size = new System.Drawing.Size(128, 32);
textBox1.TabIndex = 3;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// pickerBox3
//
pickerBox3.AcceptButton = null;
pickerBox3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox3.BackColor = System.Drawing.Color.Transparent;
pickerBox3.EnableReactiveVisual = true;
pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F);
pickerBox3.Location = new System.Drawing.Point(285, 127);
pickerBox3.Margin = new Padding(10, 10, 10, 0);
pickerBox3.Name = "pickerBox3";
pickerBox3.Padding = new Padding(4, 4, 3, 3);
pickerBox3.SelectedIndex = 1;
pickerBox3.Size = new System.Drawing.Size(84, 35);
pickerBox3.TabIndex = 2;
pickerBox3.TabStop = false;
pickerBox3.Value = true;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = System.Drawing.Color.Transparent;
label1.ForeColor = System.Drawing.SystemColors.ControlText;
label1.Location = new System.Drawing.Point(10, 127);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 9, 0, 10);
label1.Size = new System.Drawing.Size(169, 34);
label1.TabIndex = 196;
label1.Text = "Close Current Process On Next";
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tHorizontalSeparator3
//
tHorizontalSeparator3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
tHorizontalSeparator3.Location = new System.Drawing.Point(10, 165);
tHorizontalSeparator3.Margin = new Padding(0, 10, 0, 0);
tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
tHorizontalSeparator3.Name = "tHorizontalSeparator3";
tHorizontalSeparator3.Size = new System.Drawing.Size(364, 22);
tHorizontalSeparator3.TabIndex = 197;
tHorizontalSeparator3.TabStop = false;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = System.Drawing.Color.Transparent;
label2.ForeColor = System.Drawing.SystemColors.ControlText;
label2.Location = new System.Drawing.Point(10, 197);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 9, 0, 10);
label2.Size = new System.Drawing.Size(123, 34);
label2.TabIndex = 198;
label2.Text = "Next File Shortcut Key";
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// OptionsForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new System.Drawing.Size(384, 521);
Controls.Add(label2);
Controls.Add(tHorizontalSeparator3);
Controls.Add(label1);
Controls.Add(pickerBox3);
Controls.Add(textBox1);
Controls.Add(pickerBox2);
Controls.Add(tHorizontalSeparator2);
Controls.Add(tHorizontalSeparator1);
Controls.Add(label8);
Controls.Add(pickerBox1);
Controls.Add(label6);
Controls.Add(button1);
MinimumSize = new System.Drawing.Size(400, 560);
Name = "OptionsForm";
ShowIcon = false;
ShowInTaskbar = false;
Text = "Options";
ResumeLayout(false);
PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.DialogResult = System.Windows.Forms.DialogResult.None;
pickerBox1.Value = this.Session.SearchTopDirectoryOnly;
pickerBox2.Value = this.Session.RetryOnError;
//pickerBox2.Clear.Clear(0, 20, this.Session.RetryOnError);
pickerBox3.Value = this.Session.ClosePrevOnNext;
if (this.Session.NextHotKey != null) textBox1.UpdateKeyCode(this.Session.NextHotKey.IsCtrl, this.Session.NextHotKey.IsAlt, this.Session.NextHotKey.IsShift, this.Session.NextHotKey.KeyCode);
}
public AppSession Session { get; protected set; }
private void button1_MouseClick(object sender, MouseEventArgs e)
{
if (this.Session == null) this.Session = new AppSession();
this.Session.SearchTopDirectoryOnly = pickerBox1.Value;
this.Session.RetryOnError = pickerBox2.Value;
this.Session.ClosePrevOnNext = pickerBox3.Value;
this.Session.NextHotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl;
this.Session.NextHotKey.IsAlt = textBox1.KeyCodeResults.IsAlt;
this.Session.NextHotKey.IsShift = textBox1.KeyCodeResults.IsShift;
this.Session.NextHotKey.Key = textBox1.KeyCodeResults.KeyCode;
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}

View File

@ -117,4 +117,25 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBox1.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wQAADsEBuJFr7QAAAN5JREFUOE/tUzsKwkAUXLCyFMHjeIvdB4Gk8ALamU4rsbLaTWz0AOYGOYMewTqe
QLEQnZc8WRMSsBYHhrzPzJBin2pC60PPGLs3xl3Bp5DrHe9E1g2tHUH8QMjKmGReketyZkRWh9abfhTZ
YRimI4jWRPYSBMngkzzjHWtYyx6xK4X0Anz/7rcsxM4BdoxBTuTOqCdEaUyU6DrTuNqxxuXsEXsFDLfg
UdpOsIa10nr8A34p4CRtJ1jTGoC3PsPiBi78ETXplqzBwU3F5sHHgWWGJ3rHt+3tg+Uu84ek1AsYYd8q
EsfwCwAAAABJRU5ErkJggg==
</value>
</data>
<data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wQAADsEBuJFr7QAAANFJREFUOE/tkzEKAjEURANWliJ4HG+h9l5AO7fTSjyCxWpCIBB2b+AZ9AjW6wlc
LGSdWb9Elw1YiwOP/Pw/E1Ikqqksyzpa670x5goqgfWOM7HFhfAE5jvWNdYFkZq9sdg+laZp13vfBwOY
NjBfnHO9d9jjjB56mZG4UhgW4HXdbykkXl97iMYBnFFPrbUJGDVIOKOHXmYk/hSaW3CUbVT00CvboP8B
v3TASbZR0RM7YA5KsAT1J2phBUq8wpnEgvg5MMwxvGFte/uVzPLwkZR6AInAKK6aICfTAAAAAElFTkSu
QmCC
</value>
</data>
</root> </root>

View File

@ -12,10 +12,9 @@ namespace RandomFileRunner
[STAThread] [STAThread]
static void Main() static void Main()
{ {
Application.SetHighDpiMode(HighDpiMode.PerMonitorV2); Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm()); Application.Run(new MainForm());
} }
} }

View File

@ -1,46 +0,0 @@
# Random File Runner
> Run a file at random from a list of discovered files.
![Icon](icon/icon_64.png)
---
## Features
- Search for files using a wildcard pattern
- Support patterns with multiple wilcards
- Run a random file from the list
- Support global hotkey for running next file
## Screenshots
[![screenshot](wiki/screenshot-1-h240.png)](wiki/screenshot-1.png)
---
## Background
This tool is an odd one, it might just be one of those tools that are only useful to me.
I wanted to search (a set of given) directories for files that match a wildcard pattern.
Then I wanted to run a file (from that list) at random.
For example: you wanted to watch a random episode of your favourite show.
---
## Releases & Builds
See [Releases](/HiImRay_Public/random-file-runner/releases)
## Acknowledgements
This software uses a number of dependencies and assets from third-parties.
These developers and artists deserve due credit for their work and for their commitment to sharing their work freely.
Each product is released under their own particular license, for more information please visit their websites.
- [Feather - Simply Beautiful Open Source Icons](https://feathericons.com/)
- [Lucide](https://lucide.dev/icons/)
## License
This project is licensed under the least restrictive terms of its dependencies, viz. MIT License.

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows8.0</TargetFramework> <TargetFramework>net8.0-windows8.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<AssemblyName>randomfilerunner</AssemblyName> <AssemblyName>randomfilerunner</AssemblyName>
<Authors>Ray Lam</Authors> <Authors>Ray Lam</Authors>
@ -11,7 +11,7 @@
<Copyright>Ray Lam</Copyright> <Copyright>Ray Lam</Copyright>
<ApplicationIcon>favicon.ico</ApplicationIcon> <ApplicationIcon>favicon.ico</ApplicationIcon>
<NoWin32Manifest>true</NoWin32Manifest> <NoWin32Manifest>true</NoWin32Manifest>
<Version>1.2.0.057</Version> <Version>1.1.0.074</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -24,8 +24,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="Resources\**" />
<Compile Remove="RyzStudio\**" /> <Compile Remove="RyzStudio\**" />
<EmbeddedResource Remove="Resources\**" />
<EmbeddedResource Remove="RyzStudio\**" /> <EmbeddedResource Remove="RyzStudio\**" />
<None Remove="Resources\**" />
<None Remove="RyzStudio\**" /> <None Remove="RyzStudio\**" />
</ItemGroup> </ItemGroup>
@ -36,13 +39,20 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="favicon.ico" /> <None Include="Resources\trash-2.png" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="RyzStudio" Version="10.1.1.261" /> <None Include="Resources\trash.png" />
<PackageReference Include="RyzStudio.Windows.Forms" Version="10.3.0.97" /> </ItemGroup>
<PackageReference Include="RyzStudio.Windows.Forms.Themed" Version="10.3.0.72" />
<ItemGroup>
<None Include="Resources\loading-block.gif" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="RyzStudio" Version="8.1.0.720" />
<PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.0.719" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -51,6 +61,14 @@
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>AppResource.resx</DependentUpon> <DependentUpon>AppResource.resx</DependentUpon>
</Compile> </Compile>
<Compile Update="MemoBoxForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="UIResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>UIResource.resx</DependentUpon>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -58,6 +76,10 @@
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AppResource.Designer.cs</LastGenOutput> <LastGenOutput>AppResource.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Update="UIResource.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>UIResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,3 +0,0 @@
<Solution>
<Project Path="source/RandomFileRunner.csproj" />
</Solution>

Binary file not shown.

Binary file not shown.

BIN
Resources/loading-block.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
Resources/trash-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

BIN
Resources/trash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

View File

@ -19,27 +19,27 @@ namespace RandomFileRunner {
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class AppResource { public class UIResource {
private static global::System.Resources.ResourceManager resourceMan; private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture; private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal AppResource() { internal UIResource() {
} }
/// <summary> /// <summary>
/// Returns the cached ResourceManager instance used by this class. /// Returns the cached ResourceManager instance used by this class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager { public static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RandomFileRunner.AppResource", typeof(AppResource).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RandomFileRunner.UIResource", typeof(UIResource).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
@ -51,7 +51,7 @@ namespace RandomFileRunner {
/// resource lookups using this strongly typed resource class. /// resource lookups using this strongly typed resource class.
/// </summary> /// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture { public static global::System.Globalization.CultureInfo Culture {
get { get {
return resourceCulture; return resourceCulture;
} }
@ -60,48 +60,12 @@ namespace RandomFileRunner {
} }
} }
/// <summary>
/// Looks up a localized string similar to .
/// </summary>
internal static string AppAuthorURL {
get {
return ResourceManager.GetString("AppAuthorURL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk.
/// </summary>
internal static string AppCompanyURL {
get {
return ResourceManager.GetString("AppCompanyURL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-random-file-runner.
/// </summary>
internal static string AppHelpURL {
get {
return ResourceManager.GetString("AppHelpURL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-random-file-runner.
/// </summary>
internal static string AppProductURL {
get {
return ResourceManager.GetString("AppProductURL", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
internal static System.Drawing.Bitmap folder_minus { public static System.Drawing.Bitmap loading_block {
get { get {
object obj = ResourceManager.GetObject("folder_minus", resourceCulture); object obj = ResourceManager.GetObject("loading_block", resourceCulture);
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -109,9 +73,9 @@ namespace RandomFileRunner {
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
internal static System.Drawing.Bitmap help_circle { public static System.Drawing.Bitmap trash {
get { get {
object obj = ResourceManager.GetObject("help_circle", resourceCulture); object obj = ResourceManager.GetObject("trash", resourceCulture);
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -119,29 +83,9 @@ namespace RandomFileRunner {
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
internal static System.Drawing.Bitmap icon_64 { public static System.Drawing.Bitmap trash_2 {
get { get {
object obj = ResourceManager.GetObject("icon_64", resourceCulture); object obj = ResourceManager.GetObject("trash_2", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap save {
get {
object obj = ResourceManager.GetObject("save", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap settings {
get {
object obj = ResourceManager.GetObject("settings", resourceCulture);
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }

130
UIResource.resx Normal file
View File

@ -0,0 +1,130 @@
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="loading_block" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\loading-block.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="trash_2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\trash-2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@ -1,11 +1,5 @@
rmdir /s /q "bin\" rmdir /s /q "bin\Release\64\"
rmdir /s /q "source\bin\" dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\64\"
rmdir /s /q "source\obj\"
dotnet restore RandomFileRunner.slnx REM rmdir /s /q "bin\Release\86\"
dotnet publish RandomFileRunner.slnx -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="..\bin\" REM dotnet publish skye.sln -r win-x86 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\86\"
rmdir /s /q "source\bin\"
rmdir /s /q "source\obj\"
REM PAUSE

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="lucide lucide-settings-icon lucide-settings"
version="1.1"
id="svg6"
sodipodi:docname="icon.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
inkscape:export-filename="L:\gitea-hiimray\random-file-runner\icon\icon_24.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="6.1282588"
inkscape:cx="39.244426"
inkscape:cy="100.43636"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<g
id="g4122"
transform="matrix(5.3364034,0,0,5.3364034,-3.6586835e-6,-1.6104161e-5)"
inkscape:export-filename="L:\gitea-hiimray\random-file-runner\icon\icon_128.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
cx="11.942307"
cy="11.942308"
r="6.590909"
id="circle2"
style="fill:#ffffff;fill-opacity:1;stroke:#1f9fde;stroke-width:1.31818;stroke-opacity:1" />
<path
d="m 12.000001,0.7058837 c -0.77341,0 -1.52898,0.08109 -2.2588201,0.229412 v 1.747058 c -0.98114,0.236858 -1.89736,0.616834 -2.73529,1.129412 l -1.2353,-1.235294 c -0.63322,0.41961 -1.21193,0.911932 -1.74706,1.447059 -0.53513,0.535123 -1.02745,1.113842 -1.44706,1.747058 l 1.2353,1.235294 c -0.51259,0.837936 -0.89256,1.75416 -1.12941,2.7352936 H 0.93529083 c -0.14832,0.7298387 -0.22941,1.4854097 -0.22941,2.2588227 0,0.773412 0.0811,1.528983 0.22941,2.258823 H 2.6823609 c 0.23685,0.981134 0.61682,1.897354 1.12941,2.735293 l -1.2353,1.235294 c 0.41961,0.633216 0.91193,1.211934 1.44706,1.747059 0.53513,0.535127 1.11384,1.027452 1.74706,1.447061 l 1.2353,-1.235297 c 0.83793,0.512577 1.75415,0.892555 2.73529,1.129414 v 1.747059 c 0.7298401,0.148319 1.4854001,0.229411 2.2588201,0.229411 0.77341,0 1.52898,-0.08109 2.25882,-0.229411 v -1.747059 c 0.98113,-0.236859 1.89736,-0.616837 2.7353,-1.129414 l 1.23529,1.235297 c 0.63322,-0.419614 1.21193,-0.911934 1.74706,-1.447061 0.535128,-0.535125 1.027451,-1.113843 1.44706,-1.747059 l -1.23529,-1.235294 c 0.512571,-0.837939 0.89254,-1.754159 1.129408,-2.735293 h 1.747058 c 0.14832,-0.72984 0.229412,-1.485411 0.229412,-2.258823 0,-0.773413 -0.08109,-1.528984 -0.229412,-2.2588227 H 21.317649 C 21.080781,8.7600427 20.700812,7.8438187 20.188241,7.0058827 l 1.23529,-1.235294 c -0.419609,-0.633216 -0.911932,-1.211935 -1.44706,-1.747058 -0.53513,-0.535127 -1.11384,-1.027449 -1.74706,-1.447059 l -1.23529,1.235294 c -0.83794,-0.512578 -1.75417,-0.892554 -2.7353,-1.129412 v -1.747058 c -0.72984,-0.148323 -1.48541,-0.229412 -2.25882,-0.229412 z m 0,5.647058 c 3.11717,0 5.64706,2.5298806 5.64706,5.6470573 0,3.117176 -2.52989,5.647057 -5.64706,5.647057 -3.1171801,0 -5.6470601,-2.529881 -5.6470601,-5.647057 0,-3.1171767 2.52988,-5.6470573 5.6470601,-5.6470573 z"
id="path58241"
stroke-dashoffset="162"
stroke-miterlimit="4"
stroke-linejoin="round"
stroke-linecap="round"
stroke-width="1.41176"
stroke="#bf4d3c"
fill="#ffffff"
style="fill:#1f9fde;fill-opacity:1;stroke:#282828;stroke-opacity:1" />
<path
d="m 14.7,9.6 v 4.8"
id="path2"
style="stroke:#000000;stroke-width:0.6;stroke-opacity:1" />
<path
d="M 10.2087,9.6855 A 0.6,0.6 0 0 0 9.3,10.2 v 3.6 a 0.6,0.6 0 0 0 0.9087,0.5145 l 2.9991,-1.7994 a 0.6,0.6 0 0 0 9e-4,-1.0296 z"
id="path4"
style="fill:#00abff;fill-opacity:1;stroke:#000000;stroke-width:0.6;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-icon lucide-circle"><circle cx="12" cy="12" r="10"/></svg>

Before

Width:  |  Height:  |  Size: 267 B

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 64 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-skip-forward-icon lucide-skip-forward"><path d="M21 4v16"/><path d="M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z"/></svg>

Before

Width:  |  Height:  |  Size: 364 B

25
skye.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.35004.147
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RandomFileRunner", "RandomFileRunner.csproj", "{5F301DDB-6E01-4492-BABC-E134722EF0AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5F301DDB-6E01-4492-BABC-E134722EF0AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F301DDB-6E01-4492-BABC-E134722EF0AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F301DDB-6E01-4492-BABC-E134722EF0AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5F301DDB-6E01-4492-BABC-E134722EF0AC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {07C35049-4E29-477E-84DD-ED9E52F0F257}
EndGlobalSection
EndGlobal

8
source/.gitignore vendored
View File

@ -1,8 +0,0 @@
/.vs
/bin
/obj
/*.user
/*/.vs
/*/bin
/*/obj
/*/*.user

View File

@ -1,433 +0,0 @@
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>127, 15</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>14, 15</value>
</metadata>
<metadata name="openFileDialog2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>224, 15</value>
</metadata>
<metadata name="saveFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>363, 15</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>92</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAlJSUpKCgojCkpKbYoKCjYKCgo7CgoKPkoKCj5KCgo7CgoKNgpKSm2KCgojCUlJSkAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAoKCjVKCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygo
KNUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCjtKCgo/ygoKP8sKyj/OzQn/0M6J/9DOif/OzQn/ywr
KP8oKCj/KCgo/ygoKO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAMzMzBSgoKDogICAIAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCjtKCgo/zs0J//bnR//3p8f/96f
H//enx//3p8f/9udH/87NCf/KCgo/ygoKO0AAAAAAAAAAAAAAAAAAAAAAAAAACAgIAgoKCg6MzMzBQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAkJCQjKCgozCgoKP8oKCjNKCgoEwAAAAAAAAAAKSkpJSgoKHgoKCj5KCgo/zw1
J//enx//3p8f/96fH//enx//3p8f/96fH/88NSf/KCgo/ygoKPkoKCh4KSkpJQAAAAAAAAAAKCgoEygo
KM0oKCj/KCgozCQkJCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUsoKCjxKCgo/ygoKP8oKCj/JycnzykpKUQnJye1KCgo/ygo
KP8oKCj/KCgo/0M6J//enx//3p8f/96fH//enx//3p8f/96fH/9DOif/KCgo/ygoKP8oKCj/KCgo/ygo
KLQpKSlEJycnzygoKP8oKCj/KCgo/ygoKPApKSlLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoXygoKPsoKCj/KCgo/ygoKP8oKCj/KCgo/ygo
KP8oKCj/KCgo/ygoKP8oKCj/Rjsm/6h8Iv/enx//3p8f/96fH//enx//3p8f/96fH/+ofCL/Rjsm/ygo
KP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj7KSkpXgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKChfKCgo/igoKP8oKCj/XEol/7CB
If82MSf/KCgo/ygoKP8oKCj/OjQn/4VlJP/AiyD/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/8CMIf+EZCT/OjQn/ygoKP8oKCj/KCgo/zYxJ/+vgCH/XEol/ygoKP8oKCj/KCgo/ikp
KV4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUsoKCj7KCgo/ygo
KP9sVCX/3J4g/96fH/+8iSD/PDUn/zo0J/+NaiP/15of/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//15of/41qI/86NCf/PDUn/7yJIP/enx//3J4g/2xU
Jf8oKCj/KCgo/ygoKPspKSlLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkIygo
KPAoKCj/KCgo/2xUJf/dnh//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/92eH/9sVCX/KCgo/ygoKP8oKCjwJCQkIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABAQEAEKCgozCgoKP8oKCj/XEol/9yeIP/enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//cniD/XEol/ygoKP8oKCj/KCgozEBAQAQAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAqKio3KCgo/ygoKP8oKCj/sIEh/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/8ONIP+QbCP/eFwk/2hSJf9oUiX/eV0k/5BsI//DjSD/3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//sIEh/ygoKP8oKCj/KCgo/yoq
KjcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAIKCgozigoKP8oKCj/NjEn/7yJIP/enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/9yeIP+UbyL/RTsn/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygo
KP8oKCj/Rjwn/5VvI//cniD/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH/+8iSD/NjEn/ygo
KP8oKCj/KCgoziAgIAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoEycnJ88oKCj/KCgo/z42
J//dnh//3p8f/96fH//enx//3p8f/96fH//enx//tIMh/0U7J/8oKCj/KCgo/ygoKP8oKCj/KCgo/ygo
KP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP9GPCf/tYQh/96fH//enx//3p8f/96fH//enx//3p8f/92e
H/8+Nif/KCgo/ygoKP8nJyfPKCgoEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkp
KUQoKCj/KCgo/zkzJ//dnh//3p8f/96fH//enx//3p8f/96fH/+YcSL/LCso/ygoKP8oKCj/KCgo/1VV
Vf+YmJj/xMTE/9vb2//b29v/xMTE/5eXl/9UVFT/KCgo/ygoKP8oKCj/LSso/5lyIv/enx//3p8f/96f
H//enx//3p8f/92eH/85Myf/KCgo/ygoKP8pKSlEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACcnJ7UoKCj/KCgo/41qI//enx//3p8f/96fH//enx//3p8f/5hxIv8oKCj/KCgo/ygo
KP9TU1P/ycnJ////////////////////////////////////////////x8fH/1FRUf8oKCj/KCgo/ygo
KP+ZciL/3p8f/96fH//enx//3p8f/96fH/+NaiP/KCgo/ygoKP8nJye1AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAKCgoJigoKP8oKCj/OjQn/9eaH//enx//3p8f/96fH//enx//tIMh/ywr
KP8oKCj/KCgo/3t7e//6+vr///////////////////////////////////////////////////////n5
+f95eXn/KCgo/ygoKP8tKyj/tYQh/96fH//enx//3p8f/96fH//XmyD/OTMn/ygoKP8oKCj/KSkpJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoeCgoKP8oKCj/hWUk/96fH//enx//3p8f/96f
H//cniD/RDon/ygoKP8oKCj/e3t7////////////////////////////////////////////////////
////////////////////////eXl5/ygoKP8oKCj/Rjwn/9yeIP/enx//3p8f/96fH//enx//hGQk/ygo
KP8oKCj/KCgoeAAAAAAAAAAAAAAAAAAAAAAlJSUpKSkp1igoKO4oKCjuKCgo+SgoKP8oKCj/wIsg/96f
H//enx//3p8f/96fH/+TbiL/KCgo/ygoKP9TU1P/+vr6///////39/f/sLCw/87Ozv//////////////
////////////////////////+vr6/7W1tf//////+fn5/1BQUP8oKCj/KCgo/5VvI//enx//3p8f/96f
H//enx//wIwh/ygoKP8oKCj/KCgo+SgoKO4oKCjuKSkp1iUlJSkoKCiOKCgo/ygoKP8oKCj/KCgo/ygo
KP9GPCb/3p8f/96fH//enx//3p8f/96fH/9EOif/KCgo/ygoKP/Kysr///////////9VU07/FhEH/wYF
A/9RT0z/4ODg////////////////////////////zc3N/wEBAf///////////8fHx/8oKCj/KCgo/0Y8
J//enx//3p8f/96fH//enx//3p8f/0Y7Jv8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKI4nJye1KCgo/ygo
KP8/Nyf/QTgn/0Y8J/+pfCL/3p8f/96fH//enx//3p8f/8GMIP8oKCj/KCgo/1ZWVv//////////////
//8GBQT/xYQA/9mSAP9HMgb/CgkG/4SEg//4+Pj/////////////////y8vL/wAAAP//////////////
//9UVFT/KCgo/ygoKP/DjSD/3p8f/96fH//enx//3p8f/6l8Iv9GPCf/QTgn/z42J/8oKCj/KCgo/ycn
J7UoKCjaKCgo/y0rKP/bnR//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/45rI/8oKCj/KCgo/5mZ
mf////////////////8AAAD/y4gA//+rAP//qwD/sncA/yAYB/8kIRz/tbW1////////////y8vL/wAA
AP////////////////+Xl5f/KCgo/ygoKP+QbCP/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/9ud
H/8sKyj/KCgo/ygoKNkoKCjsKCgo/zs0J//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/3ld
JP8oKCj/KCgo/8bGxv////////////////8AAAD/y4gA//+rAP//qwD//6sA//WkAP96UgH/BwYD/1ZU
T//39/f/y8vL/wAAAP/////////////////Dw8P/KCgo/ygoKP97XiT/3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH/86NCf/KCgo/ygoKOooKCj5KCgo/0Q6J//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/2dRJf8oKCj/KCgo/9vb2/////////////////8AAAD/y4gA//+rAP//qwD//6sA//+r
AP//qwD/2ZIA/ygdCP+IiIj/y8vL/wAAAP/////////////////a2tr/KCgo/ygoKP9oUiX/3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH/9EOif/KCgo/ygoKPgoKCj5KCgo/0Q6J//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/2ZQJf8oKCj/KCgo/9zc3P////////////////8AAAD/y4gA//+r
AP//qwD//6sA//+rAP//qwD/2ZIA/ygdCP+IiIj/y8vL/wAAAP/////////////////b29v/KCgo/ygo
KP9nUSX/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH/9EOif/KCgo/ygoKPgoKCjsKCgo/zs0
J//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/3hcJP8oKCj/KCgo/8fHx///////////////
//8AAAD/y4gA//+rAP//qwD//6sA//WkAP96UgH/BwYD/1ZUT//39/f/y8vL/wAAAP//////////////
///ExMT/KCgo/ygoKP96XiT/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH/86NCf/KCgo/ygo
KOooKCjaKCgo/y0rKP/bnR//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/45rI/8oKCj/KCgo/5qa
mv////////////////8AAAD/y4gA//+rAP//qwD/sncA/yAYB/8kIRz/tbW1////////////y8vL/wAA
AP////////////////+Xl5f/KCgo/ygoKP+QbCP/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/9ud
H/8sKyj/KCgo/ygoKNknJye1KCgo/ygoKP8/Nyf/QTgn/0Y8J/+pfCL/3p8f/96fH//enx//3p8f/8CL
IP8oKCj/KCgo/1ZWVv////////////////8GBQT/xYQA/9mSAP9HMgb/CgkG/4WFhP/4+Pj/////////
////////y8vL/wAAAP////////////////9VVVX/KCgo/ygoKP/CjSD/3p8f/96fH//enx//3p8f/6l8
Iv9GPCf/QTgn/z42J/8oKCj/KCgo/ycnJ7UoKCiOKCgo/ygoKP8oKCj/KCgo/ygoKP9GPCb/3p8f/96f
H//enx//3p8f/96fH/9DOif/KCgo/ygoKP/Ly8v///////////9UUk3/GBIH/wYFA/9SUE3/4ODg////
////////////////////////zc3N/wEBAf///////////8nJyf8oKCj/KCgo/0U7J//enx//3p8f/96f
H//enx//3p8f/0Y8Jv8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKI4lJSUpKSkp1igoKO4oKCjuKCgo+Sgo
KP8oKCj/wIsg/96fH//enx//3p8f/96fH/+TbiL/KCgo/ygoKP9VVVX/+/v7///////39/f/rq6u/83N
zf//////////////////////////////////////+vr6/7W1tf//////+vr6/1JSUv8oKCj/KCgo/5Rv
Iv/enx//3p8f/96fH//enx//wIsg/ygoKP8oKCj/KCgo+SgoKO4oKCjuKSkp1iUlJSkAAAAAAAAAAAAA
AAAAAAAAKCgoeSgoKP8oKCj/hWUj/96fH//enx//3p8f/96fH//bnR//Qzon/ygoKP8oKCj/fX19////
////////////////////////////////////////////////////////////////////////e3t7/ygo
KP8oKCj/RDon/9yeIP/enx//3p8f/96fH//enx//hWUk/ygoKP8oKCj/KCgoeAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAKCgoJigoKP8oKCj/OzQn/9eaH//enx//3p8f/96fH//enx//s4Mi/ywr
KP8oKCj/KCgo/319ff/6+vr///////////////////////////////////////////////////////r6
+v97e3v/KCgo/ygoKP8sKyj/tIMh/96fH//enx//3p8f/96fH//Xmh//OjQn/ygoKP8oKCj/KSkpJQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKbYoKCj/KCgo/45rI//enx//3p8f/96f
H//enx//3p8f/5dxI/8oKCj/KCgo/ygoKP9UVFT/y8vL////////////////////////////////////
////////ycnJ/1NTU/8oKCj/KCgo/ygoKP+YcSL/3p8f/96fH//enx//3p8f/96fH/+NaiP/KCgo/ygo
KP8nJye1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKUQoKCj/KCgo/zkz
J//dnh//3p8f/96fH//enx//3p8f/96fH/+XcSP/LCso/ygoKP8oKCj/KCgo/1ZWVv+ampr/xsbG/9vb
2//b29v/xsbG/5mZmf9WVlb/KCgo/ygoKP8oKCj/LCso/5hxIv/enx//3p8f/96fH//enx//3p8f/92e
H/85Myf/KCgo/ygoKP8pKSlEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoEycn
J88oKCj/KCgo/z42J//dnh//3p8f/96fH//enx//3p8f/96fH//enx//s4Mi/0I5Jv8oKCj/KCgo/ygo
KP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP9EOif/tIMh/96fH//enx//3p8f/96f
H//enx//3p8f/92eH/8+Nif/KCgo/ygoKP8nJyfPKCgoEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAgICAIKCgozigoKP8oKCj/NjEn/7yJIP/enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/9ud
H/+TbiL/Qzon/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/RDon/5NuIv/cniD/3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH/+8iSD/NjEn/ygoKP8oKCj/KCgoziAgIAgAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAqKio3KCgo/ygoKP8oKCj/sIEh/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/8GMIP+PayP/eFwk/2hSJf9oUiX/eFwk/49rI//BjCD/3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//sIEh/ygoKP8oKCj/KCgo/yoq
KjcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEKCgozCgoKP8oKCj/XUsl/9yeIP/enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//cniD/XEol/ygo
KP8oKCj/KCgozEBAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkIygoKPEoKCj/KCgo/2xU
Jf/dnh//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/92e
H/9sVCX/KCgo/ygoKP8oKCjwJCQkIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgo
KEwoKCj7KCgo/ygoKP9sVCX/3J4g/96fH/+8iSD/PDUn/zo0J/+OayP/15of/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//15of/41qI/86NCf/PDUn/7yJ
IP/enx//3J4g/2xUJf8oKCj/KCgo/ygoKPspKSlLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAoKChfKCgo/igoKP8oKCj/XUsl/7CBIf82MSf/KCgo/ygoKP8oKCj/OzQn/4Vl
I//AiyD/3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/8CLIP+FZST/OjQn/ygo
KP8oKCj/KCgo/zYxJ/+wgSH/XEol/ygoKP8oKCj/KCgo/igoKF8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoXygoKPsoKCj/KCgo/ygoKP8oKCj/KCgo/ygo
KP8oKCj/KCgo/ygoKP8oKCj/Rjsm/6h8Iv/enx//3p8f/96fH//enx//3p8f/96fH/+ofCL/Rjsm/ygo
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCjxKCgo/y4sKP84Myj/ODMo/y4sKP8oKCj/KCgo8QAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACAgIAgpKSlqJycnJwAAAAAAAAAAAAAAAygoKPQ0MCf/3Z4f/96fH//enx//3Z4f/zQw
J/8oKCj0AAAAAwAAAAAAAAAAJycnJykpKWogICAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAmJiYiJycnzygoKP8pKCjrJycnQigoKIwoKCjpKCgo/zgyJ//enx//3p8f/96f
H//enx//ODIn/ygoKP8oKCjpKCgojCcnJ0IpKCjrKCgo/ycnJ88nJychAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAKCgoLSkoKOcoKCj/Pzcn/ygoKP8oKCj/KCgo/ysqKP9bSSb/qXwi/96f
H//enx//3p8f/96fH/+pfCL/Wkkm/ysqKP8oKCj/KCgo/ygoKP8+Nif/KCgo/ykoKOcoKCgtAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJyEpKCjnKCgo/3JYJf/bnR//el4k/zAtJ/96XiT/zpQf/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//zpQf/3peJP8wLSf/el4k/9yeIP9xWCT/KCgo/ygo
KOcnJychAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAIKCgozigoKP9xWCT/3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H/91WiT/KCgo/ygoKNIcHBwJAAAAAAAAAAAAAAAAAAAAACgoKGwoKCj/PjYn/9udH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//0pcg/6Z6Iv+QbCP/kGwj/6Z6Iv/SlyD/3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/9yeIP8+Nif/KCgo/ygoKGwAAAAAAAAAAAAAAAAAAAAAKCgoJikoKOsoKCj/eFwk/96f
H//enx//3p8f/96fH//enx//wIwh/2FNJf8qKij/KCgo/ygoKP8oKCj/KCgo/yoqKP9iTiX/wIsg/96f
H//enx//3p8f/96fH//enx//eFwk/ygoKP8pKCjrKCgoJgAAAAAAAAAAAAAAAAAAAAAAAAAAKioqQygo
KP8yLyj/3Z4f/96fH//enx//3p8f/5dxI/8sKyj/KCgo/zw8PP97e3v/nJyc/5ycnP97e3v/Ozs7/ygo
KP8sKyj/mHEj/96fH//enx//3p8f/92eH/8yLyj/KCgo/ycnJ0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAoKCiOKCgo/3teJP/enx//3p8f/96fH/+XcSP/KCgo/y0tLP+dnZ3/+vr6////////////////////
///5+fn/nJyc/y0tLP8oKCj/mHEj/96fH//enx//3p8f/3peJP8oKCj/KCgojAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAygoKOksKij/z5Uf/96fH//enx//wIsh/ywrKP8tLSz/yMjI////////////////////
////////////////////////x8fH/y0tLP8sKyj/wIsg/96fH//enx//zpQf/ysqKP8oKCjoAAAAAwAA
AAAAAAAAKCgodCgoKO4oKCjwKCgo/1tJJv/enx//3p8f/96fH/9hTSX/KCgo/56env//////s7Ku/397
cv/p6en//////////////////////5mZmf//////nJyc/ygoKP9iTiX/3p8f/96fH//enx//W0km/ygo
KP8oKCjwKCgo7igoKHQoKCjIKCgo/zMvJ/83Mij/qXwh/96fH//enx//0Zcg/ysqKP88PDz/+vr6////
//8tJRX/pnED/zAnFf+TkIv//Pz8////////////NDQ0///////5+fn/PDw8/ysqKP/SlyD/3p8f/96f
H/+pfCH/NzIo/zMvJ/8oKCj/KCgoxygoKOouLCj/3J4f/96fH//enx//3p8f/96fH/+leiL/KCgo/319
ff///////////zQqFf//qwD/9qUA/39ZDP84MSP/xMTD//////80NDT///////////97e3v/KCgo/6Z6
Iv/enx//3p8f/96fH//enx//3J4f/y0rKP8oKCjpKCgo+TgyJ//enx//3p8f/96fH//enx//3p8f/5Ft
I/8oKCj/nJyc////////////NCoV//+rAP//qwD//6sA/9qSAP8+MBL/yMjI/zQ0NP///////////5ub
m/8oKCj/k24j/96fH//enx//3p8f/96fH//enx//ODMo/ygoKPgoKCj5ODIn/96fH//enx//3p8f/96f
H//enx//kGwj/ygoKP+dnZ3///////////80KhX//6sA//+rAP//qwD/25MA/z4wEv/Hx8f/NDQ0////
////////nJyc/ygoKP+RbSP/3p8f/96fH//enx//3p8f/96fH/84Mif/KCgo+CgoKOouLCj/3J4f/96f
H//enx//3p8f/96fH/+keSL/KCgo/319ff///////////zQqFf//qwD/9qUA/39ZDP83MCP/xMTD////
//80NDT///////////97e3v/KCgo/6V6If/enx//3p8f/96fH//enx//3J4f/y0rKP8oKCjpKCgoyCgo
KP8zLyf/NzIo/6l8If/enx//3p8f/9CWIP8rKij/PT09//r6+v//////LSUV/6ZxA/8wJxX/k5CL//z8
/P///////////zQ0NP//////+vr6/zw8PP8qKij/0Zcg/96fH//enx//qXwh/zcyKP8zLyf/KCgo/ygo
KMcoKCh0KCgo7igoKPAoKCj/W0km/96fH//enx//3p8f/2FNJv8oKCj/oKCg//////+ysKz/f3ty/+np
6f//////////////////////mZmZ//////+enp7/KCgo/2FNJf/enx//3p8f/96fH/9bSSb/KCgo/ygo
KPAoKCjuKCgodAAAAAAAAAAAAAAAAygoKOosKij/z5Uf/96fH//enx//v4sh/ysqKP8uLi3/yMjI////
////////////////////////////////////////yMjI/y0tLP8sKyj/wIsg/96fH//enx//zpQf/ysq
KP8oKCjpAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAKCgojigoKP97XiT/3p8f/96fH//enx//lnAj/ygo
KP8uLi3/oKCg//r6+v//////////////////////+vr6/5+fn/8uLi3/KCgo/5dxI//enx//3p8f/96f
H/97XiT/KCgo/ygoKI0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKipDKCgo/zIvKP/dnh//3p8f/96f
H//enx//lnAj/ysqKP8oKCj/PT09/3x8fP+dnZ3/nZ2d/3x8fP88PDz/KCgo/ywrKP+XcSP/3p8f/96f
H//enx//3Z4f/zIvKP8oKCj/JycnQgAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoJikoKOsoKCj/eFwk/96f
H//enx//3p8f/96fH//enx//wIsh/2FNJv8rKij/KCgo/ygoKP8oKCj/KCgo/ysqKP9hTSX/wIwh/96f
H//enx//3p8f/96fH//enx//eFwk/ygoKP8pKCjrKCgoJgAAAAAAAAAAAAAAAAAAAAAoKChtKCgo/z83
J//bnR//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/9CWIP+leiL/kGwj/5BsI/+leiL/0Zcg/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//cniD/PjYn/ygoKP8oKChtAAAAAAAAAAAAAAAAAAAAACAg
IAgoKCjOKCgo/3JYJf/enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//3p8f/96fH//enx//3p8f/3dcJP8oKCj/KCgo0hwcHAkAAAAAAAAAAAAA
AAAAAAAAAAAAACYmJiIpKCjnKCgo/3JYJf/bnR//el4k/zAtJ/97XiT/z5Uf/96fH//enx//3p8f/96f
H//enx//3p8f/96fH//enx//z5Uf/3teJP8wLSf/el4k/9yeIP9xWCT/KCgo/ykoKOcmJiYiAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKC0pKCjoKCgo/z83J/8oKCj/KCgo/ygoKP8sKij/W0km/6l8
Iv/enx//3p8f/96fH//enx//qXwi/1tJJv8sKij/KCgo/ygoKP8oKCj/PjYn/ygoKP8pKCjnKCgoLQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYmJiIoKCjQKCgo/ykoKOsqKipDKCgojigo
KOooKCj/ODIn/96fH//enx//3p8f/96fH/84Mif/KCgo/ygoKOooKCiOKioqQykoKOsoKCj/KCgo0CYm
JiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIAgpKSlqJycnJwAA
AAAAAAAAAAAAAygoKPQ0MCf/3Z4f/96fH//enx//3Z4f/zQwJ/8oKCj0AAAAAwAAAAAAAAAAJycnJykp
KWogICAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAKCgo8SgoKP8uLCj/ODIn/zgyJ/8uLCj/KCgo/ygoKPEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJyd1KCgoyCgoKOooKCj5KCgo+SgoKOkoKCjIJycndQAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wD///8A///GAGP/gA
AB/wAAAP4AAAB8AAAAPAAAADwAAAA+AAAAfgAAAHwAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAwAAAA+AAAAfgAAAHwAAAA8AAAAPAAAAD4AAAB/AAAA/4AAAf/GAGP//wD///8A//KAAAABgA
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACkpKKEtLCjdKSkn9ykpJ/ctLCjdKSkooQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycnDQAAAAIAAAAAAAAAACopKPhXRyb/imgk/4po
JP9XRyb/Kiko+AAAAAAAAAAAAAAAAicnJw0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAApKSlLKioo8ykpKK4pKSk+KSgopykoKP6OayP/3p8f/96fH/+OayP/KSgo/ikoKKcqKio9KSkorioq
KPMpKSlLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkpKWopKSj9UEMm/SopJ/0oKCj/QTgn+4Nj
I//RlyD/3p8f/96fH//RlyD/g2Mj/0E4J/soKCj/Kikn/VBDJv0pKSj9KSkpagAAAAAAAAAAAAAAAAAA
AAAAAAAAKSkpSykpKP1zWST/250f/7CBIf+gdiL/3J4f/96fH//enx//3p8f/96fH//enx//3p8f/9ye
H/+gdiL/sIEh/9udH/9zWST/KSko/SkpKUsAAAAAAAAAAAAAAAAnJycNKioo9FBDJv3bnR//3p8f/96f
H//enx//3p8f/96fH//EjiD/p3si/6d7Iv/EjiD/3p8f/96fH//enx//3p8f/96fH//bnR//UEMm/Soq
KPQnJycNAAAAAAAAAAAAAAACKSkoriopJ/2vgCH/3p8f/96fH//enx//rH4h/0o+J/8oKCj/KCgo/ygo
KP8oKCj/Sj4n/61/Iv/enx//3p8f/96fH/+vgCH/Kikn/SkpKK4AAAACAAAAAAAAAAAAAAAAKCgoPygo
KP+hdyL/3p8f/96fH/+OayP/KSko/1taWP+7u7v/6Ojo/+fn5/+6urr/W1pY/yopKf+OayP/3p8f/96f
H/+gdiL/KCgo/yoqKj0AAAAAAAAAAAAAAAAAAAAAKScnqUE5J/vcnh//3p8f/6x+If8pKSj/h4eH//7+
/v///////////////////////f39/4aGhv8qKSn/rX8i/96fH//bnR//QDgn+ykoKKcAAAAAAAAAACsp
KKArKijzKSko/YNjI//enx//3p8f/0o/KP9bWlj//v7+/4R8av+JgnT/9/f3////////////oqKi//39
/f9bWlj/Sj4n/96fH//enx//gmMj/ykpKP0rKijzKykooC0rKN5VRSb/jWoj/9GXIP/enx//w40g/ygo
KP+8vLz//////2VOH//IiAT/Vkcn/7WyrP//////ZmZm//////+7u7v/KCgo/8WPIf/enx//0Zcg/41q
I/9VRSb/LSso3isqKPWJaCT/3p8f/96fH//enx//pnoi/ygoKP/o6Oj//////2ZOH///qwD//KkA/5Zq
EP9/dmT/ZmZm///////n5+f/KCgo/6h8Iv/enx//3p8f/96fH/+JZyP/Kyoo9CspJ/aKaCT/3p8f/96f
H//enx//pXoh/ygoKP/p6en//////2ZOH///qwD//KkA/5ZqEP9/dmP/ZmZm///////n5+f/KCgo/6d7
Iv/enx//3p8f/96fH/+JaCT/Kykn9i0rKN5VRSb/jWoj/9GXIP/enx//w40g/ygoKP+8vLz//////2ZP
H//IiAT/Vkcn/7WyrP//////ZmZm//////+6urr/KCgo/8SOIP/enx//0Zcg/41qI/9VRSb/LSso3isp
KKArKijzKSko/YNjI//enx//3p8f/0o/KP9cW1n//v7+/4N6af+IgXP/9/f3////////////oqKi//7+
/v9bWlj/Sj8o/96fH//enx//g2Mj/ykpKP0rKijzKykooAAAAAAAAAAAKScnqUE5J/vcnh//3p8f/6t+
If8pKSj/iYmJ//7+/v///////////////////////v7+/4eHh/8qKSn/rH4h/96fH//cnh//QTgn+yko
KKcAAAAAAAAAAAAAAAAAAAAAKCgoPygoKP+hdyL/3p8f/96fH/+MaSP/KSko/1xbWf+8vLz/6Ojo/+jo
6P+8vLz/W1pY/ykpKP+OayP/3p8f/96fH/+gdiL/KCgo/ykpKT4AAAAAAAAAAAAAAAAAAAACKSkoriop
J/2vgCH/3p8f/96fH//enx//q34h/0o/KP8oKCj/KCgo/ygoKP8oKCj/Sj8o/6x+If/enx//3p8f/96f
H/+vgCH/Kikn/SkpKK4AAAACAAAAAAAAAAAnJycNKioo9FBDJv3bnR//3p8f/96fH//enx//3p8f/96f
H//CjSD/p3si/6d7Iv/DjSD/3p8f/96fH//enx//3p8f/96fH//bnR//UEMm/SoqKPQnJycNAAAAAAAA
AAAAAAAAKSkpSykpKP1zWST/250f/7CBIf+hdyL/3J4f/96fH//enx//3p8f/96fH//enx//3p8f/9ye
H/+gdiL/sIEh/9udH/9zWST/KSko/SkpKUsAAAAAAAAAAAAAAAAAAAAAAAAAACkpKWopKSj9UEMm/Sop
J/0oKCj/Qjkn+4NjI//RlyD/3p8f/96fH//RlyD/g2Mj/0E5J/soKCj/Kikn/VBDJv0pKSj9KSkpagAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKSlLKioo8ykpKK4oKCg/KScnqCkoKP6OayP/3p8f/96f
H/+OayP/KSgo/iknJ6gpKSk+KSkorioqKPMpKSlLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAJycnDQAAAAIAAAAAAAAAACopKPhXRyb/imgk/4poJP9XRyb/Kiko+AAAAAAAAAAAAAAAAicn
Jw0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkp
KKEtLCjdKSkn9ykpJ/ctLCjdKSkooQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+B
/0H5gZ9B8AAPQeAAB0HAAANBgAABQYAAAUHAAANBwAADQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQcAA
A0HAAANBgAABQYAAAUHAAANB4AAHQfAAD0H5gZ9B/4H/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyLifSLSsn9y0rJ/cyLifSAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMFMy4nlioqJ1UrKyhfLiwo+dyeH//cnh//Liwo+Ssr
KV4qKidVMy4nljMzMwUAAAAAAAAAAAAAAAAzMzMFMy8ox2RPJfU5Myj1YU0l87GCIf/enx//3p8f/7CB
If9hTSXyOTMo9WRPJfUzLyjHMzMzBQAAAAAAAAAAMy4nlWRPJfXenx//3p8f/96fH//cniD/vYkg/72J
IP/cniD/3p8f/96fH//enx//ZE8l9TMuJ5UAAAAAAAAAACoqJ1U5Myj13p8f/96fH/+ieCL/PTgt/1dS
Rv9XUUX/Pjgs/6N4Iv/enx//3p8f/zkzKPUqKidVAAAAAAAAAAArKyhfYk4l8t6fH/+jeCL/TUlB/9/f
3////////////9/f3/9NSUD/o3gi/96fH/9hTSXyKyspXgAAAAAyLyjVLiwn+LCBIf/bnR//PTgt/9/f
3/+Lelb/q6KS//7+/v+zs7P/3t7e/z03LP/cniD/sIEh/y4sJ/gyLijTLiwn9tyeH//enx//vIkg/1hT
Sf//////mXEf/9yVBf+GcEP/lJSU//////9XUUX/vYkg/96fH//cnh//Liwn9i4sJ/bcnh//3p8f/7yJ
IP9YU0r//////5lxH//clQX/hnBD/5SUlP//////V1FG/72JIP/enx//3J4f/y4sJ/YyLyjVLiwn+LCB
If/bnR//PTgu/+Dg4P+Lelb/q6KS//7+/v+zs7P/39/f/z04Lf/cniD/sIEh/y4sJ/gyLijTAAAAACsr
KGBiTiXy3p8f/6F3Iv9OSkP/4ODg////////////39/f/01JQf+jeCL/3p8f/2FNJfMrKyhfAAAAAAAA
AAAqKidVOTMo9d6fH//enx//ongi/z04Lv9YU0r/V1NI/z04Lf+ieCL/3p8f/96fH/85Myj1KionVQAA
AAAAAAAAMy4nlWRPJfXenx//3p8f/96fH//cniD/vYkg/72JIP/cniD/3p8f/96fH//enx//ZE8l9TMu
J5UAAAAAAAAAADMzMwUzLyjHZE8l9TkzKPViTiXysYIh/96fH//enx//sYIh/2FNJfM5Myj1ZE8l9TMv
KMczMzMFAAAAAAAAAAAAAAAAMzMzBTMuJ5YqKidVKysoYC4sKPncnh//3J4f/y4sKPkrKyhfKionVTMu
J5YzMzMFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyLifSLSsn9y0rJ/cyLifSAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/D+sQcADrEGAAaxBgAGsQYABrEGAAaxBAACsQQAArEEAAKxBAACsQYAB
rEGAAaxBgAGsQYABrEHAA6xB/D+sQQ==
</value>
</data>
</root>

View File

@ -1,274 +0,0 @@
using System;
using System.Windows.Forms;
using RyzStudio.Windows.Forms;
namespace RandomFileRunner
{
public class OptionsForm : Form
{
private RyzStudio.Windows.ThemedForms.T3YnPickerBox pickerBox1;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label8;
private RyzStudio.Windows.ThemedForms.T4NumericBox pickerBox2;
private RyzStudio.Windows.FontForms.TextBox.T4KeyTextBox textBox1;
private RyzStudio.Windows.ThemedForms.T3YnPickerBox pickerBox3;
private Label label1;
private Label label2;
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
private THorizontalSeparator tHorizontalSeparator1;
private THorizontalSeparator tHorizontalSeparator2;
private AppSession _session = null;
public OptionsForm(AppSession session) : base()
{
InitializeComponent();
this.SetupDialog();
_session = session;
if (_session != null)
{
pickerBox1.Value = _session.SearchTopDirectoryOnly;
pickerBox2.Value = _session.RetryOnError;
pickerBox3.Value = _session.ClosePrevOnNext;
if (_session.NextHotKey != null)
{
textBox1.UpdateKeyCode(_session.NextHotKey.IsCtrl, _session.NextHotKey.IsAlt, _session.NextHotKey.IsShift, _session.NextHotKey.KeyCode);
}
}
}
private void InitializeComponent()
{
RyzStudio.Windows.FontForms.TextBox.T4KeyTextBox.Results results2 = new RyzStudio.Windows.FontForms.TextBox.T4KeyTextBox.Results();
pickerBox1 = new RyzStudio.Windows.ThemedForms.T3YnPickerBox();
label6 = new Label();
label8 = new Label();
pickerBox2 = new RyzStudio.Windows.ThemedForms.T4NumericBox();
textBox1 = new RyzStudio.Windows.FontForms.TextBox.T4KeyTextBox();
pickerBox3 = new RyzStudio.Windows.ThemedForms.T3YnPickerBox();
label1 = new Label();
label2 = new Label();
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
tHorizontalSeparator1 = new THorizontalSeparator();
tHorizontalSeparator2 = new THorizontalSeparator();
SuspendLayout();
//
// pickerBox1
//
pickerBox1.Align = RyzStudio.Enums.ContentAlignment.Right;
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox1.BackColor = System.Drawing.Color.Transparent;
pickerBox1.EnableMovable = false;
pickerBox1.EnableStepWidth = true;
pickerBox1.Location = new System.Drawing.Point(274, 19);
pickerBox1.Name = "pickerBox1";
pickerBox1.SelectedIndex = 1;
pickerBox1.Size = new System.Drawing.Size(100, 32);
pickerBox1.TabIndex = 0;
pickerBox1.TabStop = false;
pickerBox1.Value = true;
//
// label6
//
label6.AutoSize = true;
label6.BackColor = System.Drawing.Color.Transparent;
label6.ForeColor = System.Drawing.SystemColors.ControlText;
label6.Location = new System.Drawing.Point(10, 76);
label6.Margin = new Padding(0);
label6.Name = "label6";
label6.Padding = new Padding(0, 8, 0, 0);
label6.Size = new System.Drawing.Size(81, 23);
label6.TabIndex = 182;
label6.Text = "Retry On Error";
label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label8
//
label8.AutoSize = true;
label8.BackColor = System.Drawing.Color.Transparent;
label8.ForeColor = System.Drawing.SystemColors.ControlText;
label8.Location = new System.Drawing.Point(10, 19);
label8.Margin = new Padding(0);
label8.Name = "label8";
label8.Padding = new Padding(0, 8, 0, 0);
label8.Size = new System.Drawing.Size(143, 23);
label8.TabIndex = 186;
label8.Text = "Search Top Directory Only";
label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pickerBox2
//
pickerBox2.Align = RyzStudio.Enums.ContentAlignment.Right;
pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox2.BackColor = System.Drawing.Color.Transparent;
pickerBox2.EnableMovable = false;
pickerBox2.EnableStepWidth = true;
pickerBox2.Location = new System.Drawing.Point(274, 76);
pickerBox2.Maximum = 50;
pickerBox2.Minimum = 0;
pickerBox2.Name = "pickerBox2";
pickerBox2.Size = new System.Drawing.Size(100, 32);
pickerBox2.TabIndex = 1;
pickerBox2.TabStop = false;
pickerBox2.Value = 0;
//
// textBox1
//
textBox1.Align = RyzStudio.Enums.ContentAlignment.Right;
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
textBox1.BackColor = System.Drawing.Color.Transparent;
textBox1.EnableMovable = false;
textBox1.EnableStepWidth = true;
textBox1.Icon = "O";
textBox1.IconSize = 13F;
results2.IsAlt = false;
results2.IsCtrl = false;
results2.IsShift = false;
results2.Key = Keys.None;
textBox1.KeyCodeResults = results2;
textBox1.Location = new System.Drawing.Point(220, 175);
textBox1.Name = "textBox1";
textBox1.Size = new System.Drawing.Size(160, 32);
textBox1.TabIndex = 3;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// pickerBox3
//
pickerBox3.Align = RyzStudio.Enums.ContentAlignment.Right;
pickerBox3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox3.BackColor = System.Drawing.Color.Transparent;
pickerBox3.EnableMovable = false;
pickerBox3.EnableStepWidth = true;
pickerBox3.Location = new System.Drawing.Point(274, 118);
pickerBox3.Name = "pickerBox3";
pickerBox3.SelectedIndex = 1;
pickerBox3.Size = new System.Drawing.Size(100, 32);
pickerBox3.TabIndex = 2;
pickerBox3.TabStop = false;
pickerBox3.Value = true;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = System.Drawing.Color.Transparent;
label1.ForeColor = System.Drawing.SystemColors.ControlText;
label1.Location = new System.Drawing.Point(10, 118);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 8, 0, 0);
label1.Size = new System.Drawing.Size(169, 23);
label1.TabIndex = 196;
label1.Text = "Close Current Process On Next";
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = System.Drawing.Color.Transparent;
label2.ForeColor = System.Drawing.SystemColors.ControlText;
label2.Location = new System.Drawing.Point(10, 175);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 8, 0, 0);
label2.Size = new System.Drawing.Size(147, 23);
label2.TabIndex = 198;
label2.Text = "Run Next File Shortcut Key";
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// dialogFooter1
//
dialogFooter1.Align = RyzStudio.Enums.ContentAlignment.None;
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
dialogFooter1.Button1Result = DialogResult.OK;
dialogFooter1.Button1Text = "&Save";
dialogFooter1.Button1Visible = true;
dialogFooter1.Button2Result = DialogResult.Cancel;
dialogFooter1.Button2Text = "&Cancel";
dialogFooter1.Button2Visible = true;
dialogFooter1.Dock = DockStyle.Bottom;
dialogFooter1.EnableMovable = false;
dialogFooter1.EnableStepWidth = false;
dialogFooter1.Location = new System.Drawing.Point(0, 451);
dialogFooter1.Name = "dialogFooter1";
dialogFooter1.Size = new System.Drawing.Size(384, 70);
dialogFooter1.TabIndex = 0;
dialogFooter1.TabStop = false;
//
// tHorizontalSeparator1
//
tHorizontalSeparator1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator1.AutoPosition = true;
tHorizontalSeparator1.Location = new System.Drawing.Point(5, 56);
tHorizontalSeparator1.Name = "tHorizontalSeparator1";
tHorizontalSeparator1.Size = new System.Drawing.Size(374, 10);
//
// tHorizontalSeparator2
//
tHorizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator2.AutoPosition = true;
tHorizontalSeparator2.Location = new System.Drawing.Point(5, 155);
tHorizontalSeparator2.Name = "tHorizontalSeparator2";
tHorizontalSeparator2.Size = new System.Drawing.Size(374, 10);
//
// OptionsForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = System.Drawing.Color.White;
ClientSize = new System.Drawing.Size(384, 521);
Controls.Add(tHorizontalSeparator2);
Controls.Add(tHorizontalSeparator1);
Controls.Add(dialogFooter1);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(pickerBox3);
Controls.Add(textBox1);
Controls.Add(pickerBox2);
Controls.Add(label8);
Controls.Add(pickerBox1);
Controls.Add(label6);
MinimumSize = new System.Drawing.Size(400, 560);
Name = "OptionsForm";
ShowIcon = false;
ShowInTaskbar = false;
Text = "Options";
ResumeLayout(false);
PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
pickerBox1.Focus();
}
public AppSession Result
{
get
{
if (_session == null)
{
_session = new AppSession();
}
_session.SearchTopDirectoryOnly = pickerBox1.Value;
_session.RetryOnError = pickerBox2.Value;
_session.ClosePrevOnNext = pickerBox3.Value;
_session.NextHotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl;
_session.NextHotKey.IsAlt = textBox1.KeyCodeResults.IsAlt;
_session.NextHotKey.IsShift = textBox1.KeyCodeResults.IsShift;
_session.NextHotKey.Key = textBox1.KeyCodeResults.KeyCode;
return _session;
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,17 +0,0 @@
RMDIR /s /q "bin\"
RMDIR /s /q "obj\"
MKDIR bin
dotnet restore skye.sln
dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\"
REM "C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss"
"C:\B\Portable Files\7-Zip (Portable)\23.01\App\7-Zip64\7z.exe" a -t7z "bin\randomfilerunner.7z" ".\bin\randomfilerunner.exe" -mx9
RMDIR /s /q "bin\debug"
RMDIR /s /q "bin\release"
RMDIR /s /q "obj\"
PAUSE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB