SendKeys.Send("%"); 不发送“%”符号
    while (true)
    {
        string a2 = @"%%asdf%%";
        foreach (char a in a2)
        {
              SendKeys.Send(a.ToString());
        }
        System.Threading.Thread.Sleep(1000);
    }
    来自MSDN:
加号 (+)、插入符号 (^)、百分号 (%)、波浪号 (~) 和括号 () 对于 SendKeys 具有特殊含义。要指定这些字符之一,请将其括在大括号 ({}) 中。
SendKeys.Send也需要一个字符串。
那么为什么不呢:
string a2 = @"{%}{%}asdf{%}{%}";
SendKeys.Send(a2);