Как стать автором
Обновить

typewriter: бесплатная программа, которая введёт любой текст за вас

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров14K

Эта статья поможет сэкономить время тем, кто сталкивается с подобными ситуациями - когда нужно перенести некоторые количества текста в такие места, куда он простым буфером обмена не переносится, например - в remote console виртуального или физического сервера, как Proxmox или iBMC / iLO.

Аналогичное решение "ClickPaste" (с гитхаба) показалось мне чуть менее удобным - захотелось доработать идею и сделать ввод более функциональным и наглядным.

Особенности моей реализации:
• запуск из одиночного исполняемого файла (portable) или из легковесного архива;
• многострочный ввод (симулирует нажатие клавиши enter между строк);
• редактирование и превью в окне ввода;
• режим медленного ввода;
• русская локализация

При нажатии на кнопку "Type for me!", программа переключится на предыдущее активное окно и симулирует либо быстрый ввод, либо с задержками между символами при отмеченном чекбоксе "Slow mode". Закрытие окна программы немедленно прекращает её выполнение.

Исходный код (C#)
using System.Text.RegularExpressions;

namespace typewriter
{
    public partial class typewriter : Form
    {
        public typewriter()
        {
            InitializeComponent();
        }

        // Обработчик события для закрытия формы
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            base.OnFormClosing(e);

            // Останавливаем выполнение программы при закрытии окна
            Environment.Exit(0);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string inputText = textBox1.Text;

            // Переключаемся на предыдущее активное окно (Alt + Tab)
            SendKeys.SendWait("%{TAB}");

            // Задержка на время переключения окна
            Thread.Sleep(1500); // полторы секунды

            // Обработка текста
            foreach (char c in inputText)
            {

                if (c == '\n') // Если символ - перенос строки
                {
                    // Ничего не делаем, чтобы заблокировать лишние переносы строки
                }
                else
                {
                    if (checkBox1.Checked) // Медленный режим
                    {
                        // Экранируем проблемные знаки
                        string txt = Regex.Replace(c.ToString(), "[+^%~()]", "{$0}");
                        SendKeys.SendWait(txt);
                        Thread.Sleep(100); // 100 миллисекунд между символами, если чекбокс включен
                    }
                    else
                    {
                        string txt = Regex.Replace(c.ToString(), "[+^%~()]", "{$0}");
                        SendKeys.SendWait(txt);
                    }
                }
            }
            if (checkBox2.Checked) // Заканчивать клавишей "ВВОД"
            {
                SendKeys.SendWait("{ENTER}");
            }
        }
        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            this.TopMost = checkBox3.Checked; //Поверх всех окон
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Clear(); // Очистить
        }
    }
}

Ссылки на скачивание

Microsoft Windows
.exe file, 69MB
English

typewriter.exe

SHA256 hash:

72AB75E32708412906C83F5907DF911886D892E1684C6AFD50D5C0ACCC196760
Хеш-суммы в два клика

Русский

typewriter-ru.exe

SHA256 hash:

CC9A0E05DEE1C65B2951AD687E5B5C515224FBDF57BD5805CC3FC64108188690
Хеш-суммы в два клика

7Zip archive, 115KB
English

typewriter.7z

SHA256 hash:

7530621FAE2A6340381E6DD22C4717027A313319C4A826F7772DB573F38E7ABB
Хеш-суммы в два клика

Русский

typewriter-ru.7z

SHA256 hash:

B7835A7F341468D6A2AE494406B232BDDC365A597B2DACBC9B929ED161191B84
Хеш-суммы в два клика

edit 27.06:

Всем спасибо за обратную связь! Создал проект на GitVerse: https://gitverse.ru/aremys/typewriter

Версия для десктопа Linux (на базе KDE) - в процессе разработки. Процесс фоновый - не ждите слишком скоро.

Теги:
Хабы:
+18
Комментарии19

Публикации

Истории

Работа

Ближайшие события