Как поменять заголовок, показываемый в панели задач?

hgdagon

Новичок
Доброго времени суток. Вот, нашел этот код в топике FAQ по Inno Setup:

Код:
[Code]
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongW@user32.dll stdcall';
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
Function GetWindow (HWND: Longint; uCmd: cardinal): Longint;external 'GetWindow@user32.dll stdcall';

procedure InitializeWizard();
begin
  SetWindowLong(WizardForm.Handle, -8,GetWindowLong(GetWindow(WizardForm.Handle, 4),-8));
end;
Я совру, конечно, если скажу, что понимаю, что тут происходит, но вкратце понимаю, что это какая-то переадрессация с MainForm на WizardForm.
А можно ли сделать то же самое проделать с MainForm.Caption на WizardForm.Caption?

----------------------------------------
В итоге у меня получилось так (Спасибио @sergey3695 ):
Код:
[Code]
function SetWindowText(hWnd: Longint; Caption: String): Boolean;                  external 'SetWindowTextW@user32.dll stdcall';
function SetWindowLong(hWnd: Longint; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongW@user32.dll stdcall';
function GetWindowLong(hWnd: Longint; Index: Integer): Longint;                   external 'GetWindowLongA@user32.dll stdcall';
Function GetWindow    (hWnd: Longint; uCmd: Cardinal): Longint;                   external 'GetWindow@user32.dll stdcall';

<event('InitializeWizard')>
procedure InitializeWizardTBThumbFix();
begin
  WizardForm.Caption := FmtMessage(CustomMessage('Installer'), ['{#SetupSetting("AppName")}']);
  SetWindowText(GetWindowLong(MainForm.Handle, -8), WizardForm.Caption);
  SetWindowLong(WizardForm.Handle, -8,GetWindowLong(GetWindow(WizardForm.Handle, 4),-8));
end;
 
Последнее редактирование:

hgdagon

Новичок
Спасибо за ответ. Вообще-то сойдет, но у меня и так куча DLL, хотелось бы метод без сторонних DLL, как альтернативу. Еще спасибо за исходники, ответ нашелся там.
 

sergey3695

Ветеран
Модератор
@hgdagon,
code_language.pascal:
[CustomMessages]
Installer=Example

[code]
function SetWindowLong(hWnd: Longint; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongW@user32.dll stdcall';
function GetWindowLong(hWnd: Longint; Index: Integer): Longint;                   external 'GetWindowLongA@user32.dll stdcall';
Function GetWindow    (hWnd: Longint; uCmd: Cardinal): Longint;                   external 'GetWindow@user32.dll stdcall';

procedure InitializeWizard();
begin
  WizardForm.Caption := FmtMessage(CustomMessage('Installer'), ['{#SetupSetting("AppName")}']);
  Application.Title:= WizardForm.Caption;
  SetWindowLong(WizardForm.Handle, -8,GetWindowLong(GetWindow(WizardForm.Handle, 4),-8));
end;
 
Сверху