将字符串转换为SendKeys.Send()格式的字符串
本文关键字:字符串 格式 SendKeys 转换 Send | 更新日期: 2023-09-27 18:08:28
是否有任何聪明而整洁的方法来转义string
中的字符,以使其与SendKeys
使用的特定格式兼容?
一开始我以为这样可以:
line = Regex.Replace(line, @"'{{0}", "{{}");
line = Regex.Replace(line, @"'}{0}", "{}}");
但是这行不通,因为它做了两次检查,把语法完全弄乱了。
我该如何处理?
您可以使用一些占位符代替{
和}
,并使用这些占位符创建格式化的结果。最后用{
和}
代替这些占位符。例如:
string PrepareForSendKeys(string input)
{
var specialChars = "+^%~(){}";
var c1 = "[BRACEOPEN]";
var c2 = "[BRACECLOSE]";
specialChars.ToList().ForEach(x =>
{
input = input.Replace(x.ToString(),
string.Format("{0}{1}{2}", c1, x.ToString(), c2));
});
input = input.Replace(c1, "{");
input = input.Replace(c2, "}");
return input;
}
你可以这样使用:
var input = "some string containing + ^ % ~ ( ) { }";
MessageBox.Show(PrepareForSendKeys(input));
结果是:
some string containing {+} {^} {%} {~} {(} {)} {{} {}}