December 3, 2022

Inno Setup 如何将使用DLL库 user32.dll中相关函数

作者: Jim Wang 公众号: 巴博萨船长

摘要:Inno Setup 使用过程中,如何使用user32.dll中的相关函数,例如GetDC,SetTimer和KillTimer等函数的引用使用方法。

Abstract: How to use the functions in user32.dll, such as GetDC, SetTimer and KillTimer, during Inno Setup.

作者: Jim Wang 公众号: 巴博萨船长

如何将使用DLL库 user32.dll中相关函数

函数GetDC

引用方式

1
function GetDC(hWnd: HWND): longword; external 'GetDC@user32.dll stdcall';

函数BitBlt

引用方法

1
function BitBlt(DestDC: longword; X, Y, Width, Height: integer; SrcDC: longword; XSrc, YSrc: integer; Rop: DWORD): BOOL; external 'BitBlt@gdi32.dll stdcall';

函数功能

该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境

参数

hDestDC:指向目标设备环境的句柄

x:指定目标矩形区域左上角的X轴逻辑坐标。

y:指定目标矩形区域左上角的Y轴逻辑坐标。

nWidth:指定源在目标矩形区域的逻辑宽度。

nHeight:指定源在目标矩形区域的逻辑高度。

hSrcDC:指向源设备环境的句柄。

xSrc:指定源矩形区域左上角的X轴逻辑坐标。

ySrc:指定源矩形区域左上角的Y轴逻辑坐标。

dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。

函数ReleaseDC

引用方法

1
function ReleaseDC(hWnd: HWND; hDC: longword): integer; external 'ReleaseDC@user32.dll stdcall';

函数SetTimer

引用方法

1
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: longword): longword; external 'SetTimer@user32.dll stdcall';

函数KillTimer

引用方法

1
function KillTimer(hWnd, nIDEvent: longword): longword; external 'KillTimer@user32.dll stdcall';

函数GetWindow

引用方法

1
function GetWindow (HWND: Longint; uCmd: cardinal): Longint;external 'GetWindow@user32.dll stdcall';

函数功能

该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄。

参数

hWnd:窗口句柄。要获得的窗口句柄是依据nCmd参数值相对于这个窗口的句柄。

nCmd:说明指定窗口与要获得句柄的窗口之间的关系。该参数值可以是下列之一:

本文小结

这些背景知识是自己在完成该项任务的一开始具有的疑问,进而在茫茫文海中查阅,再收集整理成文的,这利于自己,也方便你我。如果你有问题或者不同的见解,欢迎关注我的微信公众号,然后留言讨论。


关于本文

由 Barbossa Wang 撰写, 采用 CC BY-NC 4.0 许可协议.

#Inno Setup#DLL#user32.dll