繁体   English   中英

将字符串转换为SendKeys.Send()格式的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM