там используется Win6TaskBarV1_0A в wintbМожно попросить пример отрисовки миниатюры?
#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif
[Setup]
AppName=Wintb.dll example
AppVersion=1.0.0.8
DefaultDirName={pf}\Wintb.dll example
DefaultGroupName=Wintb.dll example
OutputDir=.
[files]
Source: wintb.dll; Flags: dontcopy;
[code]
const
TBPF_NOPROGRESS = 0;
TBPF_INDETERMINATE = 1;
TBPF_NORMAL = 2;
TBPF_ERROR = 4;
TBPF_PAUSED = 8;
procedure WintbStart(); external 'WintbStart@{tmp}\WinTB.dll cdecl delayload';
procedure WintbStop(); external 'WintbStop@{tmp}\WinTB.dll cdecl delayload';
procedure SetTaskBarProgressValue(Value: Longint); external 'SetTaskBarProgressValue@{tmp}\WinTB.dll cdecl delayload';
procedure SetTaskBarProgressState(Value: Longint); external 'SetTaskBarProgressState@{tmp}\WinTB.dll cdecl delayload';
procedure WinTaskBar(WForm, MForm: HWND; Time: Longint); external 'Win6TaskBarV1_0A@{tmp}\WinTB.dll cdecl delayload';
function DwmIsCompositionEnabled(var pfEnabled: BOOL): Longint; external 'DwmIsCompositionEnabled@dwmapi.dll stdcall delayload';
function isWin6: boolean; var ver: TWindowsVersion;
begin
GetWindowsVersionEx(ver);
if (ver.Major >= 6) then result:=true
else result:=false;
end;
function CompositionEnabled: boolean;var r: bool;
begin
if isWin6 then
if DwmIsCompositionEnabled(r) = 0 then
result:=r else result:=false;
end;
procedure TaskBar;
var
r: TRect;
begin
if CompositionEnabled then
begin
with TBitmapImage.Create(MainForm)do
begin
Parent:=MainForm;
Width:=WizardForm.ClientWidth;
Height:=WizardForm.ClientHeight;
with Bitmap do begin
Width:=WizardForm.ClientWidth;
Height:=WizardForm.ClientHeight;
Canvas.Brush.Color:=clWindow;
r.Left:=0;
r.Top:=0;
r.Right:=WizardForm.ClientWidth;
r.Bottom:=WizardForm.ClientHeight;
Canvas.FillRect(r);
end;
end;
WinTaskBar(WizardForm.Handle, MainForm.Handle, 300);
end;
end;
procedure TBChange(Sender: TObject);
begin
SetTaskBarProgressState(TBPF_NORMAL);
SetTaskBarProgressValue(TTrackBar(Sender).Position);
end;
procedure InitializeWizard();
var
TBar: TTrackBar;
begin
ExtractTemporaryFile('wintb.dll');
WintbStart();
SetTaskBarProgressValue(40);
SetTaskBarProgressState(TBPF_PAUSED);
TaskBar;
TBar := TTrackBar.Create(WizardForm);
TBar.Parent := WizardForm;
TBar.Max := 100;
TBar.SetBounds(ScaleX(10), ScaleY(320), ScaleX(200), ScaleY(20));
TBar.OnChange := @TBChange;
end;
procedure DeinitializeSetup();
begin
WintbStop;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=false;
end;
void DLL_EXPORT WinTaskBar(HWND wf, HWND mf, int time)
{
if (winver >= 6)
{
wizardform = wf;
mainform = mf;
RECT cr;
GetWindowRect(wf, &cr);
SetWindowLong(mf, GWL_STYLE, GetWindowLong(mf, GWL_STYLE) & !WS_CAPTION);
SetWindowPos(mf, 0, -10000, 0, cr.right - cr.left, cr.bottom - cr.top, SWP_NOACTIVATE);
ShowWindow(mf, SW_SHOW);
SetTimer(wf, 100500, time, Ontimer);
}
}
Скорее всего ....... Хотя, возможно, дело не в инсталляторе, а винда глючит ...
По-моему и до этого все нормально было ...Silentman, исправил. спс.
нет это мой косяк. у формы был стиль поверх окон и при нажатии на инфо форму просто не было видно. удалил ненужный код теперь норм. ну это я экспериментировал на 10-ке.По-моему и до этого все нормально было ...
А что это? Система какая-то? Или что?...ну это я экспериментировал на 10-ке.