Delphi 如何从Thandle逆向得到Hwnd?

2024-12-21 09:28:45
推荐回答(2个)
回答1:

pe LongWord;

windows.pas中THandle定义:THandle = System.THandle;
而在system单元中,定义THandle = LongWord;

windows.pas中 HDC = type LongWord;

也就是说delphi中这三个实际上都是longword,定义出这么三个东西来, 是为了与 windows api配合,因为程序是在windows的平台上开发的,要调用windows 的API,而在windowsAPI中定义了这么个类型。

在windows系统中,
HDC Handle to a device context (DC). 即指向一个设备上下文。
HWND Handle to a window. 是一个窗口句柄

thandle是delphi的东西,windows自己没有定义。

回答2:

调用API:EnumThreadWindows,详情可查阅MSDN。
因为一个线程也可以拥有多个窗口,故而枚举,哪个窗口是你想要的,可能还需要枚举到一个,检查一个,找到后就可终止枚举(回调函数返回FALSE)。如果只有一个窗口,当然就简单多了。