Программа пригодится в работе с kvm и remote console, на инсталляциях серверов - да и вообще везде, где есть хоть какая-то потребность в повторяющихся вводах.
Программа имитирует нажатия на кнопки клавиатуры, переключая раскладку при необходимости, но только в своей операционной системе. Программу можно использовать и как хранилище конфиденциальных данных: введённые данные можно зашифровать в файл.
По нажатию комбинации клавиш, указанной в названии окна программы (можно выбирать разные из меню) - включается симулятор ручного ввода с клавиатуры, который будет вводить содержимое всех активных полей в порядке возрастания их номеров, в конце каждого поля имитируя нажатие клавиши "ввод" или "таб". Активировать или деактивировать поле можно, кликнув на его номер, либо по его горячей клавише.
Текст в полях и настройки привязываются к "профилям", которые можно создавать, переключать, редактировать и удалять - если при редактировании полностью удалить название.
При закрытии окна программы - программа закрывается и все несохраненные данные теряются. Чтобы не потерять их и иметь возможность хранить и загружать на различных устройствах - профили можно сохранять в файл, шифруемый паролем. На длину и простоту этого пароля ограничений нет - можно вообще не шифровать файлы, если оставить поле пароля пустым. Однако, если хочется держать свои секреты в безопасности - рекомендую сверять контрольную сумму скачанной программы с указанной здесь (рядом со ссылкой на скачивание) и шифровать файлы сохранений только надёжными паролями.
Немного о паролях
Надёжным можно считать пароль длиной от 10 символов, содержащий цифры, знаки и буквы верхнего и нижнего регистров, при этом не содержащий в себе общеизвестных слов, имён и названий, а так же какие-либо даты (типа дней рождения родственников).
Либо же, в качестве пароля можно использовать "кодовую фразу" - длинное предложение, состоящее из большого числа слов: при общей длине пароля от 50 символов, его "словарность" перестаёт играть существенную роль. Такую "passphrase" несколько дольше вводить - зато её гораздо проще запомнить. Главное правило - кодовая фраза не должна быть чьей-то известной цитатой или отрывком из популярной литературы.
Советы по использованию:
используйте колесо прокрутки мыши, когда курсор над списком профилей или горячих клавиш - для быстрого переключения;
комбинация клавиш Ctrl+[1-9] активирует или деактивирует соответствующее поле;
делайте резервные копии сохранений на надёжные носители или в облако;
режим "поверх всех окон" может пригодиться при работе в remote desktop;
медленный режим специально для тормозящих консолей;
вывод символов зависит от текущей раскладки клавиатуры - имейте в виду при работе в удалённых консолях.
Исходный код (C#)
Form1.cs
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Security.Cryptography;
namespace Filler
{
public partial class infill : Form
{
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
private System.Windows.Forms.Timer checkTimer;
private System.Windows.Forms.Timer checkTimer2;
private const uint MOD_CONTROL = 0x0002;
private const uint MOD_ALT = 0x0001;
private const int HOTKEY_ID = 1;
private bool isExecuting = false;
private bool isComboBoxOpen = false;//фикс списка профилей
private const uint KLF_SETFORPROCESS = 0x00000100;
private bool stopExecution = false;
private void SetTabOrder()
{
checkBox1.TabIndex = 0;
textBox1.TabIndex = 1;
textBox2.TabIndex = 2;
textBox3.TabIndex = 3;
textBox4.TabIndex = 4;
textBox5.TabIndex = 5;
textBox6.TabIndex = 6;
textBox7.TabIndex = 7;
textBox8.TabIndex = 8;
textBox9.TabIndex = 9;
checkBox3.TabIndex = 10;
checkBox4.TabIndex = 11;
checkBox5.TabIndex = 12;
checkBox8.TabIndex = 13;
checkBox7.TabIndex = 14;
checkBox6.TabIndex = 15;
checkBox11.TabIndex = 16;
checkBox10.TabIndex = 17;
checkBox9.TabIndex = 18;
checkBox12.TabIndex = 19;
checkBox14.TabIndex = 20;
checkBox15.TabIndex = 21;
checkBox16.TabIndex = 22;
checkBox17.TabIndex = 23;
checkBox18.TabIndex = 24;
checkBox19.TabIndex = 25;
checkBox20.TabIndex = 26;
checkBox21.TabIndex = 27;
checkBox13.TabIndex = 28;
checkBox22.TabIndex = 29;
checkBox23.TabIndex = 30;
checkBox24.TabIndex = 31;
checkBox25.TabIndex = 32;
checkBox26.TabIndex = 33;
checkBox27.TabIndex = 34;
checkBox28.TabIndex = 35;
checkBox29.TabIndex = 36;
checkBox2.TabIndex = 37;
}
//модуль шифрации
public static class CryptoHelper
{
public static string Encrypt(string plainText, string password)
{
using (Aes aes = Aes.Create())
{
var key = new Rfc2898DeriveBytes(password, new byte[16], 10000);
aes.Key = key.GetBytes(32);
aes.IV = key.GetBytes(16);
using (var encryptor = aes.CreateEncryptor(aes.Key, aes.IV))
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
using (var sw = new StreamWriter(cs))
{
sw.Write(plainText);
}
return Convert.ToBase64String(ms.ToArray());
}
}
}
public static string Decrypt(string cipherText, string password)
{
using (Aes aes = Aes.Create())
{
var key = new Rfc2898DeriveBytes(password, new byte[16], 10000);
aes.Key = key.GetBytes(32);
aes.IV = key.GetBytes(16);
using (var decryptor = aes.CreateDecryptor(aes.Key, aes.IV))
using (var ms = new MemoryStream(Convert.FromBase64String(cipherText)))
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
using (var sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
}
}
//таймеры
private void InitializeTimer()
{
checkTimer = new System.Windows.Forms.Timer();
checkTimer.Interval = 100; //ms
checkTimer.Tick += new EventHandler(CheckTimer_Tick);
checkTimer.Start();
}
private void InitializeTimer2()
{
checkTimer2 = new System.Windows.Forms.Timer();
checkTimer2.Interval = 100; //ms
checkTimer2.Tick += new EventHandler(CheckTimer2_Tick);
checkTimer2.Start();
}
private void CheckTimer_Tick(object sender, EventArgs e)//проверка отпускания кнопки
{
SendKeys.SendWait("");
UpdateModifierKeysLabel();
if (label1.Text.Contains("None"))
{
checkTimer.Stop();
ExecuteTypewriter();
}
}
private void CheckTimer2_Tick(object sender, EventArgs e)//автосейв
{
if (!isComboBoxOpen)
{
string currentProfileName = Profiles.SelectedItem?.ToString();
if (string.IsNullOrEmpty(currentProfileName)) return;
else
SaveCurrentProfileData(currentProfileName);
}
}
//словарь профилей
private Dictionary<string, string> profileDataDict = new Dictionary<string, string>();
public infill()
{
InitializeComponent();
InitializeTimer2();
SetTabOrder();
RegisterHotKey(this.Handle, HOTKEY_ID, MOD_CONTROL | MOD_ALT, GetKeyFromComboBox());
button1.Visible = false;
button2.Visible = false;
textBox2.Multiline = false;
textBox2.UseSystemPasswordChar = true;
//модуль горячих клавиш
for (int i = 0; i < 9; i++)
{
RegisterHotKey(this.Handle, HOTKEY_ID + i + 1, MOD_CONTROL, (uint)Keys.D1 + (uint)i);
}
}
private void Profiles_DropDown(object sender, EventArgs e)
{
isComboBoxOpen = true;
}
private void Profiles_DropDownClosed(object sender, EventArgs e)
{
isComboBoxOpen = false;
}
private uint GetKeyFromComboBox()
{
var selectedKeyString = Hotkeys.SelectedItem?.ToString();
return !string.IsNullOrEmpty(selectedKeyString) ? (uint)selectedKeyString.Last() : (uint)Keys.V;
}
private void Hotkeys_SelectedIndexChanged(object sender, EventArgs e)
{
UnregisterHotKey(this.Handle, HOTKEY_ID);
RegisterHotKey(this.Handle, HOTKEY_ID, MOD_CONTROL | MOD_ALT, GetKeyFromComboBox());
this.Text = $"заполнитель | Ctrl+Alt+{Hotkeys.SelectedItem?.ToString().Last()}";
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
if (isExecuting) stopExecution = true;
base.OnFormClosing(e);
UnregisterHotKey(this.Handle, HOTKEY_ID);
}
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0312)
{
int hotkeyId = m.WParam.ToInt32();
if (hotkeyId >= HOTKEY_ID + 1 && hotkeyId <= HOTKEY_ID + 9)
{
int checkBoxIndex = hotkeyId - HOTKEY_ID - 1;
var checkBoxes = new[] { checkBox3, checkBox4, checkBox5, checkBox8, checkBox7, checkBox6, checkBox11, checkBox10, checkBox9 };
checkBoxes[checkBoxIndex].Checked = !checkBoxes[checkBoxIndex].Checked;
}
else if (hotkeyId == HOTKEY_ID)
{
if (isExecuting)
{
stopExecution = true;
}
else
{
isExecuting = true;
InitializeTimer();
}
}
}
base.WndProc(ref m);
}
//главный модуль
private async void ExecuteTypewriter()
{
try
{
var tasks = new[]
{
ProcessFieldAsync(checkBox3, textBox1, checkBox13, checkBox13.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox4, textBox2, checkBox22, checkBox22.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox5, textBox3, checkBox23, checkBox23.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox8, textBox4, checkBox24, checkBox24.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox7, textBox5, checkBox25, checkBox25.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox6, textBox6, checkBox26, checkBox26.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox11, textBox7, checkBox27, checkBox27.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox10, textBox8, checkBox28, checkBox28.Checked ? "{Tab}" : "{Enter}"),
ProcessFieldAsync(checkBox9, textBox9, checkBox29, checkBox29.Checked ? "{Tab}" : "{Enter}")
};
foreach (var task in tasks)
{
if (stopExecution) break;
await task;
}
}
finally
{
button1.Visible = false;
isExecuting = false;
stopExecution = false;
}
}
//симулятор ручного ввода
private async Task ProcessFieldAsync(CheckBox checkBox, TextBox textBox, CheckBox radioButton, string keyToSend)
{
if (!stopExecution)//проверка стоп-кнопки
{
if (checkBox.Checked)
{
button1.Visible = true;
if (!stopExecution)//проверка стоп-кнопки
{
isExecuting = true;
foreach (char c in textBox.Text.Where(c => c != '\n'))
{
if (!stopExecution)//проверка стоп-кнопки
{
SendKeys.SendWait(Regex.Replace(c.ToString(), "[+^%~(){}]", "{$0}"));
if (checkBox1.Checked) Thread.Sleep(100);//медленный режим
}
else
{
button1.Visible = false;
}
}
if (!stopExecution) { SendKeys.SendWait(keyToSend); }//таб или ввод
}
else
{
isExecuting = false;
button1.Visible = false;
}
}
}
else
{
isExecuting = false;
button1.Visible = false;
}
}
private void TogglePasswordVisibility(CheckBox checkBox, TextBox textBox)
{
textBox.Multiline = checkBox.Checked;
textBox.UseSystemPasswordChar = !checkBox.Checked;
}
private void checkBox14_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox14, textBox2);
private void checkBox12_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox12, textBox1);
private void checkBox15_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox15, textBox3);
private void checkBox16_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox16, textBox4);
private void checkBox17_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox17, textBox5);
private void checkBox18_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox18, textBox6);
private void checkBox19_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox19, textBox7);
private void checkBox20_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox20, textBox8);
private void checkBox21_CheckedChanged(object sender, EventArgs e) => TogglePasswordVisibility(checkBox21, textBox9);
private void checkBox2_CheckedChanged(object sender, EventArgs e) => this.TopMost = checkBox2.Checked; //topmost
//событие по входу в текстовое поле
private void TextBox_Enter(object sender, EventArgs e, string defaultText, CheckBox associatedCheckBox)
{
if (sender != previousFocusedControl) { previousFocusedControl = sender as Control; }
button2.Visible = true;
TextBox textBox = sender as TextBox;
if (textBox != null && textBox.Text == defaultText)
{
textBox.Text = "";
textBox.ForeColor = Color.Black;
if (associatedCheckBox != null) associatedCheckBox.Checked = true;
}
string currentProfileName = Profiles.SelectedItem?.ToString();
if (string.IsNullOrEmpty(currentProfileName)) return;
else
SaveCurrentProfileData(currentProfileName);
}
//событие по выходу из текстового поля
private void TextBox_Leave(object sender, EventArgs e)
{
if (!button2.Focused)
button2.Visible = false;
string currentProfileName = Profiles.SelectedItem?.ToString();
if (string.IsNullOrEmpty(currentProfileName)) return;
else
SaveCurrentProfileData(currentProfileName);
}
private void textBox1_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "admin", checkBox3);
private void textBox1_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox2_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "P@ssw0rd", checkBox4);
private void textBox2_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox3_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox3_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox4_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox4_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox5_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox5_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox6_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox6_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox7_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox7_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox8_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox8_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
private void textBox9_Enter(object sender, EventArgs e) => TextBox_Enter(sender, e, "", null);
private void textBox9_Leave(object sender, EventArgs e) => TextBox_Leave(sender, e);
//метод сохранения
private void SaveCurrentProfileData(string profileName)
{
var textBoxes = new[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7, textBox8, textBox9 };
var checkBoxes = new[] { checkBox3, checkBox4, checkBox5, checkBox8, checkBox7, checkBox6, checkBox11, checkBox10, checkBox9 };
var radioButtons = new[] { checkBox13, checkBox22, checkBox23, checkBox24, checkBox25, checkBox26, checkBox27, checkBox28, checkBox29 };
var checkEyes = new[] { checkBox12, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19, checkBox20, checkBox21 };
var colors = new[] { Color.Bisque, Color.Honeydew, Color.Lavender, Color.White };
string profileData = $"0:{profileName}";
for (int i = 0; i < textBoxes.Length; i++)
{
int checkBoxState = checkBoxes[i].Checked ? 1 : 0;
int radioButtonState = radioButtons[i].Checked ? 1 : 0;
int checkEyesState = checkEyes[i].Checked ? 1 : 0;
int colorIndex = Array.IndexOf(colors, textBoxes[i].BackColor); //индекс цвета
if (colorIndex == -1) colorIndex = 3; // фикс пустого цвета
string text = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(textBoxes[i].Text));//переводим в Base64
profileData += $";{i + 1}{checkBoxState}{radioButtonState}{checkEyesState}{colorIndex}:{text}";
}
profileDataDict[profileName] = profileData;
}
//загрузка файла
private void LoadProfileData(string profileName)
{
if (!profileDataDict.TryGetValue(profileName, out string profileData)) return;
textBox1.ForeColor = Color.Black;
textBox2.ForeColor = Color.Black;
var textBoxes = new[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7, textBox8, textBox9 };
var checkBoxes = new[] { checkBox3, checkBox4, checkBox5, checkBox8, checkBox7, checkBox6, checkBox11, checkBox10, checkBox9 };
var radioButtons = new[] { checkBox13, checkBox22, checkBox23, checkBox24, checkBox25, checkBox26, checkBox27, checkBox28, checkBox29 };
var checkEyes = new[] { checkBox12, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19, checkBox20, checkBox21 };
var colors = new[] { Color.Bisque, Color.Honeydew, Color.Lavender, Color.White };
foreach (var textBox in textBoxes) textBox.Text = "";
foreach (string entry in profileData.Split(';'))
{
var parts = entry.Split(new[] { ':' }, 2);
if (parts.Length == 2 && parts[0].Length == 5 && int.TryParse(parts[0][0].ToString(), out int textBoxIndex) && textBoxIndex >= 1 && textBoxIndex <= 9)
{
//переводим в Base64
string textValue = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(parts[1]));
textBoxes[textBoxIndex - 1].Text = textValue;
checkBoxes[textBoxIndex - 1].Checked = int.Parse(parts[0][1].ToString()) == 1;
radioButtons[textBoxIndex - 1].Checked = int.Parse(parts[0][2].ToString()) == 1;
checkEyes[textBoxIndex - 1].Checked = int.Parse(parts[0][3].ToString()) == 1;
int colorIndex = int.Parse(parts[0][4].ToString());
textBoxes[textBoxIndex - 1].BackColor = colors[colorIndex];
}
}
}
//сброс полей
private void ClearProfileFields()
{
var textBoxes = new[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7, textBox8, textBox9 };
var checkBoxes = new[] { checkBox3, checkBox4, checkBox5, checkBox8, checkBox7, checkBox6, checkBox11, checkBox10, checkBox9 };
var radioButtons = new[] { checkBox13, checkBox22, checkBox23, checkBox24, checkBox25, checkBox26, checkBox27, checkBox28, checkBox29 };
var checkEyes = new[] { checkBox12, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19, checkBox20, checkBox21 };
foreach (var textBox in textBoxes)
{
textBox.Text = "";
textBox.BackColor = Color.White;
}
foreach (var checkBox in checkBoxes) checkBox.Checked = false;
foreach (var radioButton in radioButtons) radioButton.Checked = false;
foreach (var checkEye in checkEyes) checkEye.Checked = true;
}
//создание нового профиля
private void createProfileToolStripMenuItem_Click(object sender, EventArgs e)
{
string profileName = Profiles.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(profileName))
{
SaveCurrentProfileData(profileName);
}
string newProfileName = Prompt.ShowDialog("\nВведите имя нового профиля:", "Создание профиля");
if (string.IsNullOrEmpty(newProfileName) || newProfileName == "CANCEL") return;
if (profileDataDict.ContainsKey(newProfileName.ToLower()))
{
MessageBox.Show("Название профиля уже используется. Пожалуйста, придумайте другое.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Profiles.Items.Add(newProfileName);
Profiles.SelectedItem = newProfileName;
if (!string.IsNullOrEmpty(profileName))
{
ClearProfileFields(); //dont reset if profile is first
}
textBox1.ForeColor = Color.Black;
textBox2.ForeColor = Color.Black;
SaveCurrentProfileData(newProfileName);
}
//редактирование профиля
private void deleteProfileToolStripMenuItem_Click(object sender, EventArgs e)
{
string currentProfileName = Profiles.SelectedItem?.ToString();
if (string.IsNullOrEmpty(currentProfileName)) { createProfileToolStripMenuItem_Click(sender, e); return; }
string newProfileName = Prompt.ShowDialog("Установить новое имя:\n(оставьте пустым, чтобы удалить профиль)", "Редактировать профиль", currentProfileName);
if (string.IsNullOrEmpty(newProfileName))
{
var result = MessageBox.Show("Вы подтверждаете удаление профиля и всех его данных?", "ВНИМАНИЕ", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
profileDataDict.Remove(currentProfileName);
Profiles.Items.Remove(currentProfileName);
if (Profiles.Items.Count > 0)
{
Profiles.SelectedIndex = Profiles.Items.Count - 1;
}
else
{
ClearProfileFields();
Profiles.Text = "Профиль";
}
}
return;
}
else if (newProfileName == "CANCEL") return;
else
{
profileDataDict.Remove(currentProfileName);
Profiles.Items.Remove(currentProfileName);
}
if (profileDataDict.ContainsKey(newProfileName.ToLower()))
{
MessageBox.Show("Название профиля уже используется. Пожалуйста, придумайте другое.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Profiles.Items.Add(newProfileName);
Profiles.SelectedItem = newProfileName;
SaveCurrentProfileData(newProfileName);
}
//модуль диалогового окна
public static class Prompt
{
public static string ShowDialog(string text, string caption, string defaultValue = "", bool useSystemPasswordChar = false)
{
Form prompt = new Form()
{
Width = 322,
Height = 182,
FormBorderStyle = FormBorderStyle.FixedDialog,
Text = caption,
StartPosition = FormStartPosition.CenterScreen,
TopMost = true
};
Label textLabel = new Label()
{
Left = 8,
Top = 15,
Text = text,
AutoSize = true
};
TextBox textBox = new TextBox()
{
Left = 10,
Top = 57,
Width = 286,
UseSystemPasswordChar = useSystemPasswordChar
};
Button confirmation = new Button()
{
Text = "OK",
Left = 103,
Width = 100,
Top = 100,
DialogResult = DialogResult.OK
};
confirmation.Click += (sender, e) =>
{
prompt.Close();
};
prompt.Controls.Add(textBox);
prompt.Controls.Add(confirmation);
prompt.Controls.Add(textLabel);
prompt.AcceptButton = confirmation;
return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "CANCEL";
}
}
//событие по клику на профили
private void Profiles_Click(object sender, EventArgs e)
{
if (!isComboBoxOpen)
{
string profileName = Profiles.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(profileName))
{
SaveCurrentProfileData(profileName);
}
}
}
//событие по выбору другого профиля
private void Profiles_SelectedIndexChanged(object sender, EventArgs e)
{
if (!isComboBoxOpen)
{
string profileName = Profiles.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(profileName))
{
LoadProfileData(profileName);
}
}
}
//дебаг горячих клавиш
private void UpdateModifierKeysLabel()
{
Keys modifiers = Control.ModifierKeys;
label1.Text = $"{modifiers}";
}
//сохранить как...
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (Profiles.Items.Count == 0)
{
MessageBox.Show("Профили отсутствуют. Создайте хотя бы один, чтобы сохраняться.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string profileName = Profiles.SelectedItem?.ToString();
if (!string.IsNullOrEmpty(profileName)) SaveCurrentProfileData(profileName);
SaveFileDialog saveFileDialog1 = new SaveFileDialog
{
Filter = "Файлы сохранений (*.fil)|*.fil|Все файлы (*.*)|*.*",
FilterIndex = 1,
RestoreDirectory = true,
FileName = "db.fil"
};
if (saveFileDialog1.ShowDialog() != DialogResult.OK) return;
string password1 = Prompt.ShowDialog("Установите ключ шифрования \n(или оставьте пустым):", "Пароль", "", true);
if (password1 == "CANCEL") return; //break if dialog window closed
if (!string.IsNullOrEmpty(password1))
{
string password2 = Prompt.ShowDialog("Повторите пароль:", "Подтверждение пароля", "", true);
if (password2 == "CANCEL" || password1 != password2)
{
MessageBox.Show("Пароли не совпадают, либо отменено пользователем. Попробуйте снова.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
StringBuilder sb = new StringBuilder();
foreach (var kvp in profileDataDict) sb.AppendLine($"{kvp.Key}: {kvp.Value}");
string dataToSave = sb.ToString();
if (!string.IsNullOrEmpty(password1))
{
dataToSave = CryptoHelper.Encrypt(dataToSave, password1);
}
using (var file = new StreamWriter(saveFileDialog1.FileName))
{
file.Write(dataToSave);
}
MessageBox.Show("Файл успешно сохранён.", "Сохранено", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//модуль загрузки
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog
{
Filter = "Файлы сохранений (*.fil)|*.fil|Все файлы (*.*)|*.*",
FilterIndex = 1,
RestoreDirectory = true,
FileName = "db.fil"
};
if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
Profiles.Items.Clear();
profileDataDict.Clear();
string encryptedData;
using (StreamReader file = new StreamReader(openFileDialog1.FileName))
{
encryptedData = file.ReadToEnd();
}
string password = Prompt.ShowDialog("Введите пароль \n(оставьте пустым, если файл не зашифрован):", "Пароль", "", true);
if (password == "CANCEL") return; //прервать если окно закрыто
string decryptedData = string.Empty;
try
{
if (string.IsNullOrEmpty(password))
{
decryptedData = encryptedData; //без шифрации
}
else
{
decryptedData = CryptoHelper.Decrypt(encryptedData, password);
}
using (StringReader reader = new StringReader(decryptedData))
{
string line;
while ((line = reader.ReadLine()) != null)
{
var parts = line.Split(new[] { ": " }, 2, StringSplitOptions.None);
if (parts.Length == 2)
{
profileDataDict[parts[0]] = parts[1];
}
}
}
Profiles.Items.Clear();
foreach (var key in profileDataDict.Keys) Profiles.Items.Add(key);
if (Profiles.Items.Count > 0)
{
Profiles.SelectedIndex = 0;
LoadProfileData(Profiles.SelectedItem.ToString());
}
}
catch (CryptographicException)
{
MessageBox.Show("Неверный пароль или файл повреждён.", "Ошибка шифрования", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (FormatException)
{
MessageBox.Show("Ошибка структуры данных. Возможно, файл не зашифрован.", "Ошибка структуры данных", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//таб или энтер
private void TABorENTER(CheckBox checkBox, CheckBox relatedCheckBox)
{
if (!checkBox.Checked)
{
relatedCheckBox.ForeColor = Color.White;
}
else
{
if (relatedCheckBox.Checked)
{
relatedCheckBox.Text = "↹ TAB";
relatedCheckBox.ForeColor = Color.DarkBlue;
}
else
{
relatedCheckBox.Text = "↵ Enter";
relatedCheckBox.ForeColor = Color.DarkRed;
}
}
}
private void checkBox13_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox3, checkBox13);
private void checkBox3_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox3, checkBox13);
private void checkBox4_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox4, checkBox22);
private void checkBox22_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox4, checkBox22);
private void checkBox5_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox5, checkBox23);
private void checkBox23_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox5, checkBox23);
private void checkBox8_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox8, checkBox24);
private void checkBox24_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox8, checkBox24);
private void checkBox7_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox7, checkBox25);
private void checkBox25_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox7, checkBox25);
private void checkBox6_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox6, checkBox26);
private void checkBox26_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox6, checkBox26);
private void checkBox11_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox11, checkBox27);
private void checkBox27_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox11, checkBox27);
private void checkBox10_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox10, checkBox28);
private void checkBox28_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox10, checkBox28);
private void checkBox9_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox9, checkBox29);
private void checkBox29_CheckedChanged(object sender, EventArgs e) => TABorENTER(checkBox9, checkBox29);
//О программе
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show($"• Попробуйте горячие клавиши CTRL+[1-9] для включения или выключения полей\n\n• Вывод символов зависит от текущей раскладки клавиатуры - имейте в виду при работе в удалённых консолях\n__________________________________________________________\n\nСоздано в 2024. Распространяется свободно и бесплатно.\n\nКанал автора: t.me/sysarch01\n__________________________________________________________\n\nКонтрольная сумма и исходный код доступны\n\n• на GitVerse: https://gitverse.ru/aremys/infill\n\n", "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//кнопка СТОП
private void button1_Click_1(object sender, EventArgs e)
{
stopExecution = true;
}
//кнопка смены цвета
private int colorIndex = 0;
private readonly Color[] colors = { Color.Bisque, Color.Honeydew, Color.Lavender, Color.White };
private Control previousFocusedControl = null;
private void button2_Click(object sender, EventArgs e)
{
button2.BackColor = colors[colorIndex];
if (previousFocusedControl != null) { previousFocusedControl.BackColor = colors[colorIndex]; }
colorIndex = (colorIndex + 1) % colors.Length;
}
private void button2_Leave(object sender, EventArgs e)
{
button2.Visible = false;
}
}
}
Form1.designer.cs
namespace Filler
{
partial class infill
{
/// <summary>
/// Обязательная переменная конструктора.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
/// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Код, автоматически созданный конструктором форм Windows
/// <summary>
/// Требуемый метод для поддержки конструктора — не изменяйте
/// содержимое этого метода с помощью редактора кода.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(infill));
checkBox1 = new CheckBox();
textBox1 = new TextBox();
checkBox2 = new CheckBox();
textBox2 = new TextBox();
textBox3 = new TextBox();
checkBox5 = new CheckBox();
checkBox4 = new CheckBox();
checkBox3 = new CheckBox();
checkBox6 = new CheckBox();
textBox6 = new TextBox();
checkBox7 = new CheckBox();
textBox5 = new TextBox();
checkBox8 = new CheckBox();
textBox4 = new TextBox();
checkBox9 = new CheckBox();
textBox9 = new TextBox();
checkBox10 = new CheckBox();
textBox8 = new TextBox();
checkBox11 = new CheckBox();
textBox7 = new TextBox();
checkBox12 = new CheckBox();
menuStrip1 = new MenuStrip();
File = new ToolStripMenuItem();
loadToolStripMenuItem = new ToolStripMenuItem();
saveAsToolStripMenuItem = new ToolStripMenuItem();
toolStripMenuItem3 = new ToolStripSeparator();
createProfileToolStripMenuItem = new ToolStripMenuItem();
deleteProfileToolStripMenuItem = new ToolStripMenuItem();
fileToolStripMenuItem = new ToolStripSeparator();
aboutToolStripMenuItem = new ToolStripMenuItem();
Profiles = new ToolStripComboBox();
Hotkeys = new ToolStripComboBox();
toolStripMenuItem1 = new ToolStripMenuItem();
checkBox14 = new CheckBox();
checkBox15 = new CheckBox();
checkBox16 = new CheckBox();
checkBox17 = new CheckBox();
checkBox18 = new CheckBox();
checkBox19 = new CheckBox();
checkBox20 = new CheckBox();
checkBox21 = new CheckBox();
label1 = new Label();
checkBox13 = new CheckBox();
checkBox22 = new CheckBox();
checkBox23 = new CheckBox();
checkBox24 = new CheckBox();
checkBox25 = new CheckBox();
checkBox26 = new CheckBox();
checkBox27 = new CheckBox();
checkBox28 = new CheckBox();
checkBox29 = new CheckBox();
button1 = new Button();
button2 = new Button();
label2 = new Label();
menuStrip1.SuspendLayout();
SuspendLayout();
//
// checkBox1
//
checkBox1.AutoSize = true;
checkBox1.Location = new Point(9, 629);
checkBox1.Margin = new Padding(3, 4, 3, 4);
checkBox1.Name = "checkBox1";
checkBox1.Size = new Size(166, 24);
checkBox1.TabIndex = 0;
checkBox1.Text = "Медленный режим";
checkBox1.UseVisualStyleBackColor = true;
//
// textBox1
//
textBox1.BackColor = Color.White;
textBox1.BorderStyle = BorderStyle.None;
textBox1.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox1.ForeColor = SystemColors.GrayText;
textBox1.Location = new Point(55, 50);
textBox1.Margin = new Padding(3, 4, 3, 4);
textBox1.Multiline = true;
textBox1.Name = "textBox1";
textBox1.ScrollBars = ScrollBars.Horizontal;
textBox1.Size = new Size(196, 60);
textBox1.TabIndex = 1;
textBox1.Text = "admin";
textBox1.WordWrap = false;
textBox1.Enter += textBox1_Enter;
textBox1.Leave += textBox1_Leave;
//
// checkBox2
//
checkBox2.AutoSize = true;
checkBox2.Location = new Point(205, 629);
checkBox2.Margin = new Padding(3, 4, 3, 4);
checkBox2.Name = "checkBox2";
checkBox2.RightToLeft = RightToLeft.Yes;
checkBox2.Size = new Size(155, 24);
checkBox2.TabIndex = 2;
checkBox2.Text = "Поверх всех окон";
checkBox2.UseVisualStyleBackColor = true;
checkBox2.CheckedChanged += checkBox2_CheckedChanged;
//
// textBox2
//
textBox2.BorderStyle = BorderStyle.None;
textBox2.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox2.ForeColor = SystemColors.GrayText;
textBox2.Location = new Point(55, 114);
textBox2.Margin = new Padding(3, 4, 3, 4);
textBox2.Multiline = true;
textBox2.Name = "textBox2";
textBox2.ScrollBars = ScrollBars.Horizontal;
textBox2.Size = new Size(196, 57);
textBox2.TabIndex = 7;
textBox2.Text = "P@ssw0rd";
textBox2.UseSystemPasswordChar = true;
textBox2.WordWrap = false;
textBox2.Enter += textBox2_Enter;
textBox2.Leave += textBox2_Leave;
//
// textBox3
//
textBox3.BorderStyle = BorderStyle.None;
textBox3.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox3.Location = new Point(55, 178);
textBox3.Margin = new Padding(3, 4, 3, 4);
textBox3.Multiline = true;
textBox3.Name = "textBox3";
textBox3.ScrollBars = ScrollBars.Horizontal;
textBox3.Size = new Size(196, 60);
textBox3.TabIndex = 7;
textBox3.WordWrap = false;
textBox3.Enter += textBox3_Enter;
textBox3.Leave += textBox3_Leave;
//
// checkBox5
//
checkBox5.Appearance = Appearance.Button;
checkBox5.BackgroundImage = (Image)resources.GetObject("checkBox5.BackgroundImage");
checkBox5.BackgroundImageLayout = ImageLayout.Stretch;
checkBox5.CheckAlign = ContentAlignment.BottomLeft;
checkBox5.FlatAppearance.BorderSize = 0;
checkBox5.FlatAppearance.CheckedBackColor = Color.Green;
checkBox5.FlatStyle = FlatStyle.Flat;
checkBox5.Location = new Point(9, 172);
checkBox5.Margin = new Padding(0);
checkBox5.Name = "checkBox5";
checkBox5.Size = new Size(40, 48);
checkBox5.TabIndex = 8;
checkBox5.UseVisualStyleBackColor = true;
checkBox5.CheckedChanged += checkBox5_CheckedChanged;
//
// checkBox4
//
checkBox4.Appearance = Appearance.Button;
checkBox4.BackgroundImage = (Image)resources.GetObject("checkBox4.BackgroundImage");
checkBox4.BackgroundImageLayout = ImageLayout.Stretch;
checkBox4.CheckAlign = ContentAlignment.BottomLeft;
checkBox4.FlatAppearance.BorderSize = 0;
checkBox4.FlatAppearance.CheckedBackColor = Color.Green;
checkBox4.FlatStyle = FlatStyle.Flat;
checkBox4.Location = new Point(9, 108);
checkBox4.Margin = new Padding(0);
checkBox4.Name = "checkBox4";
checkBox4.Size = new Size(40, 48);
checkBox4.TabIndex = 8;
checkBox4.UseVisualStyleBackColor = true;
checkBox4.CheckedChanged += checkBox4_CheckedChanged;
//
// checkBox3
//
checkBox3.Appearance = Appearance.Button;
checkBox3.BackgroundImage = (Image)resources.GetObject("checkBox3.BackgroundImage");
checkBox3.BackgroundImageLayout = ImageLayout.Stretch;
checkBox3.CheckAlign = ContentAlignment.BottomLeft;
checkBox3.FlatAppearance.BorderSize = 0;
checkBox3.FlatAppearance.CheckedBackColor = Color.Green;
checkBox3.FlatStyle = FlatStyle.Flat;
checkBox3.Location = new Point(9, 45);
checkBox3.Margin = new Padding(0);
checkBox3.Name = "checkBox3";
checkBox3.Size = new Size(40, 48);
checkBox3.TabIndex = 3;
checkBox3.UseVisualStyleBackColor = true;
checkBox3.CheckedChanged += checkBox3_CheckedChanged;
//
// checkBox6
//
checkBox6.Appearance = Appearance.Button;
checkBox6.BackgroundImage = (Image)resources.GetObject("checkBox6.BackgroundImage");
checkBox6.BackgroundImageLayout = ImageLayout.Stretch;
checkBox6.CheckAlign = ContentAlignment.BottomLeft;
checkBox6.FlatAppearance.BorderSize = 0;
checkBox6.FlatAppearance.CheckedBackColor = Color.Green;
checkBox6.FlatStyle = FlatStyle.Flat;
checkBox6.Location = new Point(9, 365);
checkBox6.Margin = new Padding(0);
checkBox6.Name = "checkBox6";
checkBox6.Size = new Size(40, 48);
checkBox6.TabIndex = 15;
checkBox6.UseVisualStyleBackColor = true;
checkBox6.CheckedChanged += checkBox6_CheckedChanged;
//
// textBox6
//
textBox6.BorderStyle = BorderStyle.None;
textBox6.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox6.Location = new Point(55, 370);
textBox6.Margin = new Padding(3, 4, 3, 4);
textBox6.Multiline = true;
textBox6.Name = "textBox6";
textBox6.ScrollBars = ScrollBars.Horizontal;
textBox6.Size = new Size(196, 60);
textBox6.TabIndex = 13;
textBox6.WordWrap = false;
textBox6.Enter += textBox6_Enter;
textBox6.Leave += textBox6_Leave;
//
// checkBox7
//
checkBox7.Appearance = Appearance.Button;
checkBox7.BackgroundImage = (Image)resources.GetObject("checkBox7.BackgroundImage");
checkBox7.BackgroundImageLayout = ImageLayout.Stretch;
checkBox7.CheckAlign = ContentAlignment.BottomLeft;
checkBox7.FlatAppearance.BorderSize = 0;
checkBox7.FlatAppearance.CheckedBackColor = Color.Green;
checkBox7.FlatStyle = FlatStyle.Flat;
checkBox7.Location = new Point(9, 301);
checkBox7.Margin = new Padding(0);
checkBox7.Name = "checkBox7";
checkBox7.Size = new Size(40, 48);
checkBox7.TabIndex = 16;
checkBox7.UseVisualStyleBackColor = true;
checkBox7.CheckedChanged += checkBox7_CheckedChanged;
//
// textBox5
//
textBox5.BorderStyle = BorderStyle.None;
textBox5.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox5.Location = new Point(55, 306);
textBox5.Margin = new Padding(3, 4, 3, 4);
textBox5.Multiline = true;
textBox5.Name = "textBox5";
textBox5.ScrollBars = ScrollBars.Horizontal;
textBox5.Size = new Size(196, 60);
textBox5.TabIndex = 14;
textBox5.WordWrap = false;
textBox5.Enter += textBox5_Enter;
textBox5.Leave += textBox5_Leave;
//
// checkBox8
//
checkBox8.Appearance = Appearance.Button;
checkBox8.BackgroundImage = (Image)resources.GetObject("checkBox8.BackgroundImage");
checkBox8.BackgroundImageLayout = ImageLayout.Stretch;
checkBox8.CheckAlign = ContentAlignment.BottomLeft;
checkBox8.FlatAppearance.BorderSize = 0;
checkBox8.FlatAppearance.CheckedBackColor = Color.Green;
checkBox8.FlatStyle = FlatStyle.Flat;
checkBox8.Location = new Point(9, 236);
checkBox8.Margin = new Padding(0);
checkBox8.Name = "checkBox8";
checkBox8.Size = new Size(40, 48);
checkBox8.TabIndex = 11;
checkBox8.UseVisualStyleBackColor = true;
checkBox8.CheckedChanged += checkBox8_CheckedChanged;
//
// textBox4
//
textBox4.BorderStyle = BorderStyle.None;
textBox4.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox4.Location = new Point(55, 242);
textBox4.Margin = new Padding(3, 4, 3, 4);
textBox4.Multiline = true;
textBox4.Name = "textBox4";
textBox4.ScrollBars = ScrollBars.Horizontal;
textBox4.Size = new Size(196, 59);
textBox4.TabIndex = 10;
textBox4.WordWrap = false;
textBox4.Enter += textBox4_Enter;
textBox4.Leave += textBox4_Leave;
//
// checkBox9
//
checkBox9.Appearance = Appearance.Button;
checkBox9.BackgroundImage = (Image)resources.GetObject("checkBox9.BackgroundImage");
checkBox9.BackgroundImageLayout = ImageLayout.Stretch;
checkBox9.CheckAlign = ContentAlignment.BottomLeft;
checkBox9.FlatAppearance.BorderSize = 0;
checkBox9.FlatAppearance.CheckedBackColor = Color.Green;
checkBox9.FlatStyle = FlatStyle.Flat;
checkBox9.Location = new Point(9, 559);
checkBox9.Margin = new Padding(0);
checkBox9.Name = "checkBox9";
checkBox9.Size = new Size(40, 48);
checkBox9.TabIndex = 15;
checkBox9.UseVisualStyleBackColor = true;
checkBox9.CheckedChanged += checkBox9_CheckedChanged;
//
// textBox9
//
textBox9.BorderStyle = BorderStyle.None;
textBox9.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox9.Location = new Point(55, 564);
textBox9.Margin = new Padding(3, 4, 3, 4);
textBox9.Multiline = true;
textBox9.Name = "textBox9";
textBox9.ScrollBars = ScrollBars.Horizontal;
textBox9.Size = new Size(196, 60);
textBox9.TabIndex = 13;
textBox9.WordWrap = false;
textBox9.Enter += textBox9_Enter;
textBox9.Leave += textBox9_Leave;
//
// checkBox10
//
checkBox10.Appearance = Appearance.Button;
checkBox10.BackgroundImage = (Image)resources.GetObject("checkBox10.BackgroundImage");
checkBox10.BackgroundImageLayout = ImageLayout.Stretch;
checkBox10.CheckAlign = ContentAlignment.BottomLeft;
checkBox10.FlatAppearance.BorderSize = 0;
checkBox10.FlatAppearance.CheckedBackColor = Color.Green;
checkBox10.FlatStyle = FlatStyle.Flat;
checkBox10.Location = new Point(9, 495);
checkBox10.Margin = new Padding(0);
checkBox10.Name = "checkBox10";
checkBox10.Size = new Size(40, 48);
checkBox10.TabIndex = 16;
checkBox10.UseVisualStyleBackColor = true;
checkBox10.CheckedChanged += checkBox10_CheckedChanged;
//
// textBox8
//
textBox8.BorderStyle = BorderStyle.None;
textBox8.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox8.Location = new Point(55, 500);
textBox8.Margin = new Padding(3, 4, 3, 4);
textBox8.Multiline = true;
textBox8.Name = "textBox8";
textBox8.ScrollBars = ScrollBars.Horizontal;
textBox8.Size = new Size(196, 60);
textBox8.TabIndex = 14;
textBox8.WordWrap = false;
textBox8.Enter += textBox8_Enter;
textBox8.Leave += textBox8_Leave;
//
// checkBox11
//
checkBox11.Appearance = Appearance.Button;
checkBox11.BackgroundImage = (Image)resources.GetObject("checkBox11.BackgroundImage");
checkBox11.BackgroundImageLayout = ImageLayout.Stretch;
checkBox11.CheckAlign = ContentAlignment.BottomLeft;
checkBox11.FlatAppearance.BorderSize = 0;
checkBox11.FlatAppearance.CheckedBackColor = Color.Green;
checkBox11.FlatStyle = FlatStyle.Flat;
checkBox11.Location = new Point(9, 429);
checkBox11.Margin = new Padding(0);
checkBox11.Name = "checkBox11";
checkBox11.Size = new Size(40, 48);
checkBox11.TabIndex = 11;
checkBox11.UseVisualStyleBackColor = true;
checkBox11.CheckedChanged += checkBox11_CheckedChanged;
//
// textBox7
//
textBox7.BorderStyle = BorderStyle.None;
textBox7.Font = new Font("Cambria", 16.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
textBox7.Location = new Point(55, 435);
textBox7.Margin = new Padding(3, 4, 3, 4);
textBox7.Multiline = true;
textBox7.Name = "textBox7";
textBox7.ScrollBars = ScrollBars.Horizontal;
textBox7.Size = new Size(196, 60);
textBox7.TabIndex = 10;
textBox7.WordWrap = false;
textBox7.Enter += textBox7_Enter;
textBox7.Leave += textBox7_Leave;
//
// checkBox12
//
checkBox12.Appearance = Appearance.Button;
checkBox12.BackColor = Color.RoyalBlue;
checkBox12.Checked = true;
checkBox12.CheckState = CheckState.Checked;
checkBox12.FlatAppearance.BorderColor = Color.DarkGray;
checkBox12.FlatStyle = FlatStyle.System;
checkBox12.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox12.Location = new Point(249, 50);
checkBox12.Margin = new Padding(3, 4, 3, 4);
checkBox12.Name = "checkBox12";
checkBox12.RightToLeft = RightToLeft.No;
checkBox12.Size = new Size(27, 35);
checkBox12.TabIndex = 19;
checkBox12.Text = "?";
checkBox12.TextAlign = ContentAlignment.TopCenter;
checkBox12.UseVisualStyleBackColor = false;
checkBox12.CheckedChanged += checkBox12_CheckedChanged;
//
// menuStrip1
//
menuStrip1.ImageScalingSize = new Size(20, 20);
menuStrip1.Items.AddRange(new ToolStripItem[] { File, Profiles, Hotkeys });
menuStrip1.Location = new Point(0, 0);
menuStrip1.Name = "menuStrip1";
menuStrip1.Padding = new Padding(6, 3, 0, 3);
menuStrip1.RenderMode = ToolStripRenderMode.Professional;
menuStrip1.Size = new Size(354, 34);
menuStrip1.TabIndex = 20;
menuStrip1.Text = "menuStrip1";
//
// File
//
File.DropDownItems.AddRange(new ToolStripItem[] { loadToolStripMenuItem, saveAsToolStripMenuItem, toolStripMenuItem3, createProfileToolStripMenuItem, deleteProfileToolStripMenuItem, fileToolStripMenuItem, aboutToolStripMenuItem });
File.Name = "File";
File.Size = new Size(59, 28);
File.Text = "Файл";
//
// loadToolStripMenuItem
//
loadToolStripMenuItem.Name = "loadToolStripMenuItem";
loadToolStripMenuItem.Size = new Size(260, 26);
loadToolStripMenuItem.Text = "Загрузить";
loadToolStripMenuItem.Click += loadToolStripMenuItem_Click;
//
// saveAsToolStripMenuItem
//
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
saveAsToolStripMenuItem.Size = new Size(260, 26);
saveAsToolStripMenuItem.Text = "Сохранить как...";
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
//
// toolStripMenuItem3
//
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.Size = new Size(257, 6);
//
// createProfileToolStripMenuItem
//
createProfileToolStripMenuItem.Name = "createProfileToolStripMenuItem";
createProfileToolStripMenuItem.Size = new Size(260, 26);
createProfileToolStripMenuItem.Text = "Новый профиль";
createProfileToolStripMenuItem.Click += createProfileToolStripMenuItem_Click;
//
// deleteProfileToolStripMenuItem
//
deleteProfileToolStripMenuItem.Name = "deleteProfileToolStripMenuItem";
deleteProfileToolStripMenuItem.Size = new Size(260, 26);
deleteProfileToolStripMenuItem.Text = "Редактировать профиль";
deleteProfileToolStripMenuItem.Click += deleteProfileToolStripMenuItem_Click;
//
// fileToolStripMenuItem
//
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new Size(257, 6);
//
// aboutToolStripMenuItem
//
aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
aboutToolStripMenuItem.Size = new Size(260, 26);
aboutToolStripMenuItem.Text = "О программе";
aboutToolStripMenuItem.Click += aboutToolStripMenuItem_Click;
//
// Profiles
//
Profiles.Name = "Profiles";
Profiles.Size = new Size(150, 28);
Profiles.Text = "Профиль";
Profiles.SelectedIndexChanged += Profiles_SelectedIndexChanged;
Profiles.Click += Profiles_Click;
//
// Hotkeys
//
Hotkeys.Items.AddRange(new object[] { "Ctrl+Alt+Z", "Ctrl+Alt+X", "Ctrl+Alt+C", "Ctrl+Alt+V", "Ctrl+Alt+A", "Ctrl+Alt+S", "Ctrl+Alt+D", "Ctrl+Alt+F", "Ctrl+Alt+Q", "Ctrl+Alt+W", "Ctrl+Alt+E", "Ctrl+Alt+R" });
Hotkeys.Name = "Hotkeys";
Hotkeys.Size = new Size(100, 28);
Hotkeys.Text = "Ctrl+Alt+V";
Hotkeys.SelectedIndexChanged += Hotkeys_SelectedIndexChanged;
//
// toolStripMenuItem1
//
toolStripMenuItem1.Name = "toolStripMenuItem1";
toolStripMenuItem1.Size = new Size(32, 19);
//
// checkBox14
//
checkBox14.Appearance = Appearance.Button;
checkBox14.BackColor = Color.RoyalBlue;
checkBox14.FlatAppearance.BorderColor = Color.DarkGray;
checkBox14.FlatStyle = FlatStyle.System;
checkBox14.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox14.Location = new Point(249, 114);
checkBox14.Margin = new Padding(3, 4, 3, 4);
checkBox14.Name = "checkBox14";
checkBox14.RightToLeft = RightToLeft.No;
checkBox14.Size = new Size(27, 35);
checkBox14.TabIndex = 21;
checkBox14.Text = "?";
checkBox14.TextAlign = ContentAlignment.TopCenter;
checkBox14.UseVisualStyleBackColor = false;
checkBox14.CheckedChanged += checkBox14_CheckedChanged;
//
// checkBox15
//
checkBox15.Appearance = Appearance.Button;
checkBox15.BackColor = Color.RoyalBlue;
checkBox15.Checked = true;
checkBox15.CheckState = CheckState.Checked;
checkBox15.FlatAppearance.BorderColor = Color.DarkGray;
checkBox15.FlatStyle = FlatStyle.System;
checkBox15.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox15.Location = new Point(249, 178);
checkBox15.Margin = new Padding(3, 4, 3, 4);
checkBox15.Name = "checkBox15";
checkBox15.RightToLeft = RightToLeft.No;
checkBox15.Size = new Size(27, 35);
checkBox15.TabIndex = 22;
checkBox15.Text = "?";
checkBox15.TextAlign = ContentAlignment.TopCenter;
checkBox15.UseVisualStyleBackColor = false;
checkBox15.CheckedChanged += checkBox15_CheckedChanged;
//
// checkBox16
//
checkBox16.Appearance = Appearance.Button;
checkBox16.BackColor = Color.RoyalBlue;
checkBox16.Checked = true;
checkBox16.CheckState = CheckState.Checked;
checkBox16.FlatAppearance.BorderColor = Color.DarkGray;
checkBox16.FlatStyle = FlatStyle.System;
checkBox16.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox16.Location = new Point(249, 242);
checkBox16.Margin = new Padding(3, 4, 3, 4);
checkBox16.Name = "checkBox16";
checkBox16.RightToLeft = RightToLeft.No;
checkBox16.Size = new Size(27, 35);
checkBox16.TabIndex = 23;
checkBox16.Text = "?";
checkBox16.TextAlign = ContentAlignment.TopCenter;
checkBox16.UseVisualStyleBackColor = false;
checkBox16.CheckedChanged += checkBox16_CheckedChanged;
//
// checkBox17
//
checkBox17.Appearance = Appearance.Button;
checkBox17.BackColor = Color.RoyalBlue;
checkBox17.Checked = true;
checkBox17.CheckState = CheckState.Checked;
checkBox17.FlatAppearance.BorderColor = Color.DarkGray;
checkBox17.FlatStyle = FlatStyle.System;
checkBox17.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox17.Location = new Point(249, 306);
checkBox17.Margin = new Padding(3, 4, 3, 4);
checkBox17.Name = "checkBox17";
checkBox17.RightToLeft = RightToLeft.No;
checkBox17.Size = new Size(27, 35);
checkBox17.TabIndex = 24;
checkBox17.Text = "?";
checkBox17.TextAlign = ContentAlignment.TopCenter;
checkBox17.UseVisualStyleBackColor = false;
checkBox17.CheckedChanged += checkBox17_CheckedChanged;
//
// checkBox18
//
checkBox18.Appearance = Appearance.Button;
checkBox18.BackColor = Color.RoyalBlue;
checkBox18.Checked = true;
checkBox18.CheckState = CheckState.Checked;
checkBox18.FlatAppearance.BorderColor = Color.DarkGray;
checkBox18.FlatStyle = FlatStyle.System;
checkBox18.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox18.Location = new Point(249, 370);
checkBox18.Margin = new Padding(3, 4, 3, 4);
checkBox18.Name = "checkBox18";
checkBox18.RightToLeft = RightToLeft.No;
checkBox18.Size = new Size(27, 35);
checkBox18.TabIndex = 25;
checkBox18.Text = "?";
checkBox18.TextAlign = ContentAlignment.TopCenter;
checkBox18.UseVisualStyleBackColor = false;
checkBox18.CheckedChanged += checkBox18_CheckedChanged;
//
// checkBox19
//
checkBox19.Appearance = Appearance.Button;
checkBox19.BackColor = Color.RoyalBlue;
checkBox19.Checked = true;
checkBox19.CheckState = CheckState.Checked;
checkBox19.FlatAppearance.BorderColor = Color.DarkGray;
checkBox19.FlatStyle = FlatStyle.System;
checkBox19.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox19.Location = new Point(249, 435);
checkBox19.Margin = new Padding(3, 4, 3, 4);
checkBox19.Name = "checkBox19";
checkBox19.RightToLeft = RightToLeft.No;
checkBox19.Size = new Size(27, 35);
checkBox19.TabIndex = 26;
checkBox19.Text = "?";
checkBox19.TextAlign = ContentAlignment.TopCenter;
checkBox19.UseVisualStyleBackColor = false;
checkBox19.CheckedChanged += checkBox19_CheckedChanged;
//
// checkBox20
//
checkBox20.Appearance = Appearance.Button;
checkBox20.BackColor = Color.RoyalBlue;
checkBox20.Checked = true;
checkBox20.CheckState = CheckState.Checked;
checkBox20.FlatAppearance.BorderColor = Color.DarkGray;
checkBox20.FlatStyle = FlatStyle.System;
checkBox20.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox20.Location = new Point(249, 500);
checkBox20.Margin = new Padding(3, 4, 3, 4);
checkBox20.Name = "checkBox20";
checkBox20.RightToLeft = RightToLeft.No;
checkBox20.Size = new Size(27, 35);
checkBox20.TabIndex = 27;
checkBox20.Text = "?";
checkBox20.TextAlign = ContentAlignment.TopCenter;
checkBox20.UseVisualStyleBackColor = false;
checkBox20.CheckedChanged += checkBox20_CheckedChanged;
//
// checkBox21
//
checkBox21.Appearance = Appearance.Button;
checkBox21.BackColor = Color.RoyalBlue;
checkBox21.Checked = true;
checkBox21.CheckState = CheckState.Checked;
checkBox21.FlatAppearance.BorderColor = Color.DarkGray;
checkBox21.FlatStyle = FlatStyle.System;
checkBox21.Font = new Font("Ink Free", 10.2F, FontStyle.Bold, GraphicsUnit.Point, 0);
checkBox21.Location = new Point(249, 564);
checkBox21.Margin = new Padding(3, 4, 3, 4);
checkBox21.Name = "checkBox21";
checkBox21.RightToLeft = RightToLeft.No;
checkBox21.Size = new Size(27, 35);
checkBox21.TabIndex = 28;
checkBox21.Text = "?";
checkBox21.TextAlign = ContentAlignment.TopCenter;
checkBox21.UseVisualStyleBackColor = false;
checkBox21.CheckedChanged += checkBox21_CheckedChanged;
//
// label1
//
label1.AutoSize = true;
label1.ForeColor = SystemColors.ActiveCaption;
label1.Location = new Point(437, 615);
label1.Name = "label1";
label1.Size = new Size(42, 20);
label1.TabIndex = 29;
label1.Text = "label";
//
// checkBox13
//
checkBox13.Appearance = Appearance.Button;
checkBox13.BackColor = Color.White;
checkBox13.CheckAlign = ContentAlignment.MiddleCenter;
checkBox13.Checked = true;
checkBox13.CheckState = CheckState.Checked;
checkBox13.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox13.FlatAppearance.BorderSize = 4;
checkBox13.FlatStyle = FlatStyle.Flat;
checkBox13.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox13.ForeColor = Color.White;
checkBox13.Location = new Point(276, 41);
checkBox13.Name = "checkBox13";
checkBox13.RightToLeft = RightToLeft.No;
checkBox13.Size = new Size(76, 58);
checkBox13.TabIndex = 30;
checkBox13.Text = "↹ TAB";
checkBox13.UseVisualStyleBackColor = false;
checkBox13.CheckedChanged += checkBox13_CheckedChanged;
//
// checkBox22
//
checkBox22.Appearance = Appearance.Button;
checkBox22.BackColor = Color.White;
checkBox22.CheckAlign = ContentAlignment.MiddleCenter;
checkBox22.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox22.FlatAppearance.BorderSize = 4;
checkBox22.FlatStyle = FlatStyle.Flat;
checkBox22.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox22.ForeColor = Color.White;
checkBox22.Location = new Point(276, 105);
checkBox22.Name = "checkBox22";
checkBox22.RightToLeft = RightToLeft.No;
checkBox22.Size = new Size(76, 58);
checkBox22.TabIndex = 31;
checkBox22.Text = "↹ TAB";
checkBox22.UseVisualStyleBackColor = false;
checkBox22.CheckedChanged += checkBox22_CheckedChanged;
//
// checkBox23
//
checkBox23.Appearance = Appearance.Button;
checkBox23.BackColor = Color.White;
checkBox23.CheckAlign = ContentAlignment.MiddleCenter;
checkBox23.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox23.FlatAppearance.BorderSize = 4;
checkBox23.FlatStyle = FlatStyle.Flat;
checkBox23.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox23.ForeColor = Color.White;
checkBox23.Location = new Point(276, 169);
checkBox23.Name = "checkBox23";
checkBox23.RightToLeft = RightToLeft.No;
checkBox23.Size = new Size(76, 58);
checkBox23.TabIndex = 32;
checkBox23.Text = "↹ TAB";
checkBox23.UseVisualStyleBackColor = false;
checkBox23.CheckedChanged += checkBox23_CheckedChanged;
//
// checkBox24
//
checkBox24.Appearance = Appearance.Button;
checkBox24.BackColor = Color.White;
checkBox24.CheckAlign = ContentAlignment.MiddleCenter;
checkBox24.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox24.FlatAppearance.BorderSize = 4;
checkBox24.FlatStyle = FlatStyle.Flat;
checkBox24.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox24.ForeColor = Color.White;
checkBox24.Location = new Point(276, 233);
checkBox24.Name = "checkBox24";
checkBox24.RightToLeft = RightToLeft.No;
checkBox24.Size = new Size(76, 58);
checkBox24.TabIndex = 33;
checkBox24.Text = "↹ TAB";
checkBox24.UseVisualStyleBackColor = false;
checkBox24.CheckedChanged += checkBox24_CheckedChanged;
//
// checkBox25
//
checkBox25.Appearance = Appearance.Button;
checkBox25.BackColor = Color.White;
checkBox25.CheckAlign = ContentAlignment.MiddleCenter;
checkBox25.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox25.FlatAppearance.BorderSize = 4;
checkBox25.FlatStyle = FlatStyle.Flat;
checkBox25.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox25.ForeColor = Color.White;
checkBox25.Location = new Point(276, 297);
checkBox25.Name = "checkBox25";
checkBox25.RightToLeft = RightToLeft.No;
checkBox25.Size = new Size(76, 58);
checkBox25.TabIndex = 34;
checkBox25.Text = "↹ TAB";
checkBox25.UseVisualStyleBackColor = false;
checkBox25.CheckedChanged += checkBox25_CheckedChanged;
//
// checkBox26
//
checkBox26.Appearance = Appearance.Button;
checkBox26.BackColor = Color.White;
checkBox26.CheckAlign = ContentAlignment.MiddleCenter;
checkBox26.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox26.FlatAppearance.BorderSize = 4;
checkBox26.FlatStyle = FlatStyle.Flat;
checkBox26.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox26.ForeColor = Color.White;
checkBox26.Location = new Point(276, 361);
checkBox26.Name = "checkBox26";
checkBox26.RightToLeft = RightToLeft.No;
checkBox26.Size = new Size(76, 58);
checkBox26.TabIndex = 35;
checkBox26.Text = "↹ TAB";
checkBox26.UseVisualStyleBackColor = false;
checkBox26.CheckedChanged += checkBox26_CheckedChanged;
//
// checkBox27
//
checkBox27.Appearance = Appearance.Button;
checkBox27.BackColor = Color.White;
checkBox27.CheckAlign = ContentAlignment.MiddleCenter;
checkBox27.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox27.FlatAppearance.BorderSize = 4;
checkBox27.FlatStyle = FlatStyle.Flat;
checkBox27.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox27.ForeColor = Color.White;
checkBox27.Location = new Point(276, 426);
checkBox27.Name = "checkBox27";
checkBox27.RightToLeft = RightToLeft.No;
checkBox27.Size = new Size(76, 58);
checkBox27.TabIndex = 36;
checkBox27.Text = "↹ TAB";
checkBox27.UseVisualStyleBackColor = false;
checkBox27.CheckedChanged += checkBox27_CheckedChanged;
//
// checkBox28
//
checkBox28.Appearance = Appearance.Button;
checkBox28.BackColor = Color.White;
checkBox28.CheckAlign = ContentAlignment.MiddleCenter;
checkBox28.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox28.FlatAppearance.BorderSize = 4;
checkBox28.FlatStyle = FlatStyle.Flat;
checkBox28.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox28.ForeColor = Color.White;
checkBox28.Location = new Point(276, 491);
checkBox28.Name = "checkBox28";
checkBox28.RightToLeft = RightToLeft.No;
checkBox28.Size = new Size(76, 58);
checkBox28.TabIndex = 37;
checkBox28.Text = "↹ TAB";
checkBox28.UseVisualStyleBackColor = false;
checkBox28.CheckedChanged += checkBox28_CheckedChanged;
//
// checkBox29
//
checkBox29.Appearance = Appearance.Button;
checkBox29.BackColor = Color.White;
checkBox29.CheckAlign = ContentAlignment.MiddleCenter;
checkBox29.FlatAppearance.BorderColor = Color.AliceBlue;
checkBox29.FlatAppearance.BorderSize = 4;
checkBox29.FlatStyle = FlatStyle.Flat;
checkBox29.Font = new Font("Franklin Gothic Medium", 10.2F, FontStyle.Regular, GraphicsUnit.Point, 204);
checkBox29.ForeColor = Color.White;
checkBox29.Location = new Point(276, 555);
checkBox29.Name = "checkBox29";
checkBox29.RightToLeft = RightToLeft.No;
checkBox29.Size = new Size(76, 58);
checkBox29.TabIndex = 38;
checkBox29.Text = "↹ TAB";
checkBox29.UseVisualStyleBackColor = false;
checkBox29.CheckedChanged += checkBox29_CheckedChanged;
//
// button1
//
button1.BackgroundImage = (Image)resources.GetObject("button1.BackgroundImage");
button1.BackgroundImageLayout = ImageLayout.Stretch;
button1.FlatAppearance.BorderColor = Color.White;
button1.FlatStyle = FlatStyle.Popup;
button1.Location = new Point(311, 0);
button1.Name = "button1";
button1.Size = new Size(34, 40);
button1.TabIndex = 39;
button1.UseVisualStyleBackColor = true;
button1.Click += button1_Click_1;
//
// button2
//
button2.FlatAppearance.BorderSize = 0;
button2.FlatStyle = FlatStyle.Flat;
button2.Location = new Point(152, 624);
button2.Name = "button2";
button2.Size = new Size(51, 29);
button2.TabIndex = 40;
button2.Text = "Цвет";
button2.UseVisualStyleBackColor = true;
button2.Click += button2_Click;
button2.Leave += button2_Leave;
//
// label2
//
label2.AutoSize = true;
label2.Location = new Point(406, 508);
label2.Name = "label2";
label2.Size = new Size(50, 20);
label2.TabIndex = 41;
label2.Text = "label2";
//
// infill
//
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(354, 660);
Controls.Add(label2);
Controls.Add(button2);
Controls.Add(button1);
Controls.Add(checkBox29);
Controls.Add(checkBox28);
Controls.Add(checkBox27);
Controls.Add(checkBox26);
Controls.Add(checkBox25);
Controls.Add(checkBox24);
Controls.Add(checkBox23);
Controls.Add(checkBox22);
Controls.Add(checkBox13);
Controls.Add(label1);
Controls.Add(checkBox21);
Controls.Add(checkBox20);
Controls.Add(checkBox19);
Controls.Add(checkBox18);
Controls.Add(checkBox17);
Controls.Add(checkBox16);
Controls.Add(checkBox15);
Controls.Add(checkBox14);
Controls.Add(textBox2);
Controls.Add(checkBox12);
Controls.Add(checkBox9);
Controls.Add(checkBox6);
Controls.Add(textBox9);
Controls.Add(checkBox5);
Controls.Add(checkBox10);
Controls.Add(textBox8);
Controls.Add(checkBox11);
Controls.Add(textBox6);
Controls.Add(textBox7);
Controls.Add(textBox3);
Controls.Add(checkBox7);
Controls.Add(checkBox4);
Controls.Add(textBox5);
Controls.Add(checkBox8);
Controls.Add(textBox4);
Controls.Add(checkBox3);
Controls.Add(checkBox2);
Controls.Add(textBox1);
Controls.Add(checkBox1);
Controls.Add(menuStrip1);
FormBorderStyle = FormBorderStyle.FixedSingle;
Icon = (Icon)resources.GetObject("$this.Icon");
MainMenuStrip = menuStrip1;
Margin = new Padding(3, 4, 3, 4);
MaximizeBox = false;
Name = "infill";
Opacity = 0.94D;
SizeGripStyle = SizeGripStyle.Hide;
Text = "заполнитель | Ctrl+Alt+V";
menuStrip1.ResumeLayout(false);
menuStrip1.PerformLayout();
ResumeLayout(false);
PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox checkBox2;
private System.Windows.Forms.CheckBox checkBox3;
private System.Windows.Forms.CheckBox checkBox4;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.CheckBox checkBox5;
private System.Windows.Forms.TextBox textBox3;
private System.Windows.Forms.CheckBox checkBox6;
private System.Windows.Forms.TextBox textBox6;
private System.Windows.Forms.CheckBox checkBox7;
private System.Windows.Forms.TextBox textBox5;
private System.Windows.Forms.CheckBox checkBox8;
private System.Windows.Forms.TextBox textBox4;
private System.Windows.Forms.CheckBox checkBox9;
private System.Windows.Forms.TextBox textBox9;
private System.Windows.Forms.CheckBox checkBox10;
private System.Windows.Forms.TextBox textBox8;
private System.Windows.Forms.CheckBox checkBox11;
private System.Windows.Forms.TextBox textBox7;
private System.Windows.Forms.CheckBox checkBox12;
private System.Windows.Forms.MenuStrip menuStrip1;
private System.Windows.Forms.ToolStripMenuItem File;
private System.Windows.Forms.ToolStripComboBox Profiles;
private System.Windows.Forms.CheckBox checkBox14;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem;
private System.Windows.Forms.ToolStripComboBox Hotkeys;
private System.Windows.Forms.ToolStripMenuItem createProfileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem deleteProfileToolStripMenuItem;
private System.Windows.Forms.CheckBox checkBox15;
private System.Windows.Forms.CheckBox checkBox16;
private System.Windows.Forms.CheckBox checkBox17;
private System.Windows.Forms.CheckBox checkBox18;
private System.Windows.Forms.CheckBox checkBox19;
private System.Windows.Forms.CheckBox checkBox20;
private System.Windows.Forms.CheckBox checkBox21;
private ToolStripMenuItem toolStripMenuItem1;
private ToolStripSeparator toolStripMenuItem3;
private Label label1;
private ToolStripSeparator fileToolStripMenuItem;
private ToolStripMenuItem aboutToolStripMenuItem;
private CheckBox checkBox13;
private CheckBox checkBox22;
private CheckBox checkBox23;
private CheckBox checkBox24;
private CheckBox checkBox25;
private CheckBox checkBox26;
private CheckBox checkBox27;
private CheckBox checkBox28;
private CheckBox checkBox29;
private Button button1;
private Button button2;
private Label label2;
}
}
Ссылки на скачивание
Русская версия
.NET Framework (868KB)
SHA256 Hash:
96C09C4A73A1C6DB13D289C2B212E26F7F48FE80A2D6B5E8864DD2AE922AF8A3
Portable (138MB)
SHA256 Hash:
8296E871ACC082682FFA6F8D4C1B7D1C6881AE174CD8C526B221157A6DCC7AE9
English version
.NET Framework (868KB)
SHA256 Hash:
41622C6AA267562CA56F331A6A8BF37EB09664C6775518F4C9A106A31023B1D7
Portable (138MB)
SHA256 Hash:
49BAA7D4AA288DD349CF94D1C79F5AF6AE7A68629D5078832FA3CD49801C7FB7
GitVerse: https://gitverse.ru/aremys/infill
P.S. полгода назад я выкладывал похожий проект typewriter, который можно считать первой и немного сыроватой версией "заполнителя". "Машинистка" хоть и во многом проще - зато с ней удобнее работать над многострочными вставками и вводит она по клику мыши, а не по хоткею. Я думал над совмещением обеих программ в одной, но в итоге решил отказаться от этой идеи.
Для пользователей Linux - есть версия typewriter на C++, так же с открытым кодом и бесплатным скачиванием. Портировать infill я пока не собираюсь; если есть желание - можете помочь с этим, все исходники открыты.
И да, конечно же, я знаю про KeePass - бесплатный кросс-платформенный менеджер паролей. Можете пользоваться им, если находите его более удобным.
С наступающим 2025!