SendKeys, экранирование скобок

Рейтинг: 0Ответов: 1Опубликовано: 05.10.2014

Доброго времени суток.

Есть следующий код:

Char = text.ToCharArray();
for (int i = 0; i < Char.Count(); i++)
{
      SendKeys.SendWait(Char[i].ToString());
}

Все бы хорошо, но когда text (переменная типа string) содержит в себе скобку - вылетает исключение: "Несоответствие между числом групп и разделителей."

Как можно выйти из ситуации?

Ответы

▲ 1Принят

Попробуйте так:

static readonly HashSet<char> charsToEscape =
    { '+', '^', '%', '~', '(', ')', '{', '}', '[', ']' };

static string EscapeIfNeeded(char c)
{
    if (charsToEscape.Contains(c))
        return "{" + c + "}";
    else
        return c.ToString();
}

// ...
foreach (var c in text) // ToCharArray не нужно
    SendKeys.SendWait(EscapeIfNeeded(c));