C#實現的三種方式實現模擬鍵盤按鍵
模擬按鍵在.Net中有三種方式實現。
第一種方式:System.Windows.Forms.SendKeys
組合鍵:Ctrl = ^ 、Shift = + 、Alt = %
模擬按鍵:A
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
SendKeys.Send("{A}");
}
模擬組合鍵:CTRL + A
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
SendKeys.Send("^{A}");
}
SendKeys.Send // 非同步模擬按鍵(不阻塞UI)
SendKeys.SendWait // 同步模擬按鍵(會阻塞UI直到對方處理完訊息後返回)
第二種方式:keybd_event
模擬按鍵:A
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
keybd_event(Keys.A, 0, 0, 0);
}
模擬組合鍵:CTRL + A
public const int KEYEVENTF_KEYUP = 2;
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
keybd_event(Keys.ControlKey, 0, 0, 0);
keybd_event(Keys.A, 0, 0, 0);
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);
}
上面兩種方式都是全域性範圍呢,現在介紹如何對單個視窗進行模擬按鍵
模擬按鍵:A / 兩次
[DllImport("user32.dll", EntryPoint = "PostMessageA", SetLastError = true)]
public static extern int PostMessage(IntPtr hWnd, int Msg, Keys wParam, int lParam);
public const int WM_CHAR = 256;
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
PostMessage(textBox1.Handle, 256, Keys.A, 2);
}
模擬組合鍵:CTRL + A
如下方式可能會失效,所以最好採用上述兩種方式
public const int WM_KEYDOWN = 256;
public const int WM_KEYUP = 257;
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
keybd_event(Keys.ControlKey, 0, 0, 0);
keybd_event(Keys.A, 0, 0, 0);
PostMessage(webBrowser1.Handle, WM_KEYDOWN, Keys.A, 0);
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);
}
相關文章
- 12.2 實現鍵盤模擬按鍵
- js實現阻止指定鍵盤按鍵效果JS
- C#實現滑鼠、鍵盤鉤子C#
- SSK:超級鍵盤模擬器,呼叫底層,可模擬所有按鍵
- C# 實現螢幕鍵盤 (ScreenKeyboard)C#
- 實現android按下Enter鍵便隱藏輸入鍵盤Android
- 移動端頁面鍵盤出現“搜尋”按鍵且實現提交功能
- MyBatis中主鍵回填的兩種實現方式MyBatis
- iOS表情鍵盤的完整實現iOS
- C#三種模擬自動登入和提交POST資訊的實現方法C#
- 實現方法 C# button快捷鍵C#
- C#實現按鍵精靈的'找圖' '找色' '找字'的功能C#
- 三種Singleton的實現方式
- android按鍵模擬測試Android
- 鍵盤按鍵錯亂怎麼恢復 電腦鍵盤字母錯亂三種解決方法
- unity 實現輪盤方式的按鈕滾動效果Unity
- 關於模擬鍵盤的再次思考。
- 艾爾登法環鍵盤操作介紹 艾爾登法環鍵盤按鍵方式說明
- springAOP的三種實現方式Spring
- js實現繼承的三種方式JS繼承
- 遠端控制篇:模擬按鍵 (轉)
- promise的模擬實現Promise
- 三種觀察者模式的C#實現模式C#
- Java鍵盤錄入的兩種方式Java
- C#非同步有多少種實現方式?C#非同步
- vue3中使用simple-keyboard實現虛擬鍵盤(帶中文切換數字鍵盤)Vue
- 實現圖片染色效果的三種方式
- Go定時器的三種實現方式Go定時器
- 單點登入的三種實現方式
- 實現 Java 平臺的三種方式(轉)Java
- linux下如何模擬按鍵輸入和模擬滑鼠?Linux
- android實現底部彈出框與軟鍵盤衝突(全面屏虛擬鍵適配)Android
- 鍵盤失靈按什麼鍵恢復 win10鍵盤恢復按鍵Win10
- STM32--矩陣鍵盤的設計實現矩陣
- javascript 實現一個簡單的數字鍵盤JavaScript
- CSS3模擬實現iphone返回按鈕效果CSSS3iPhone
- Tickeys for Mac鍵盤音效模擬工具Mac
- PHP 三種方式實現鏈式操作PHP