Как установить рандомную задержку между набором символов?

  • Автор темы Автор темы Belwin
  • Дата начала Дата начала

Belwin

Client
Регистрация
30.06.2015
Сообщения
125
Реакции
13
Баллы
18
Насколько я понимаю в экшене "Настройки" браузера для задержки между набором символов можно выбрать только постоянное значение. Например, 200мс. Это же относиться к экшену "Эмуляция клавиатуры". Но можно ли как-то задать задержку в определенном диапазоне, чтобы перед набором каждого символа была рандомная задержка в приделах этого диапазона? К примеру, от 200мс до 250мс? Можно ли это сделать хотя бы с помощью C# сниппета?
 
А зачем? Вы думаете, что сайты считают, сколько времени Вы тратите на заполнение одного поля?
Это можно сделать через С код, стандартными методами нельзя.
 
А зачем? Вы думаете, что сайты считают, сколько времени Вы тратите на заполнение одного поля?
Это можно сделать через С код, стандартными методами нельзя.
Мне нужно в основном для Google и Youtube. Не удивлюсь если Google при той же регистрации gmail учитывает задержки между набором символов. Но с gmail ладно, пока я шаблон для его регистрации писать не собираюсь. По крайней мере в ближайшие дни. Сейчас мне нужно это для Youtube. Я написал шаблон, который собирает определенные данные с YouTube Analytics, многократно вводя поочередно все названия видео, которые есть на канале. Каналов много, как и самих видео. И так как все эти действия происходят в авторизованых аккаунтах, то мне хотелось бы себя дополнительно обезопасить еще и с помощью нормальной эмуляции. А будь у меня возможность между набором каждого символа делать рандомную задержку в указанном диапазоне, я был бы куда спокоен за жизнь своих каналов. Возможно это все излишне, но все больше и больше на моих YouTube каналов появляется автоматизации. Да и мало ли для чего оно еще в будущем может пригодиться.

Если конвертировать экшен "Настройки" браузера с задержкой в 200 мс в C# код, то получиться такой кусок кода:
Код:
Развернуть Свернуть Копировать
instance.SymbolEmulationDelay = 200;

Может, если вам несложно, то вы подскажите, что нужно в него добавить, чтобы задержка между набором каждого символа стала рандомной, и при этом в нужном диапазоне? Например, от 200 мс до 250 мс.
 
Может, если вам несложно, то вы подскажите, что нужно в него добавить, чтобы задержка между набором каждого символа стала рандомной, и при этом в нужном диапазоне? Например, от 200 мс до 250 мс.
C#:
Развернуть Свернуть Копировать
Random rnd = new Random();
instance.SymbolEmulationDelay = rnd.Next(200, 251); // задержка между набором символов, мс
instance.FieldEmulationDelay = rnd.Next(1000, 5000); // задержка между полями ввода, мс
Но это Вам не подойдет, т.к. кубик C# нужно будет втыкать перед каждым кубиком эмуляции клавиатуры и ГЛАВНОЕ задержки между вводом символов будут все равно одинаковые, рандом будет только для каждого поля.
То, что Вам нужно:
C#:
Развернуть Свернуть Копировать
instance.WaitFieldEmulationDelay(); // не знаю, обязательна ли эта строка, но, в принципе, не мешает

string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс

