Type typeForKeywords = Type.GetType("System.Windows.Forms.SendKeys+KeywordVk[], System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Type typeForKeywordItem = Type.GetType("System.Windows.Forms.SendKeys+KeywordVk, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
object objNewKey = Activator.CreateInstance(typeForKeywordItem, "SPACE", 0x20);
Type typeForSendKeys = typeof(SendKeys);
FieldInfo fieldForkeywords = typeForSendKeys.GetField("keywords", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Static);
object objKeys = fieldForkeywords.GetValue(null);
Type typeForlistForKeyword = Type.GetType("System.Collections.Generic.List`1[[System.Windows.Forms.SendKeys+KeywordVk, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
object objForTmpKeyWords = Activator.CreateInstance(typeForlistForKeyword);
MethodInfo mi = typeForlistForKeyword.GetMethod("Add");
foreach (object var in (Array)objKeys)
{
//list.Add(var);
mi.Invoke(objForTmpKeyWords, new object[] { var });
}
//list.Add(key);
mi.Invoke(objForTmpKeyWords, new object[] { objNewKey });
mi = typeForlistForKeyword.GetMethod("ToArray");
object objArray = mi.Invoke(objForTmpKeyWords, null);
fieldForkeywords.SetValue(null, objArray);