• 2024-10-11c# 捕获系统快捷键并响应
    privatevoidGlobalKeyCapture_KeyDown(objectsender,KeyEventArgse){//判断当前进程是否是活动进程,以决定是否响应varcurrentProcess=getActiveProcess();if(currentProcess.Id!=Process.GetCurrentProcess().Id)return;if(e.KeyCode
  • 2024-09-09CG学习笔记 / 创建窗口、消息循环、窗口消息
    #include<Windows.h>LRESULTCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){ switch(msg) { caseWM_CLOSE: PostQuitMessage(69);//exitCode->wParam break; caseWM_KEYDOWN: if(wParam=='F') { Set
  • 2024-04-10一个使用HOOK/WH_GETMESSAGE解决软件交互问题的案例
    一、问题背景:1、某设计软件AD,可以打开/编辑二维电路设计界面,其交互方式如下:(1)鼠标右键按下拖动(2)鼠标滚轮上下移动(3)鼠标滚轮按下+鼠标移动缩放(4)ctrl+鼠标滚轮缩放   该软件的交互方式可以通过软件设置修改,但是基本的使用习惯就是如此,用户的一个场景是通过每台机器msts
  • 2024-03-16滴水逆向笔记系列-win32总结1-43.宽字节-44.事件_消息_消息处理函数
    第四十三课win32宽字节1.编码0x00.ASCII码1、ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符2、标准ASCII码使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。3、扩展ASCII码允许将
  • 2024-03-08如何在c#中禁用Windows键
    usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Windows.Forms;publicclassKeyboardHook:IDisposable{privateconstintWM_KEYDOWN=0x0100;privateconstintWM_KEYUP=0x0101;privateconstintWM_SYSKEYDOWN=0x0104;
  • 2024-02-05MFC 自定义消息
    ▲Demo示例新建基于对话框的Demo程序。头文件://自定义数据类型,用来测试消息数据传递typedefstructtagStudent{CStringName;intAge;}Student_t;//Dlgheaderpublic:afx_msgvoidOnBnClickedButtonCustomMsg();afx_msgLRESULTOnCusto
  • 2023-11-07一段有趣的代码
    #include<Windows.h>//键盘事件处理函数LRESULTCALLBACKKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){if(nCode<0){returnCallNextHookEx(NULL,nCode,wParam,lParam);}return1;}//鼠标事件处理函数LRESULTCALLBACKMousePr
  • 2023-11-07C++禁用windows全局键盘
    1.使用WindowsAPI函数调用来拦截键盘消息。2.创建一个键盘钩子来截取键盘消息。3.在钩子函数中,检测到特定按键事件时,阻止该事件执行。4.最终在程序退出时释放钩子。下面是一个使用C++和WindowsAPI来禁用Windows系统键盘的示例代码:#include<iostream>#include<Windows.h
  • 2023-10-07使用Windows API中键盘、鼠标监控钩子
    本节将介绍如何使用WindowsAPI中的SetWindowsHookEx和RegisterHotKey函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子,通过对特定热键挂钩实现监控的效果,两者的区别在于SetWindowsHookEx函数可以对所有线程进行监控,包括其他进程中的线程,而RegisterHotKey函数只能对当前
  • 2023-09-26Win32编程之全局钩子(十七)
    一、动态链接库库头文件:#pragmaonce#include<Windows.h>extern"C"{ __declspec(dllexport)void__stdcallSetHookVal(HHOOKhookVal); __declspec(dllexport)LRESULTCALLBACKMouseProc(intcode,WPARAMwParam,LPARAMlParam);}库源文件:#includ
  • 2023-09-21Win32编程之通过SetWindowsHookEx注入DLL(十六)
    一、SetWindowsHookEx函数SetWindowsHookEx是用于在Windows操作系统中设置全局或本地的钩子(hook)。钩子是一种用于监视并拦截特定事件或消息的机制,通常用于拦截和处理键盘输入、鼠标操作、窗口消息等。SetWindowsHookEx允许你安装一个全局或本地的钩子过程,以便在事件发生时执行
  • 2023-08-22C# 鼠标hook和键盘hook
    鼠标HOOKusingSystem;usingSystem.Reflection;usingSystem.Runtime.InteropServices;usingSystem.Windows.Forms;namespaceceshi{publicclassMouseHook{publiceventMouseEventHandlerOnMouseActivity;[DllImport("user32.dll",CallingConv
  • 2023-07-09不用资源文件的 VC 窗口程序
    1.单个文件的windows VC程序,不用资源文件。在win32模板程序基础上改。2.菜单和热键的代码添加3.模式对话框的代码添加。 程序运行界面,最简的win32程序  代码如下,单个文件,比较麻烦的就是对话框。//NOT.cpp:////#include"stdafx.h"#include<windows.h>#
  • 2023-05-13使用钩子函数
    钩子分两种,一种是系统级的全局钩子;一种是线程级的钩子.全局钩子函数需要定义在DLL中,从线程级的钩子开始比较简单.其实钩子函数就三个:设置钩子: SetWindowsHookEx释放钩子: UnhookWindowsHookEx继续钩子: CallNextHookEx在线程级的钩子中经常用到GetCurrentThreadID
  • 2023-04-27windows下按键映射
     includeiostreamincludewindows.husingnamespacestd;HHOOKhHook=0;LRESULTCALLBACKLowLevelKeyboardProc(intnCode,WPARAMwParam,LPARAMlParam){if(nCode==HC_ACTION){KBDLLHOOKSTRUCT*p=(KBDLLHOOKSTRUCT*)lParam;
  • 2023-04-25键盘钩子(切勿用作非法用途)
    //keyboardhook.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include<iostream>#include<windows.h>usingnamespacestd;HHOOKg_Hook;LRESULTCALLBACKLowLevelKeyboardProc(INTnCode,WPARAMwPa
  • 2023-04-066 菜单
    WM_COMMAND点击菜单,点击加速键,点击子窗口按钮,点击工具栏按钮。这些时候都有command消息产生。其中MSG种消息MSG消息intwmId=LOWORD(wParam);//低16位位菜单IDMSGtypedefstructtagMSG{HWNDhwnd;//句柄UINTmessage;WPARAMwPara
  • 2023-02-16ChatGPT:用delphi写一个键盘鼠标的全局钩子dll示例
    libraryGlobalHooks;usesWindows;{$R*.res}constWH_KEYBOARD_LL=13;WH_MOUSE_LL=14;typeTKeyboardHook=recordHook:HHOOK;Callba
  • 2023-02-11MFC-MouseProc鼠标钩子处理函数
     POINTpos={0,0};CStringstrx;HWNDhwnd;LRESULTCALLBACKMouseProc(intnCode,WPARAMwParam,LPARAMlParam)//参数1:当nCode=HC_ACTION时,wParam和lParam
  • 2022-12-22全局钩子ESC 关闭程序
    只需三步:1.定义钩子HHOOKMyHook;//接收由SetWindowsHookEx返回的旧的钩子2.安装钩子BOOLCVLifeClient2App::InitInstance(){//_CrtSetBreakAlloc
  • 2022-11-25MFC中 'CString' to 'WPARAM'之间的转换
    摘要:(2条消息)MFC中'CString'to'WPARAM'之间的转换_疯狂的挖掘机的博客-CSDN博客_cstring转wparam在实际运用中需要将'CString'to'WPARAM'之间的转换,之间的转换用
  • 2022-10-29C++创建桌面应用程序:处理对话框DialogBox
    VS2019新建C++桌面向导://Project1.cpp:定义应用程序的入口点。//#include"framework.h"#include"Project1.h"INT_PTRDlgproc(HWNDhwndDlg,UINTuMsg,WPARAMwParam
  • 2022-09-02OpenCV的Windows程序图像处理,Win32 SDK,VS2022
    Windows程序调用OpenCV进行图像捕捉和处理显示1.OpenCV的视频接口VideoCapture很简洁,显示可以直接把图片帧数据转换成BMP,用StretchDIBits显示,方便又灵活。2.Windows用
  • 2022-08-16英语词典,基于文本词典库,TTS发声,RichEdit显示,Win32 SDK编程
    用Win32SDK写的英语小词典,用朗文英英词库,词库是一个TXT文件,显示用RichEdit控件,发音用TTS采用MutiByte编码,没法显示音标,可以即时查找单词,速度0.1s以下,即使顺序查到