char[] symbol = str.ToArray();
Random rnd = new Random();
for (int i = 0; i < symbol.Count(); i++)
{
    string text = symbol[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    instance.SendText(text, latency);
}

PS. Предлагаю данную тему перенести в раздел "Предложения". Добавить подобный функционал в программу "из коробки".
 
То, что Вам нужно:
C#:
Развернуть Свернуть Копировать
instance.WaitFieldEmulationDelay(); // не знаю, обязательна ли эта строка, но, в принципе, не мешает

string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс

char[] symbol = str.ToArray();
Random rnd = new Random();
for (int i = 0; i < symbol.Count(); i++)
{
    string text = symbol[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    instance.SendText(text, latency);
}

PS. Предлагаю данную тему перенести в раздел "Предложения". Добавить подобный функционал в программу "из коробки".
Спасибо огромное за помощь. Создал новую тему в разделе предложений http://zennolab.com/discussion/threads/randomnaja-zaderzhka-mezhdu-naborom-simvolov.28469/
 
  • Спасибо
Реакции: Dimionix
  • Спасибо
Реакции: phirelli
  • Спасибо
Реакции: boris99
C#:
Развернуть Свернуть Копировать
Random rnd = new Random();
instance.SymbolEmulationDelay = rnd.Next(200, 251); // задержка между набором символов, мс
instance.FieldEmulationDelay = rnd.Next(1000, 5000); // задержка между полями ввода, мс
Но это Вам не подойдет, т.к. кубик C# нужно будет втыкать перед каждым кубиком эмуляции клавиатуры и ГЛАВНОЕ задержки между вводом символов будут все равно одинаковые, рандом будет только для каждого поля.
То, что Вам нужно:
C#:
Развернуть Свернуть Копировать
instance.WaitFieldEmulationDelay(); // не знаю, обязательна ли эта строка, но, в принципе, не мешает

string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс

char[] symbol = str.ToArray();
Random rnd = new Random();
for (int i = 0; i < symbol.Count(); i++)
{
    string text = symbol[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    instance.SendText(text, latency);
}

PS. Предлагаю данную тему перенести в раздел "Предложения". Добавить подобный функционал в программу "из коробки".

C#:
Развернуть Свернуть Копировать
instance.WaitFieldEmulationDelay(); // не знаю, обязательна ли эта строка, но, в принципе, не мешает

string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс

char[] symbol = str.ToArray();
Random rnd = new Random();
for (int i = 0; i < symbol.Count(); i++)
{
    string text = symbol[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    instance.SendText(text, latency);
    if ((text==" ")|| (text==","))
{
latency = rnd.Next(latencyMin*2, latencyMax*3);
System.Threading.Thread.Sleep(latency);
}

}
Немного очеловечил ) типа бот задумался после ввода пробела или запятой, что писать дальше )
 
Немного очеловечил ) типа бот задумался после ввода пробела или запятой, что писать дальше )
Ещё человечнее очеловечил))
Теперь бот эмулирует печатание с ошибками (процент ошибок можно задать), которые через небольшое рандомное время удаляет Backspace'ом и вводит правильный символ.
Ошибки - это буквы стоящие рядом с правильной буквой на клавиатуре (RU + EN).
C#:
Развернуть Свернуть Копировать
string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 5; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "1", "{ц|ф}", "{й|у|ф|ы}", "{ц|к|ы|в}", "{у|е|в|а}", "{к|н|а|п}", "{е|г|п|р}", "{н|ш|р|о}", "{г|щ|о|л}", "{ш|з|л|д}", "{щ|х|д|ж}", "{з|ъ|ж|э}", "{х|э}", "{й|ы|я}", "{ц|у|ф|в|я|ч}", "{у|к|ы|а|ч|с}", "{к|е|в|п|с|м}", "{е|н|а|р|м|и}", "{н|г|п|о|и|т}", "{г|ш|р|л|т|ь}", "{ш|щ|о|д|ь|б}", "{щ|з|л|ж|б|ю}", "{з|х|д|э|ю}", "{х|ъ|ж}", "{ф|ы|ч}", "{ы|в|я|с}", "{в|а|ч|м}", "{а|п|с|и}", "{п|р|м|т}", "{р|о|и|ь}", "{о|л|т|б}", "{л|д|ь|ю}", "{д|ж|б}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}
 
Ещё человечнее очеловечил))
Теперь бот эмулирует печатание с ошибками (процент ошибок можно задать), которые через небольшое рандомное время удаляет Backspace'ом и вводит правильный символ.
Ошибки - это буквы стоящие рядом с правильной буквой на клавиатуре (RU + EN).
C#:
Развернуть Свернуть Копировать
string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 5; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "1", "{ц|ф}", "{й|у|ф|ы}", "{ц|к|ы|в}", "{у|е|в|а}", "{к|н|а|п}", "{е|г|п|р}", "{н|ш|р|о}", "{г|щ|о|л}", "{ш|з|л|д}", "{щ|х|д|ж}", "{з|ъ|ж|э}", "{х|э}", "{й|ы|я}", "{ц|у|ф|в|я|ч}", "{у|к|ы|а|ч|с}", "{к|е|в|п|с|м}", "{е|н|а|р|м|и}", "{н|г|п|о|и|т}", "{г|ш|р|л|т|ь}", "{ш|щ|о|д|ь|б}", "{щ|з|л|ж|б|ю}", "{з|х|д|э|ю}", "{х|ъ|ж}", "{ф|ы|ч}", "{ы|в|я|с}", "{в|а|ч|м}", "{а|п|с|и}", "{п|р|м|т}", "{р|о|и|ь}", "{о|л|т|б}", "{л|д|ь|ю}", "{д|ж|б}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}
Если переменная состоит из нескольких строк, например

mail.bk.ru
mail2.bk.ru
mail3.bk.ru

