C 滑鼠和鍵盤事件擷取

2021-08-14 06:11:16 字數 1580 閱讀 6430

方法一:使用鉤子

首先在api宣告的類裡宣告委託

public delegate int procentry(int ncode, int wparam, intptr lparam);
擷取滑鼠訊息關鍵**:

private intptr hand;

public form1()

private void form1_load(object sender, eventargs e)

public int mymouse(int ncode, int32 wparam, intptr iparam)

}return (int)api.callnexthookex(hand, ncode, wparam, iparam);

}private void button1_click(object sender, eventargs e)

private void button2_click(object sender, eventargs e)

擷取鍵盤訊息關鍵**:

/// /// 鍵盤事件結構體

///

[structlayout(layoutkind.sequential)]

public struct keymsg

hand=myhook.setwindowshookex(13, new myhook.procentry(mykey), intptr.zero, 0);

//由於是hook鍵盤事件,因此只能宣告全域性鉤子

//處理函式,將lparam中的資料用keymsg結構體取出來,並交給專門的鍵盤事件處理函式,這裡的返回值應為0,以保證訊息的傳遞不被中斷。

private int mykey(int ncode, int wparam, intptr lparam)

myhook.callnexthookex((intptr)hand, ncode, wparam, lparam);

}return 0;

}//鍵盤事件處理函式

private void mykeyfunc(object sender, keyeventargs e)

方法二:

在winform中擷取系統訊息,此處有兩個方案(以擷取滑鼠事件為例)

方案一:通過實現imessagefilter介面來建立訊息篩選器,從而擷取windows訊息

關鍵**:

篩選器:

public class mymessage : imessagefilter

return false;

}}

若返回值為true則可使訊息傳遞中斷

新增篩選器:

方案二:

在form中重寫control類虛方法wndproc來擷取windows訊息

關鍵**:

protected override void wndproc(ref message m)
當處理完訊息後,應呼叫base.wndproc(ref m)使訊息繼續傳遞下去

C 模擬鍵盤滑鼠事件

1.模擬鍵盤事件 system.windows.forms.sendkeys 以下是 sendkeys 的一些特殊鍵 表。鍵 backspace 或 break caps lock del 或 delete 或 down arrow 下箭頭鍵 end enter 或 esc help home in...

webdriver之滑鼠事件和鍵盤事件

在使用滑鼠操作方法需要匯入actionchains類 from selenium.webdriver.common.action chains import actionchains actionchains類提供了滑鼠操作的常用方法 perform 執行所有actionchains中儲存的行為 c...

selenium基礎(滑鼠和鍵盤事件)

selenium滑鼠和鍵盤的操作事件 webdriver常見的幾種操作方法 send keys values 模擬按鍵輸入,values是輸入的內容 submit 用於提交表單。例如 輸入內容後的 回車 操作 size 返回元素的尺寸 text 獲取元素的文字 get attribute name ...