發表文章

目前顯示的是 1月, 2012的文章

SendKeys in WPF

在以往Windows Form的程式開發當中,當要送出鍵盤的相關資料時,會使用SendKeys的方式來處理,例如說要把一個字加到TextBox上這樣;用SendKeys的好處不用去處理當輸入的游標在文字中間的問題,會比像是 TextBox1.Text &= "1" 這樣的方式來的方便些。而到了WPF,沒有SendKeys可以用了,那麼應該怎麼辦呢?在網路上搜尋了一下,可以利用呼叫API的方式來做,可以參考一下下面  SendInput  的說明,所有需要的東西都在裡面了。動作原理大概是下面過程 紀錄要輸入的控制項在畫面上的位置 使用SendInput模擬滑鼠的動作,點擊要輸入的控制項(主要是要取得Focus) 使用SendInput模擬KeyDown的動作 使用 SendInput模擬KeyUp的動作 大概的過程是這樣子了;而我自己的使用方式有點偷懶,直接略過模擬滑鼠的部分,直接傳控制項的參考過去 XDD 下面是目前的程式碼,還沒詳細測試,大致就是上面列出的SendInput中的程式碼了,參考看看了;首先是宣告的部分 #Region   "Const"      Const  INPUT_MOUSE  As   UInt32  = 0      Const  INPUT_KEYBOARD  As   Integer  = 1      Const  INPUT_HARDWARE  As   Integer  = 2      Const  KEYEVENTF_EXTENDEDKEY  As   UInt32  = &H1      Const  KEYEVENTF_KEYUP  As   UInt32  = &H2      Const  KEYEVENTF_UNICODE  As   UInt32  = &H4      Const  KEYEVENTF_SCANCODE  As   UInt32  = &H8      Const  XBUTTON1  As   UInt32  = &H1      Const  XBUTTON2  As   UInt32  = &H2      Const  MOUSEEVENTF_MOVE  As