“{”;和“}”;SendKeys.Send-Methode转换器

本文关键字:Send-Methode 转换器 SendKeys | 更新日期: 2023-09-27 18:09:06

我想使用SendKeys.Send-Methode

{}具有特殊的意义。我的文本确实包含{}虽然。

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

 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中它也会转换所有的{{}部分,这是它不应该的

“{”;和“}”;SendKeys.Send-Methode转换器

可以这样写:

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将所有短字符串粘合在一起。

尝试 {{ '{ 进行符号转义。 }} '}

也是一样

同样,你有一个不好的字符替换代码。尝试使用string.Replace .

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