“{”;和“}”;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
中它也会转换所有的{{}
部分,这是它不应该的
可以这样写:
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".