1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

DLL Inno Setup Advanced Splash 1.0

Inno Splash

  1. Ветеран

    Регистрация:
    13 май 2013
    Сообщения:
    45
    Симпатии:
    113
    Razor12911 submitted a new resource:

    Inno Setup Advanced Splash - Inno Splash

    Read more about this resource...
     
    eprst, Darksoul, Kotyarko_O и 3 другим нравится это.
  2. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.201
    Симпатии:
    776
    Razor12911,
    Crash programm when click exit if <Result:= True;>
    Код (Text):
    function InitializeSetup:Boolean;
    begin
      ExtractTemporaryFile('Splash.png');
      Splash(ExpandConstant('{tmp}\Splash.png'),3,1000,1000,1000);
      Result:= True;
    end;
    ----
    Код (Text):
    procedure DeinitializeSetup();
    begin
       ???;
    end;
     
     
  3. Ветеран

    Регистрация:
    13 май 2013
    Сообщения:
    45
    Симпатии:
    113
    I know about the InitializeSetup, I was just showing the feature itself. I thought people will know what to put there and the function deinitializes automatically after it is used.
     
  4. Ветеран

    Регистрация:
    27 мар 2014
    Сообщения:
    343
    Симпатии:
    74
    Пол:
    Мужской
    sergey3695,
    Код (Text):
    procedure DeinitializeSetup();
    begin
       WizardForm.Free;
    end;
     
  5. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.201
    Симпатии:
    776
    Razor12911, Хамик, ok. I thought use function "FreeDLL".
    How to hide the taskbar icon of the form?
    Код (Text):
    [Setup]
    AppName=Inno Setup Advanced Splash
    AppPublisher=Razor12911
    AppVerName=1.0
    CreateAppDir=no

    [Files]
    Source: "ISAdvSplash.dll"; Flags: dontcopy;
    Source: "Splash.png"; Flags: dontcopy;

    [Code]
    const
      BandedSwirlEffect = 1;
      BlindEffect = 2;
      BloodEffect = 3;
      CircleEffect = 4;
      MagnifyEffect = 5;
      CrumpleEffect = 6;
      DissolveEffect = 7;
      DropEffect = 8;
      FadeEffect = 9;
      BrightEffect = 10;
      PixelateEffect = 11;
      BlurEffect = 12;
      WiggleEffect = 13;
      ShapeEffect = 14;
      RippleEffect = 15;
      RotateCrumpleEffect = 16;
      SaturateEffect = 17;
      SlideEffect = 18;
      SwirlEffect = 19;
      WaterEffect = 20;
      WaveEffect = 21;
      LineEffect = 22;

    procedure Splash(ImageFile: PAnsiChar; Effect, InTime, ShowTime, OutTime: Integer);
      external 'Splash@files:ISAdvSplash.dll stdcall';
    function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL;
      external 'ShowWindow@user32.dll stdcall';

    var DLLHandle:integer;

    function InitializeSetup:Boolean;
    var
      ErrorCode: Integer;
    begin
      ExtractTemporaryFile('Splash.png');
      DLLHandle:= LoadDLL(ExpandConstant('{tmp}\ISAdvSplash.dll') , ErrorCode);
    if (DLLHandle > 0) then
    begin
      ShowWindow(Application.Handle, SW_HIDE);
      Splash(ExpandConstant('{tmp}\Splash.png'),3,1000,1000,1000);
      ShowWindow(Application.Handle, SW_SHOW);
    end;
      Result:= True;
    end;

    procedure DeinitializeSetup();
    begin
    if DLLHandle > 0 then
    begin
      FreeDLL(DLLHandle);
      DeleteFile(ExpandConstant('{tmp}\ISAdvSplash.dll'));
      WizardForm.Free;
    end;
    end;
     

    Вложения:

  6. Безумный Лорд Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    722
    Симпатии:
    1.050
    Пол:
    Мужской
    Razor12911
    Just crashes on call Splash function.
    IMG_28052015_220923.png
    I guess it crashes when working with GdipAlloc buffer. Something like pixels copy to/from Gdip buffer.

    System: Win7 x64, Inno 5.5.1ee2 (a/u)
     
  7. Ветеран

    Регистрация:
    13 май 2013
    Сообщения:
    45
    Симпатии:
    113
    Hmm, really strange. Will check on it, I don't know about the gdipalloc or whatever that is.
     
  8. Знаток Проверенный

    Регистрация:
    21 июн 2011
    Сообщения:
    79
    Симпатии:
    162
    я так понимаю, что нужно указать мин. требования к этой длл - Windows Vista и выше.
    т.к. скорее всего требуется gdi+ v1.1
     
  9. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.201
    Симпатии:
    776
    :unknown:
     
  10. Знаток Проверенный

    Регистрация:
    21 июн 2011
    Сообщения:
    79
    Симпатии:
    162
    у меня на вин7 сп1 х64 все отработало нормально

    зы. мин. требования - не к падению приложения, а в общем и целом замечание к описанию.

    ззы. и если используется gdi+v1.1, то было бы неплохо проверять наличие длл именно этой версии. я к примеру не знаю может ли установка какого-либо софта заменить длл в системе на более старую версию. могу только сказать, что при попытке запустить такой инсталл на вин хп получил такой же AV как у Shegorat
     
  11. Ветеран

    Регистрация:
    9 авг 2014
    Сообщения:
    99
    Симпатии:
    8
    Пол:
    Мужской
    Можно исправить ошибку закрытия инсталлятора?
     
  12. Новичок

    Регистрация:
    16 май 2015
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Да такая проблема не у всех... чаще на Win7 встречается на win 8.1 отрабатывает нормально
     
  13. Ветеран

    Регистрация:
    9 авг 2014
    Сообщения:
    99
    Симпатии:
    8
    Пол:
    Мужской
    я сижу на 8.1, ошибка есть
     
  14. Новичок

    Регистрация:
    16 май 2015
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Тоже не могу выявить закономерности... У кого работает, у кого нет... Может дело в эффектах? То есть на каком то проявляется на каком то нет?
    P.S. На днях обещали виртуалку дать с такой "глюко" системой... жду, если решу проблему отпишусь... Надо в логах системы посмотреть что рубит, аж руки чешутся добраться до истины :)
     
  15. Ветеран

    Регистрация:
    9 авг 2014
    Сообщения:
    99
    Симпатии:
    8
    Пол:
    Мужской
    Жду
     
  16. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    39
    Симпатии:
    2
    Пол:
    Мужской
    Ребят, не знаю, решили ли проблему с двумя окнами. На зарубежном форуме человек предложил использовать выгрузку модуля.
    Код (Text):

    procedure ForceRemove(const ModuleName: string);
    var
      hMod: HMODULE;
    begin
      hMod := GetModuleHandle(PChar(ModuleName));
      if hMod=0 then
       exit;
      repeat
      until not FreeLibrary(hMod);
    end;
     
    Теперь возникает вопрос, как этот кусок использовать?
     
  17. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.201
    Симпатии:
    776
    Infest, теперь возникает вопрос, зачем вам эта библиотека, если она не работает должным образом?
     
  18. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    39
    Симпатии:
    2
    Пол:
    Мужской
    Эффекты понравились :D
     
  19. Старожил

    Регистрация:
    9 дек 2016
    Сообщения:
    40
    Симпатии:
    4
    Пол:
    Женский
    [Setup]
    AppName=Inno Setup Advanced Splash
    AppPublisher=Razor12911
    AppVerName=1.0
    CreateAppDir=no

    [Files]
    Source: "ISAdvSplash.dll"; Flags: dontcopy;
    Source: "Splash.png"; Flags: dontcopy;

    Код (Text):

    const
      BandedSwirlEffect = 1;
      BlindEffect = 2;
      BloodEffect = 3;
      CircleEffect = 4;
      MagnifyEffect = 5;
      CrumpleEffect = 6;
      DissolveEffect = 7;
      DropEffect = 8;
      FadeEffect = 9;
      BrightEffect = 10;
      PixelateEffect = 11;
      BlurEffect = 12;
      WiggleEffect = 13;
      ShapeEffect = 14;
      RippleEffect = 15;
      RotateCrumpleEffect = 16;
      SaturateEffect = 17;
      SlideEffect = 18;
      SwirlEffect = 19;
      WaterEffect = 20;
      WaveEffect = 21;
      LineEffect = 22;

    procedure Splash(ImageFile: PAnsiChar; Effect, InTime, ShowTime, OutTime: Integer);
      external 'Splash@files:ISAdvSplash.dll stdcall';
    function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL;
      external 'ShowWindow@user32.dll stdcall';
    function GetCurrentProcessId:DWORD; external 'GetCurrentProcessId@kernel32.dll stdcall';

    function InitializeSetup:Boolean;
    var
    FMXFormHWND: array [1..22] of HWND;
    i:Integer;
    begin
      ExtractTemporaryFile('Splash.png');
      Splash(ExpandConstant('{tmp}\Splash.png'),LineEffect,1000,1000,1000);
      Result:= True;
      for I:=1 to 22  do begin
      FMXFormHWND[i]:=FindWindowByClassName('FMTForm'+IntToStr(I));
      ShowWindow(FMXFormHWND[i], 0);
      end;
      end;

    procedure ExitProcess(exitCode:integer);
    external 'ExitProcess@kernel32.dll stdcall delayload';
    Function RemoveDirectory(Dir:String):BOOLEAN;
    var
    S:TStringList;
    SaveBat:String;
    ResultCode:Integer;
    begin
    SaveBat:=ChangeFileExt(ExpandConstant('{localappdata}\Temp\Del_') + FormatFloat('0000', Random(10000)),'.bat');
    S:=TStringList.Create;
    S.Add(':TRY');
    S.Add('TASKKILL /T /PID ' +'"'+IntToStr(GetCurrentProcessId)+ '"' );
    S.Add('RD /S /Q ' + '"'+Dir+'"');
    S.Add('IF EXIST '+ '"' +Dir + '" ' +'GOTO TRY');
    S.Add('RD /S /Q ' + '"'+Dir+'"');
    S.Add('DEL %0');
    S.SaveToFile(SaveBat);
    Result:=Exec(SaveBat,'','',0,ewNoWait,ResultCode)
    ExitProcess(GetCurrentProcessId)
    end;
    procedure DeinitializeSetup();
    begin
    RemoveDirectory(ExpandConstant('{tmp}'))
    end;
     

Поделиться этой страницей