Программа пригодится в работе с 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!
ссылка на оригинал статьи https://habr.com/ru/articles/869462/
Добавить комментарий