2014-04-01 23 views
0

我有一個C#代碼,我需要添加按鈕F3的字符串常量,但我沒有任何idea.Its功能鍵..什麼是按鈕F3的C#中的字符串常量

我需要使用這常數到我的TCP IP客戶端代碼。

我正在使用TCP ip Socket。目前我對F3鍵按下Windows代碼中使用TELNET形式的CMD.exe關鍵,但我想讓它變得轉換成客戶端的Socket發送命令..

這裏是我的代碼..

System.Windows.Forms.SendKeys.SendWait("{F3}");//This is for Command Prompt 

這我需要改變成..

byte[] aSpace = Encoding.ASCII.GetBytes("Equivalent of F3"); 
stream.Write(aSpace, 0, aSpace.Length); 

請幫助我..

+1

取決於你正在使用'F3',我能想到的最接近的是['System.Windows.Forms.Keys'](http://msdn.microsoft.com/en-us/ library/system.windows.forms.keys(v = vs.110).aspx)enum,但是如果你沒有使用不適合使用的枚舉的表單。你在尋找'F3'的[掃描碼](http://en.wikipedia.org/wiki/Scancode)嗎? –

+0

@ScottChamberlain先生,我已更新我的帖子..請檢查...謝謝 – Ram

+0

爲什麼不在同一個問題中問你同一類型的兩個問題?你現在對每一個鍵都提出了一個問題嗎? http://stackoverflow.com/questions/22789412/what-is-the-keypress-code-for-tab-button-press – floele

回答

0

F3沒有一個字表示,它被認爲是一個「元」鍵。您將需要重新考慮您的協議並找出處理元鍵表示的方法。

也許你使用佔位符字符串(如{F3} SendKeys使用,或^[ORSSH uses)。也許你想要處理所有的元鍵,然後修改你的協議,這樣你就可以發送字符串和使用某種標題的枚舉值來區分它們。也許創建一個代表「消息」的類並使用像protobuf這樣的序列化庫來處理所有這些東西。

你有很多選項可以打開,但是你需要選擇一個並將它設計成機器間的消息協議。

+0

先生什麼是先生這是做什麼System.Windows.Forms.SendKeys.SendWait(「{F3}」);意思是..是關閉從cmd的TELNET連接。如果是的話,我可以關閉我的套接字客戶端,它會做同樣的工作。 – Ram

+0

它所做的是解析字符串,並檢查它是否看到字符串patern' 「{...}」然後它使用一個查找表來查看字符串「{F3}」代表元鍵「F3」並將元鍵發送給應用程序。 –

相關問題