то при вводе этой переменной с помощью вышеуказанного кода она записывается в одну строку - mail.bk.rumail2.bk.rumail3.bk.ru. Если вводить с помощью стандартного кубика - то все норм, пишется в столбик как и должно. Подскажите пожалуйста, как сделать так, чтобы код вводил переменную столбиком.
 
А зачем? Вы думаете, что сайты считают, сколько времени Вы тратите на заполнение одного поля?
Это можно сделать через С код, стандартными методами нельзя.
есть сайты у которых стоит акамаи но в него входят разные параметры кто то и мышку отслеживает
 
еще вопрос - как сделать чтобы с цифрами также было (например ввожу в поле логин цифры телефона)
добавил цифры по аналогии с буквами - но ошибку выдает
"Выполнение действия CSharp OwnCode: Ввод логина - печатание с ошибками. [Строка: 33; Столбец: 20] Индекс находился вне границ массива."

C#:
Развернуть Свернуть Копировать
string str = project.Variables["TabTelefon"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 15; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю",
    "0","1", "2", "3", "4", "5", "6", "7", "8", "9"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "{1|2}", "{3|5|7|9}", "{2|4|6|8}", "{1|3|5|7}", "{3|4|7|8}", "{2|3|5|7}", "{1|2|4|5}", "{0|2|4|6}", "{0|1|3|4}", "{9|7|1|0}", "{8|6|2|0}", "{0|9}", "{7|1|5}", "{2|9|7|5|6|1}", "{0|1|4|5|8|9}", "{2|1|4|3|7|6}", "{6|0|5|1|4|2}", "{9|1|8|2|7|3}", "{8|2|7|3|6|4}", "{7|3|6|4|5|3}", "{6|5|4|7|1|0}", "{1|9|3|7|8}", "{5|0|3}", "{8|9|2}", "{3|6|8|0}", "{4|6|7|0}", "{5|1|6|2}", "{7|4|2|3}", "{8|1|4|7}", "{9|8|0|2}", "{0|5|7|2}", "{2|8|4}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}
 
еще вопрос - как сделать чтобы с цифрами также было (например ввожу в поле логин цифры телефона)
добавил цифры по аналогии с буквами - но ошибку выдает
"Выполнение действия CSharp OwnCode: Ввод логина - печатание с ошибками. [Строка: 33; Столбец: 20] Индекс находился вне границ массива."

C#:
Развернуть Свернуть Копировать
string str = project.Variables["TabTelefon"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 15; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю",
    "0","1", "2", "3", "4", "5", "6", "7", "8", "9"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "{1|2}", "{3|5|7|9}", "{2|4|6|8}", "{1|3|5|7}", "{3|4|7|8}", "{2|3|5|7}", "{1|2|4|5}", "{0|2|4|6}", "{0|1|3|4}", "{9|7|1|0}", "{8|6|2|0}", "{0|9}", "{7|1|5}", "{2|9|7|5|6|1}", "{0|1|4|5|8|9}", "{2|1|4|3|7|6}", "{6|0|5|1|4|2}", "{9|1|8|2|7|3}", "{8|2|7|3|6|4}", "{7|3|6|4|5|3}", "{6|5|4|7|1|0}", "{1|9|3|7|8}", "{5|0|3}", "{8|9|2}", "{3|6|8|0}", "{4|6|7|0}", "{5|1|6|2}", "{7|4|2|3}", "{8|1|4|7}", "{9|8|0|2}", "{0|5|7|2}", "{2|8|4}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}
Привет.
Поправил вашу ошибку. Теперь все работает.)

Имитация ошибок при вводе текста и цифр:
Развернуть Свернуть Копировать
string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 55; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю",
    "0","1", "2", "3", "4", "5", "6", "7", "8", "9"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "1", "{ц|ф}", "{й|у|ф|ы}", "{ц|к|ы|в}", "{у|е|в|а}", "{к|н|а|п}", "{е|г|п|р}", "{н|ш|р|о}", "{г|щ|о|л}", "{ш|з|л|д}", "{щ|х|д|ж}", "{з|ъ|ж|э}", "{х|э}", "{й|ы|я}", "{ц|у|ф|в|я|ч}", "{у|к|ы|а|ч|с}", "{к|е|в|п|с|м}", "{е|н|а|р|м|и}", "{н|г|п|о|и|т}", "{г|ш|р|л|т|ь}", "{ш|щ|о|д|ь|б}", "{щ|з|л|ж|б|ю}", "{з|х|д|э|ю}", "{х|ъ|ж}", "{ф|ы|ч}", "{ы|в|я|с}", "{в|а|ч|м}", "{а|п|с|и}", "{п|р|м|т}", "{р|о|и|ь}", "{о|л|т|б}", "{л|д|ь|ю}", "{д|ж|б}",
    "{1|2}", "{3|5|7|9}", "{2|4|6|8}", "{1|3|5|7}", "{3|4|7|8}", "{2|3|5|7}", "{1|2|4|5}", "{0|2|4|6}", "{0|1|3|4}", "{9|7|1|0}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}

Приложил шаблон ↓
 

Вложения

Благодарю djaga - все работает !
 
Привет.
Поправил вашу ошибку. Теперь все работает.)

