摘要: 通过TObject.GetInterface可以获得对象的实例实现某个接口,前提条件是必须实例化对象后才能运行GetInterface 下面的方法可获取类是否实现了某个接口,并返回接口的偏移: function FindInterface(AClass: TClass; GUID:TGUID; va 阅读全文
posted @ 2023-05-13 16:58 lucken 阅读(172) 评论(0) 推荐(0)
摘要: Layui社区:https://gitee.com/layui/layui/issues Layui项目源码地址:https://gitee.com/layui/layui Layui-Vue项目源码地址:https://gitee.com/layui/layui-vue Layui 2.8 升级指 阅读全文
posted @ 2023-05-13 16:38 lucken 阅读(201) 评论(0) 推荐(0)
摘要: //声明: SetLayeredWindowAttributes( Hwnd: THandle; {窗口句柄} crKey: COLORREF; {透明色} bAlpha: Byte; {Alpha 值} dwFlags: DWORD {LWA_COLORKEY(=1)表示使用透明色; LWA_AL 阅读全文
posted @ 2023-05-13 15:09 lucken 阅读(775) 评论(0) 推荐(0)
摘要: GetActiveWindow 只是获取当前程序中(严格地说是线程中)被激活的窗口;GetForegroundWindow 是获取当前系统中被激活的窗口.两个函数的级别不一样, 一个是线程级、一个是系统级.被激活的窗口不一定是顶层窗口(最上面的窗口). 阅读全文
posted @ 2023-05-13 15:08 lucken 阅读(203) 评论(0) 推荐(0)
摘要: DLL 文件: library MyHook; uses SysUtils, Windows, Messages, Classes; {$R *.res} const WM_MyMessage = WM_USER + 1; {自定义消息} var hook: HHOOK; info: string; 阅读全文
posted @ 2023-05-13 15:05 lucken 阅读(46) 评论(0) 推荐(0)
摘要: 分两步:一、建立 DLL, 并在 DLL 实现钩子的设置、释放和钩子函数;二、再建一个工程调用测试.第一步: 做 DLL先建立一个 DLL 工程, 自动初始的代码如下(去掉注释了): library Project1; uses SysUtils, Classes; {$R *.res} begin 阅读全文
posted @ 2023-05-13 15:01 lucken 阅读(152) 评论(0) 推荐(0)
摘要: 钩子函数虽然不多, 但其参数复杂, 应该从参数入手才能深入进去.UnhookWindowsHookEx 只需要 SetWindowsHookEx 返回的钩子句柄作参数, 这个简单;先看看 SetWindowsHookEx 的声明: SetWindowsHookEx( idHook: Integer; 阅读全文
posted @ 2023-05-13 15:00 lucken 阅读(53) 评论(0) 推荐(0)
摘要: 钩子分两种, 一种是系统级的全局钩子; 一种是线程级的钩子.全局钩子函数需要定义在 DLL 中, 从线程级的钩子开始比较简单.其实钩子函数就三个:设置钩子: SetWindowsHookEx释放钩子: UnhookWindowsHookEx继续钩子: CallNextHookEx在线程级的钩子中经常 阅读全文
posted @ 2023-05-13 14:57 lucken 阅读(45) 评论(0) 推荐(0)
摘要: 提示: 如果要设置系统级钩子, 钩子函数必须在 DLL 中. SetWindowsHookEx( idHook: Integer; {钩子类型} lpfn: TFNHookProc; {函数指针} hmod: HINST; {包含钩子函数的模块(EXE、DLL)句柄; 一般是 HInstance; 阅读全文
posted @ 2023-05-13 14:52 lucken 阅读(44) 评论(0) 推荐(0)
摘要: 相似函数: SetWorldTransform本例效果图:代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdC 阅读全文
posted @ 2023-05-13 14:47 lucken 阅读(32) 评论(0) 推荐(0)
摘要: 本例效果图:代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = cla 阅读全文
posted @ 2023-05-13 14:29 lucken 阅读(169) 评论(0) 推荐(0)
摘要: 1. 早绑定 //MB 函数的声明: function MB(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall; function MB; external 'user32.dll' name 'MessageB 阅读全文
posted @ 2023-05-13 14:24 lucken 阅读(41) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure Fo 阅读全文
posted @ 2023-05-13 14:12 lucken 阅读(30) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class 阅读全文
posted @ 2023-05-13 11:49 lucken 阅读(55) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Bu 阅读全文
posted @ 2023-05-13 11:49 lucken 阅读(35) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Bu 阅读全文
posted @ 2023-05-13 11:43 lucken 阅读(45) 评论(0) 推荐(0)
摘要: AlphaBlend 是指定图像混合透明的函数, 在 Graphics、GraphUtil、RibbonStyleActnCtrls 单元用到. 下面的测试是把一张图片显示在窗体, 并可以调整透明度.、 unit Unit1; interface uses Windows, Messages, Sy 阅读全文
posted @ 2023-05-13 11:12 lucken 阅读(53) 评论(0) 推荐(0)
摘要: BeginDeferWindowPos 和 DeferWindowPos、EndDeferWindowPos 是一组一起使用的函数, 可对一组窗口的位置、大小、Z 序等进行调整, 在 ExtCtrls 单元有用到.下面先用常规方法实现对 Panel1 中的一组 Button 进行调整, 然后再用上面 阅读全文
posted @ 2023-05-13 11:09 lucken 阅读(125) 评论(0) 推荐(0)
摘要: 单元内主要就是 TZipFile 类, 最方便使用的是它的类方法: TZipFile.ExtractZipFile() //解压 Zip 文件到指定文件夹 TZipFile.IsValid() //判断指定文件是否是有效的 Zip 文件 TZipFile.ZipDirectoryContents() 阅读全文
posted @ 2023-05-13 10:47 lucken 阅读(140) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Bu 阅读全文
posted @ 2023-05-13 09:01 lucken 阅读(128) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Bu 阅读全文
posted @ 2023-05-13 08:57 lucken 阅读(67) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Me 阅读全文
posted @ 2023-05-13 08:54 lucken 阅读(43) 评论(0) 推荐(0)
摘要: 所谓"流", 就是一段数据或是一块内存;在进行流操作时, 我们不必关心流中的数据到底是什么; 只需要知道流的大小和当前的指针位置. 所以流只有两个属性:Size、Position.对流的操作, 不过就是读取和写入. 所以流最主要的方法就是 Read 和 Write.在很多控件的使用中, 读取主要用 阅读全文
posted @ 2023-05-13 08:52 lucken 阅读(326) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Bu 阅读全文
posted @ 2023-05-13 08:47 lucken 阅读(50) 评论(0) 推荐(0)
摘要: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Me 阅读全文
posted @ 2023-05-13 08:46 lucken 阅读(56) 评论(0) 推荐(0)