C 檢測鍵盤輸入內容

2021-09-28 16:07:01 字數 2888 閱讀 1604

using system;

using system.collections.generic;

using system.componentmodel;

using system.drawing;

using system.data;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows.forms;

using system.runtime.interopservices;

using system.diagnostics;

namespace scantest

public

class scanhook

public

bool

start()

return

(hkeyboardhook !=0)

;}public

bool

stop()

return

true;}

private

intkeyboardhookproc

(int ncode,

int32 wparam,

intptr lparam)

if(scanerevent !=

null

&& msg.message ==

13&&

!string

.isnullorempty

(codes.result)

)return0;

}public

class

scanercodes

else}}

public list<

int> keydowns

}public

datetime lastinput

}public

byte

keyboardstate

}public

int keydowncount

}public

string result

else}}

public

string currentkey

}public

string currentchar

}public

bool isshift

}public

void

add(

eventmsg msg)

// 未釋放其他按鍵時按下按鍵

else

if(_keydown.count >0)

// 單位時間內按下按鍵

elseif(

((timespan)

(datetime.now - _last)

).totalmilliseconds < ts)

// 從新記錄輸入內容

else

#endregion

_last = datetime.now;

#region 獲取鍵盤狀態

// 記錄正在按下的按鍵

if(msg.paramh ==0&&

!_keydown.

contains

(msg.message)

)// 清除已鬆開的按鍵

if(msg.paramh >

0&& _keydown.

contains

(msg.message)

)#endregion

#region 計算按鍵資訊

int v = msg.message &

0xff

;int c = msg.paraml &

0xff

;stringbuilder strkeyname =

newstringbuilder

(500);

if(getkeynametext

(c *

65536

, strkeyname,

255)

>0)

);getkeyboardstate

(_state);if

(_key.length ==

1&& msg.paramh ==0)

else

}#endregion

}private

char

shiftchar

(string k,

bool isshiftdown,

byte

state)

else

if(chr >=

'a'&& chr <=

'z')

else

:\"<>?";if

(s.indexof

(chr)

>=0)

}}return chr;}}

public

struct eventmsg

}private scanhook test =

newscanhook()

;private

string msg ="";

private scanhook.

scanerdelegate keycheck;

private

void

getmsg

(scanhook.

scanercodes mcode)

public

void

initstar()

private

void

button1_click

(object sender,

eventargs e)

}}

C 模擬鍵盤輸入

主要用到的類sendkeys.並通過其方法send 向當前活動的應用程式傳送單擊動作行為。例如 sendkeys.send 123 就會模擬鍵盤敲擊1,2,3,每個鍵都由乙個或多個字元表示。若要指定單個鍵盤字元,請使用該字元本身。例如,若要表示字母 a,請將字串 a 傳遞給方法。若要表示多個字元,請...

終止鍵盤輸入

一 檔案 流和鍵盤輸入 1 檔案是一塊儲存資訊的儲存器區域。2 具有強大 靈活等特點的c語言具有許多用於開啟 讀 寫和關閉檔案的庫函式。在乙個級別上,可以使用宿主作業系統的基本檔案工具來處理檔案,這被稱為低階i o。c還以第二種級別處理檔案,稱為標準i o包。這包括建立於處理檔案的i o函式的標準模...

python 鍵盤輸入

python鍵盤輸入與其他程式語言基本類似,回車鍵結束輸入 下面來看一段鍵盤輸入年月日,英文輸出示例 1 usr bin env python2 coding utf 8 3 定義英文月份 4 months january february march april may june july aug...