2

我需要那个 hwnd 在我的自定义 dll 中使用它。
ExpandConstant('{hwnd}')在卸载程序中不起作用...

4

1 回答 1

3

您可以简单地从UninstallProgressForm对象的Handle属性中获取它。这是一个示例代码,它使用 Windows API 函数更改卸载表单窗口的文本,该函数通过传递的句柄更改文本作为证明:

[Code]
#ifdef UNICODE
  #define AW "W"
#else
  #define AW "A"
#endif
function SetWindowText(hWnd: HWND; lpString: string): BOOL;
  external 'SetWindowText{#AW}@user32.dll stdcall';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usUninstall then
    SetWindowText(UninstallProgressForm.Handle, 'Caption set by window handle');
end;
于 2013-01-21T12:43:25.897 回答