InnoSetup如何确定卸载程序窗口的HWND?

时间:2013-01-21 12:21:18

标签: inno-setup

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

1 个答案:

答案 0 :(得分: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;