Имитация ошибок при вводе текста и цифр:
Развернуть Свернуть Копировать
string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 55; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю",
    "0","1", "2", "3", "4", "5", "6", "7", "8", "9"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "1", "{ц|ф}", "{й|у|ф|ы}", "{ц|к|ы|в}", "{у|е|в|а}", "{к|н|а|п}", "{е|г|п|р}", "{н|ш|р|о}", "{г|щ|о|л}", "{ш|з|л|д}", "{щ|х|д|ж}", "{з|ъ|ж|э}", "{х|э}", "{й|ы|я}", "{ц|у|ф|в|я|ч}", "{у|к|ы|а|ч|с}", "{к|е|в|п|с|м}", "{е|н|а|р|м|и}", "{н|г|п|о|и|т}", "{г|ш|р|л|т|ь}", "{ш|щ|о|д|ь|б}", "{щ|з|л|ж|б|ю}", "{з|х|д|э|ю}", "{х|ъ|ж}", "{ф|ы|ч}", "{ы|в|я|с}", "{в|а|ч|м}", "{а|п|с|и}", "{п|р|м|т}", "{р|о|и|ь}", "{о|л|т|б}", "{л|д|ь|ю}", "{д|ж|б}",
    "{1|2}", "{3|5|7|9}", "{2|4|6|8}", "{1|3|5|7}", "{3|4|7|8}", "{2|3|5|7}", "{1|2|4|5}", "{0|2|4|6}", "{0|1|3|4}", "{9|7|1|0}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}

Приложил шаблон ↓
объясните не понимающему в C#

97928

почему не хочет выполнять, если я цифры в переменные вставил? чтобы из меню можно было настраивать задержки
 
почему не хочет выполнять, если я цифры в переменные вставил? чтобы из меню можно было настраивать задержки
Нужно сконвертировать эти переменные в числовые.
На форуме есть примеры методов конвертации, попробуйте поискать.
 
  • Спасибо
Реакции: Krende1
Нужно сконвертировать эти переменные в числовые.
На форуме есть примеры методов конвертации, попробуйте поискать.
97929

сконвертировать получилось, а как теперь вставить в первоночальный код?

методом тыка не получилось
97930
 
Привет.
Поправил вашу ошибку. Теперь все работает.)

Имитация ошибок при вводе текста и цифр:
Развернуть Свернуть Копировать
string str = project.Variables["Text"].Value; // переменная с текстом
int latencyMin = 15; // минимальная задержка для ввода одного символа, мс
int latencyMax = 501; // максимальная задержка для ввода одного символа, мс
int percentE = 55; // процент вероятных ошибок (на конечный результат не влияет)
Random rnd = new Random();

string[] ss = {
    "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
    "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
    "Ё", "Й", "Ц", "У", "К", "Е", "Н", "Г", "Ш", "Щ", "З", "Х", "Ъ", "Ф", "Ы", "В", "А", "П", "Р", "О", "Л", "Д", "Ж", "Э", "Я", "Ч", "С", "М", "И", "Т", "Ь", "Б", "Ю",
    "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю",
    "0","1", "2", "3", "4", "5", "6", "7", "8", "9"
};

