-1

我想使用SendKeys.Send-Methode.

the{和 the}有特殊的含义。我的文本确实包含{并且}虽然。

所以我想先转换我的文本。我想过这样的事情:

 static void Main(string[] args)
    {
        string text = "blub{ibu{blab}blab";
        Console.WriteLine(text);
        Console.WriteLine(convertForSendKey(text));
        Console.ReadKey();
    }

    public static string convertForSendKey(string password)
    {
            if (password.Contains('{'))
            {
                string[] parts = password.Split('{');
                string tmp = parts[0];
                for (int i = 1; i < parts.Length; i++)
                {
                    tmp += "{{}" + parts[i];
                }
                password = tmp;
            }
            if (password.Contains('}'))
            {
                string[] parts2 = password.Split('}');
                string tmp2 = parts2[0];
                for (int i = 1; i < parts2.Length; i++)
                {
                    tmp2 += "{}}" + parts2[i];
                }
                password = tmp2;
            }
            return password;
    }

当然它不会那样工作,因为在第二个if它也会转换所有{{}部分,这是它不应该的。

4

2 回答 2

0

尝试{{\{为该符号转义。}}和_\}

此外,您的字符替换代码错误。尝试使用string.Replace.

string one = "abc";
string two = one.Replace("c", " dd");

// two is "ab dd".
于 2013-04-12T15:57:33.963 回答
0

也许是这样的:

static string EscapeChar(char c)
{
    switch (c)
    {
        case '{':
            return "{{}";
        case '}':
            return "{}}";
        default:
            return c.ToString();

    }
}

public static string ConvertForSendKey(string password)
{
    return String.Concat(password.Select(EscapeChar));
}

如果可行,它首先使用 LINQ 扩展方法Select将每个字符投影到其相关字符串上。然后它将Concat所有短字符串粘合在一起。

于 2013-04-12T16:04:15.837 回答