WPF 模擬UI 鍵盤錄入

2022-01-31 03:38:19 字數 1979 閱讀 8910

開發winform 應用程式時可以利用sendkeys 類方便的模擬鍵盤錄入操作。那麼在wpf 中如何為控制項實現鍵盤模擬呢?本篇將使用wpf sendkeys 實現和winform 中相同的效果。

首先將wpfsendkeys.dll 加入到專案references 中,在xaml 中加入兩個textbox 和乙個button 如下**。

<

window x:

class

="wpkeyboard.mainwindow"

xmlns

=""xmlns:x

=""title

="mainwindow"

loaded

="window_loaded"

keydown

="window_keydown"

x:name

="mainwin"

height

="350"

width

="525">

<

grid

>

<

textbox x:

name

="tb1"

fontsize

="50"

margin

="73,12,84,218" />

<

textbox x:

name

="tb2"

fontsize

="50"

margin

="73,119,84,117" />

<

button x:

name

="btn"

content

="auto click and change font color"

click

="btn_click"

margin

="73,229,84,36" />

grid

>

window

>

開啟c#程式,新增system.windows.input.test 命名空間。定義sendtouithread 方法用於將鍵盤指令傳送到wpf 控制項上。在window_loaded 中通過呼叫sendtouithread 方法向textbox 中逐一寫入"hello world!" 字元,並對字元進行拷貝,最後實現自動點選button 完成更換字型顏色的操作。其中字串拷貝工作是通過判斷模擬鍵盤輸入的內容為"control+c",即將字串拷貝到第二個textbox 中。

using system;

using system.threading;

using system.windows;

using system.windows.input;

using system.windows.input.test;

using system.windows.media;

using system.windows.threading;

namespace wpkeyboard

private void sendtouithread(uielement element, string text)

),dispatcherpriority.input);}

private void btn_click(object sender, routedeventargs e)

private void window_loaded(object sender, routedeventargs e)

");});

}private void window_keydown(object sender, keyeventargs e)}}

}

程式執行後無需點選任何按鍵,程式自動完成圖中操作。

C 拓展練習之模擬鍵盤錄入

摘自 31天學會crm專案開發 使用c 呼叫windows api使程式模擬鍵盤輸入,也可模擬按下快捷鍵。本例中,單擊 模擬輸入 按鈕,可錄入字元 abcde123456 單擊 ctrl v 按鈕可實現貼上功能,效果如圖16 2所示。主要開發步驟如下 1 引用windows api函式keybd e...

文字框模擬鍵盤輸入 WPF

title wpf模擬鍵盤輸入相關問題 author kagula date 2015 11 02 允許textbox輸入中文 ime on,預設狀態 禁止textbox輸入中文 ime off inputmethod.isinputmethodenabled false 指定預設輸入法為中文 im...

WPF非同步更新UI

因為你在乙個非ui執行緒裡開啟了乙個ui執行緒,所有需要用dispatcher.invokeasync,切換到ui執行緒 詳細的解釋 我們需要通過訪問window.dispatcher屬性,然後呼叫invoke方法 僅此而已 好吧,那麼到底什麼是dispatcher呢?從字面上來說,它是所謂的接線員...