[英]Converting a string into SendKeys.Send() formatted string
我有什么聪明而整洁的方法来猜测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 {+} {^} {%} {~} {(} {)} {{} {}}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.