Delphi

Delphi 使用钩子函数 - 钩子链和 CallNextHookEx 的返回值
Delphi

Delphi 使用钩子函数 - 钩子链和 CallNextHookEx 的返回值

51 0

使用钩子函数[4] - 钩子链和 CallNextHookEx 的返回值SetWindowsHookEx 函数的第一个参数表示钩子类型, 共有 14 种选择, 前面我们已经用过两种:WH_KEYBOARD、WH_MOUSE.系统会为每一种类型的钩子建立一个表(那就是 14 个表), 譬如某个应用程序启动了键盘钩子, 我们自己的程序也启动了键盘钩子, 同样是键盘钩子就会进入同一个表. 这个表(可能不止一个, 可能还会有鼠标钩子等等)就是传说中的"钩子链".假如某个钩子链中共进来了三个钩

Delphi 使用钩子函数建立一个全局的鼠标钩子
Delphi

Delphi 使用钩子函数建立一个全局的鼠标钩子

57 0

分两步:一、建立 DLL, 并在 DLL 实现钩子的设置、释放和钩子函数;二、再建一个工程调用测试.第一步: 做 DLL先建立一个 DLL 工程, 自动初始的代码如下(去掉注释了):library Project1;uses SysUtils, Classes;{$R *.res}beginend.//把工程保存为 MyHook.dpr, 并实现如下:library MyHook;uses SysUtils, Windows, {钩子函数都来自 Windows 单元} Messages, {

Delphi

Delphi WinAPI: GetForegroundWindow - 获取前台窗口的句柄

48 0

WinAPI: GetForegroundWindow - 获取前台窗口的句柄//声明:GetForegroundWindow: HWND;//举例:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) {先添加如下三个控件} But

Delphi

Delphi WinAPI: GetWindow - 获取与指定窗口具有指定关系的窗口的句柄

37 0

WinAPI: GetWindow - 获取与指定窗口具有指定关系的窗口的句柄//声明:GetWindow( hWnd: HWND; {指定的窗口句柄} uCmd: UINT {指定的关系选项}): HWND; {失败返回0; 成功返回符合的窗口句柄}//uCmd 可选值:GW_HWNDFIRST = 0; {同级别第一个}GW_HWNDLAST = 1; {同级别最后一个}GW_HWNDNEXT = 2; {同级别下一个}GW_HWNDPREV = 3; {同级别上一个}GW_O

Delphi

Delphi WinAPI: GetTopWindow - 获取指定窗口的子窗口中最顶层的窗口句柄

113 0

WinAPI: GetTopWindow - 获取指定窗口的子窗口中最顶层的窗口句柄//声明:GetTopWindow( hWnd: HWND; {指定的窗口句柄}): HWND; {失败返回0; 成功返回最顶层的子窗口句柄}这和用 GetWindow 函数使用 GW_CHILD 参数时应该是一样的, 测试一下:var h1,h2: HWND;begin h1 := GetTopWindow(GetDesktopWindow); h2 := GetWindow(GetDesktopWi

Delphi

Delphi WinAPI: GetClassName - 获取指定窗口的类名

54 0

//声明:GetClassName( hWnd: HWND; {指定窗口句柄} lpClassName: PChar; {缓冲区} nMaxCount: Integer {缓冲区大小}): Integer; {返回类名大小; 失败返回 0}//测试1: 新建一个工程, 主窗口的类名默认是 TForm1, 用程序获取一下看看var ps: array[0..254] of Char;begin GetClassName(Handle, ps, 255);

Delphi

Delphi WinAPI: FindWindow、FindWindowEx - 查找窗口

108 0

FindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题}): HWND; {返回窗口的句柄; 失败返回 0}//FindWindowEx 比 FindWindow 多出两个句柄参数:FindWindowEx( Parent: HWND; {要查找子窗口的父窗口句柄} Child: HWND; {子窗口句柄} ClassName: PChar; {} WindowName: