【使用windows函数SetWindowsHookEx实现键盘钩子】教程文章相关的互联网学习教程文章

windows钩子函数

一 什么时候用到钩子?(when)Windows操作系统是建立在事件驱动的消息处理机制之上,系统各部分之间的沟通也都是通过消息的相互传递而实现的。通常情况下,应用程序只能处理当前进程的消息,如果需要对其它进程的消息进行拦截处理就必须采钩子技术。二 什么是钩子?(what)钩子实际上是一段用以处理系统消息的程序(钩子函数),通过系统调用,将其挂入到系统。每当特定的消息发出,在没有到达目标窗口前,钩子程序就先捕获该消息,即...

[笔记]使用API函数 GetACP 获取Windows系统当前代码页

代码页是字符集编码的别名,也称“内码表”,是特定语言的字符集的一张表。代码页分为两种:一种是ANSI代码页;另一种是OEM代码页。⑴OEM代码页主要是用于Windows系统中的命令行界面(Console)程序,虚拟Dos。⑵ANSI代码页主要是用于Windows系统中本地编码不是Unicode的图形用户界面(Gui)程序。procedure TForm9.BitBtn3Click(Sender: TObject);varcpInfoEx:TcpInfoEx;begin//GetACP:获取当前系统的ANSI代码页;//具体可以对照一...

Windows下配置Sendmail通过php mail函数发邮件【代码】

两种php发信方式在许多php程序中通常都需要发邮件比如discuz需要选择sendmail发信,wordpress评论回复需要发信,然而发送邮件则有两种不同的方式。一是直接通过php中的mail()函数进行发信,而则是通过写一些程序来通过stmp服务来进行发信。前者需要程序所在服务器的支持,通常linux服务器大多有这项服务。比如之前我用的Godaddy主机就可以进行发信,但是国内主机服务商则基本不带这个函数的支持。因为在这个垃圾邮件横行霸道的年代...

Windows函数转发器【代码】

最近MSYS2升级后出现了一个bug,libxml264-157.dll被升级成了libxml264-159.dll,但是ffplay还依赖libxml264-157.dll,本来打算直接复制一个libxml264-159.dll重命名为libxml264-157.dll,但是发现libxml264-157.dll里面有一个函数x264_encoder_open_157在libxml264-159.dll变成了x264_encoder_open_159,这样程序就会找不到x264_encoder_open_157这个函数,最后我通过函数转发器解决了这个问题。函数转发器的声明如下:// Functio...

Windows API函数大全(完整)【代码】

Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnect...

Windows客户端C/C++编程规范“建议”——函数【图】

1 函数1.1 代码行数控制在80行及以内等级:【要求】 说明:每个函数的代码行数控制应该控制在80行以内。如果超过这个限制函数内部逻辑一般可以拆分。如果试图超过这个标准,请列出理由。但理由不包含如下:无法拆分。流程内部逻辑复杂,无需拆分,即使拆分了,拆分的函数也不会被其他地方用到。(解释:拆分可以减少代码行数,提炼后的函数可以方便读者快速理解函数逻辑并定位问题。)1.2 代码列数控制在100字符及以内 等级:【要求...

DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)

函数重载重载的思想很简单:编译器允许你用同一名字定义多个函数或过程,只要它们所带的参数不同。实际上,编译器是通过检测参数来确定需要调用的例程。下面是从VCL 的数学单元(Math Unit)中摘录的一系列函数:[delphi] view plain copy function Min (A,B: Integer): Integer; overload; function Min (A,B: Int64): Int64; overload; function Min (A,B: Single): Single; overload; function Min (A,B: Double): Double; o...

Windows MFC HTTP POST请求 函数流程【代码】

Windows MFC HTTP POST请求 函数流程 1 CString m_strHttpUrl(_T("http://10.200.80.86:8090/course/upload"))2 CInternetSession * pInternetSession = NULL;3 CHttpConnection * pHttpConnection = NULL;4 CHttpFile * pHttpFile = NULL;5 6 7 8//建立连接 9 pInternetSession = new CInternetSession(AfxGetAppName());10 11 12CString strServer;13CString strObject;14DWORD dwServiceType;15INTERNET_PORT nPort;16AfxP...

Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)【图】

Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去。这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要。很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了Dependency Walker这个小工具。但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了。看得你一脸懵逼: 你很难分清楚:倒底哪些DLL是需要打包的,哪些D...

windows服务开发用到的主要函数详解参考【图】

编程实现一个完整的服务分为安装服务程序,主体服务程序和卸载服务程序。我们先来写服务的主体部分,示例代码如下:void main() { SERVICE_TABLE_ENTRY ServiceTable[] = { {"scuhkr", BDServiceMain}, {NULL, NULL} //"哨兵" }; //连接到服务控制管理器 StartServiceCtrlDispatcher(ServiceTable); } 路人甲:什么,就这么短?你想侮辱广大鸟儿的智慧?呵呵,先别急,听我慢慢道来:上面代码中,我们先给出了一个SERVI...

Windows入门基础:1.关于CreateWindow()函数使用中遇到的问题【图】

我在实现显示窗口的程序中,遇到一个问题:首先程序没有任何语法错误,编译能够通过,但是就是不能弹出窗口。  后来在MSDN中查询CreateWindow()函数,发现了下面这句话:  "If lpClassName is a string, it specifies the window class name. The class name can be any name registered with the RegisterClass function or any of the predefined control-class names. For a complete list, see the Remarks section."  ...

windows下的两个等待函数

windows下的两个等待技术第一种: Win32 Sleep()函数 这个函数要求操作系统中止线程动作,直到读过某个指定的时间之后才恢复。能在某个线程结束时(而不是某段时间结束时)被调用。第二种:busy loop(busy waits) 不断调用GetExitCodeThread(),直到其结果不再是STILL_ACTIVE. 缺点:浪费CPU时间。 绝对不要在Win32中使用busy loop//busywait.c /*Domonstrate the effect on performance of using a busy loop. Firs...

Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)【代码】【图】

Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.htmlWindows系统调用中API的3环部分 一、R3环API分析的重要性Windows所提供给R3环的API,实质就是对操作系统接口的封装,其实现部分都是在R0实现的。很多恶意程序会利用钩子来钩取这些API,从而达到截取内容,修改数据的意图。现在我们使用olldbg对ReadProcessMemory进行跟踪分析,查看其在R3的实现,并根据我们的分析来重写一个ReadProcessMemory。重写R...

加密与解密学习笔记2-windows API函数

API函数是构筑整个Windows框架的基石,只有充分理解和利用API函数,才能深入到Windows的内部,充分发挥各种32位平台的强大功能和灵活性,才能成功地扩展和突破类库、控件和可视开发环境的限制。 Win32 API即为Microsoft 32位平台的应用程序编程接口(API,application prgramming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。在具...

Delphi使用Windows API函数AnimateWindow实现窗体特效

{**********************************************************************API函数 AnimateWindow 使用:函数功能:窗体显示和隐藏时产生特殊的动画效果;可以产生两种类型的动画效果: 滚动动画 和 滑动动画函数原型:BOOL AnimateWindow(HWND hWnd, DWORD dwTime, DWORD dwFlags)参数说明:hWnd 指定产生动画效果的窗体的句柄; dwTime 指定动画持续的时间(以为秒计算),完成一个动画的标准时间 ...