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

2021-07-15 07:58:13 字數 1597 閱讀 4672

摘自《31天學會crm專案開發

使用c#呼叫windows api使程式模擬鍵盤輸入,也可模擬按下快捷鍵。本例中,單擊「模擬輸入」按鈕,可錄入字元「abcde123456」,單擊「ctrl+v」按鈕可實現貼上功能,效果如圖16-2所示。

主要開發步驟如下:

(1)    引用windows api函式keybd_event(),通過它可模擬鍵盤錄入。

**片段16-12

[dllimport("user32.dll")]

private static extern void keybd_event(

byte bvk, byte bscan, uint dwflags, int dwextrainfo);

(2)    定義字典keycodedic,用於儲存常用虛擬鍵碼,比如點、橫槓、方向鍵等。

**片段16-13

dictionarykeycodedic;

keycodedic = new dictionary();

keycodedic.add("a", 0x41);

keycodedic.add("b", 0x42);

……keycodedic.add(".", 110);

keycodedic.add("left", 0x25);

keycodedic.add("up", 0x26);

keycodedic.add("right", 0x27);

keycodedic.add("down", 40);

keycodedic.add("-", 0x6d);

(3)    片段16-14演示了模擬鍵盤錄入字母和數字的過程,所錄入的字元必須先在keycodedic中定義。模擬鍵盤錄入時不能連續不間斷的錄入,如果兩次錄入的時間過短且內容一致可能會導致後一次錄入無效,如行6所示。

**片段16-14

public static bool input(string str)

return false;

}

(4)    片段16-15演示了傳送組合鍵ctrl+v的方法,0x11表示ctrl鍵,0x56表示v鍵,keyeventf_keyup是乙個常量,它的值是0x0002,行4表示按下v鍵,行5-6表示鬆開v鍵。

**片段16-15

public static void ctrlv ()

(5)    片段16-16演示了模擬回車鍵方法,行3表示按下回車鍵,行4表示中斷50毫秒,行5表示釋放回車鍵,行3-5的作用在於模擬「人工」按下回車鍵,按下和釋放必須有一段時間,否則按鍵太快會被系統忽略。

**片段16-16

public static void enter()

WPF 模擬UI 鍵盤錄入

開發winform 應用程式時可以利用sendkeys 類方便的模擬鍵盤錄入操作。那麼在wpf 中如何為控制項實現鍵盤模擬呢?本篇將使用wpf sendkeys 實現和winform 中相同的效果。首先將wpfsendkeys.dll 加入到專案references 中,在xaml 中加入兩個tex...

C 模擬鍵盤事件

c 模擬鍵盤事件 public partial class form1 form dllimport user32.dll public static extern intptr findwindow string lpclassname,string lpwindowname 匯入尋找window...

VB之SendKeys鍵盤模擬

vb sendkeys語句詳解 大家在vb6中都用過sendkeys,幕通過傳送鍵盤的事件間接地控制外部程式,是有遙控之說。我在vb7中卻發現這個不能用了,也就不了了之,後來一次在查閱msdn的時候竟看到了這個,是以嘗試了一下,竟然舊貌新顏,還是一樣好用。主要是在system.winforms族中找...