2013-05-20 83 views
2

我在輸入某些特殊字符SendKey.Send("[email protected]#$%^&*()_+|")時遇到了一些問題。SendKey將不會鍵入某些字符

當我嘗試輸入[email protected]#$%^&*()_+|時,只輸入[email protected]#$*_|

有沒有辦法解決這個問題?由於我第一次收集字符串到ListBox,我也可以在實際輸入之前替換這些字符。只是想知道是否有其他解決方法。

對於參考,這是我最後這樣做:

private string textToPseudo(string text) 
{ 
    string temp = string.Empty; 

    foreach (char c in text) 
    { 
     if (c == ' ') 
      temp += " "; 
     else 
      temp += "{" + c + "}"; 
    } 
    return temp; 
} 
+0

如果你改變順序做同樣的章程仍然沒有通過(比如,如果你在'()'之間放了一個'!','''會丟失嗎?) –

+0

@Scott Chamberlain,括號仍然沒有出現,但感嘆號確實出現。我注意到'〜'鍵發送返回。 – HelpNeeder

回答

3

某些字符對的SendKeys特殊的意義。例如。 %是Alt鍵,^是Ctrl鍵,+是Shift鍵。你必須用大括號括起{}來使用它們

+0

從文檔:[SendKeys](http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys%28VS.80%29.aspx) –

+0

所以唯一的選擇是替換標誌與來自[SendKeys Class](http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx)的等效命令? – HelpNeeder

+0

不一定 - 你可以用大括號包圍它自己來代替每個標誌。例如,用'{+}'替換'+' – AFischbein