string[] ssE = {
    "{W|A}", "{Q|E|A|S}", "{W|R|S|D}", "{E|T|D|F}", "{R|Y|F|G}", "{T|U|G|H}", "{Y|I|H|J}", "{U|O|J|K}", "{I|P|K|L}", "{O|L}", "{Q|S|Z}", "{W|E|A|D|Z|X}", "{E|R|S|F|X|C}", "{R|T|D|G|C|V}", "{T|Y|F|H|V|B}", "{Y|U|G|J|B|N}", "{U|I|H|K|N|M}", "{I|O|J|L|M}", "{O|P|K}", "{A|S|X}", "{S|D|Z|C}", "{D|F|X|V}", "{F|G|C|B}", "{G|H|V|N}", "{H|J|B|M}", "{J|K|N}",
    "{w|a}", "{q|e|a|s}", "{w|r|s|d}", "{e|t|d|f}", "{r|y|f|g}", "{t|u|g|h}", "{y|i|h|j}", "{u|o|j|k}", "{i|p|k|l}", "{o|l}", "{q|s|z}", "{w|e|a|d|z|x}", "{e|r|s|f|x|c}", "{r|t|d|g|c|v}", "{t|y|f|h|v|b}", "{y|u|g|j|b|n}", "{u|i|h|k|n|m}", "{i|o|j|l|m}", "{o|p|k}", "{a|s|x}", "{s|d|z|c}", "{d|f|x|v}", "{f|g|c|b}", "{g|h|v|n}", "{h|j|b|m}", "{j|k|n}",
    "!", "{Ц|Ф}", "{Й|У|Ф|Ы}", "{Ц|К|Ы|В}", "{У|Е|В|А}", "{К|Н|А|П}", "{Е|Г|П|Р}", "{Н|Ш|Р|О}", "{Г|Щ|О|Л}", "{Ш|З|Л|Д}", "{Щ|Х|Д|Ж}", "{З|Ъ|Ж|Э}", "{Х|Э}", "{Й|Ы|Я}", "{Ц|У|Ф|В|Я|Ч}", "{У|К|Ы|А|Ч|С}", "{К|Е|В|П|С|М}", "{Е|Н|А|Р|М|И}", "{Н|Г|П|О|И|Т}", "{Г|Ш|Р|Л|Т|Ь}", "{Ш|Щ|О|Д|Ь|Б}", "{Щ|З|Л|Ж|Б|Ю}", "{З|Х|Д|Э|Ю}", "{Х|Ъ|Ж}", "{Ф|Ы|Ч}", "{Ы|В|Я|С}", "{В|А|Ч|М}", "{А|П|С|И}", "{П|Р|М|Т}", "{Р|О|И|Ь}", "{О|Л|Т|Б}", "{Л|Д|Ь|Ю}", "{Д|Ж|Б}",
    "1", "{ц|ф}", "{й|у|ф|ы}", "{ц|к|ы|в}", "{у|е|в|а}", "{к|н|а|п}", "{е|г|п|р}", "{н|ш|р|о}", "{г|щ|о|л}", "{ш|з|л|д}", "{щ|х|д|ж}", "{з|ъ|ж|э}", "{х|э}", "{й|ы|я}", "{ц|у|ф|в|я|ч}", "{у|к|ы|а|ч|с}", "{к|е|в|п|с|м}", "{е|н|а|р|м|и}", "{н|г|п|о|и|т}", "{г|ш|р|л|т|ь}", "{ш|щ|о|д|ь|б}", "{щ|з|л|ж|б|ю}", "{з|х|д|э|ю}", "{х|ъ|ж}", "{ф|ы|ч}", "{ы|в|я|с}", "{в|а|ч|м}", "{а|п|с|и}", "{п|р|м|т}", "{р|о|и|ь}", "{о|л|т|б}", "{л|д|ь|ю}", "{д|ж|б}",
    "{1|2}", "{3|5|7|9}", "{2|4|6|8}", "{1|3|5|7}", "{3|4|7|8}", "{2|3|5|7}", "{1|2|4|5}", "{0|2|4|6}", "{0|1|3|4}", "{9|7|1|0}"
};

string strE = str;
if (percentE > 0) {
    for (int i = 0; i < strE.Length; i++) {
        if (rnd.Next(100) <= percentE) {
            string s = strE[i].ToString();
            for (int j = 0; j < ss.Count(); j++) {
                if (s == ss[j])
                    strE = strE.Remove(i, 1).Insert(i, TextProcessing.Spintax(ssE[j]));
            }
        }
    }
}

instance.WaitFieldEmulationDelay();
for (int i = 0; i < str.Count(); i++) {
    string s = str[i].ToString();
    string sE = strE[i].ToString();
    int latency = rnd.Next(latencyMin, latencyMax);
    if (s == " " || s == "," || s == ".")
        latency = latency * 2;
    if (s == sE)
        instance.SendText(s, latency);
    else {
        instance.SendText(sE, latency);
        Thread.Sleep(latency * 3);
        instance.SendText("{BACKSPACE}", latency);
        Thread.Sleep(latency * 2);
        instance.SendText(s, latency);
    }
}

Приложил шаблон ↓
уважаемый, а можно еще добавить эмодзи как-то? делаю вставку контента через данный сниппет, бывают в тексте эмодзи он их пропускает...
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)