Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Ответить
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 9]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо! Попробую

Отправлено: 15:09, 18-04-2019 | #301



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ZVSRus

Старожил


Сообщения: 284
Благодарности: 85

Профиль | Отправить PM | Цитировать


Цитата alexander-mex:
Можно ли сделать с помощью этой программы сборник, чтобы открывалось окно и я мог выбрать, что хочу установить?
Сделано на Inno Setup

Сделано на Inno Setup

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode


Последний раз редактировалось ZVSRus, 18-04-2019 в 16:27.


Отправлено: 16:06, 18-04-2019 | #302


Аватара для ROMKA-1977

Пользователь


Сообщения: 74
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здраствуйте. Подскажите пож. константу папки Сохраненные игры (C:\Users\XXX\Saved Games). В справке такой нет.

Отправлено: 01:04, 27-04-2019 | #303


Аватара для habib2302

Ветеран


Сообщения: 855
Благодарности: 101

Профиль | Отправить PM | Цитировать


ROMKA-1977, как вариант
Код: Выделить весь код
{sd}\Users\{username}\Saved Games
или

Код: Выделить весь код
[Code]
  if RegValueExists(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', '{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}') then
  begin
    // The value exists
  end;
end;
или

Код: Выделить весь код
{reg:HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders,%7B{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}}
{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4} = это путь к папке в случае если пользователь изменит путь через свойства. Проверил от 7 и до 10. Везде один и тот же {4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}

-------
Помог? От "Полезное сообщение" не откажусь!!!


Последний раз редактировалось habib2302, 27-04-2019 в 01:57.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:39, 27-04-2019 | #304


Аватара для habib2302

Ветеран


Сообщения: 855
Благодарности: 101

Профиль | Отправить PM | Цитировать


ROMKA-1977, или же
%USERPROFILE%\Saved Games

-------
Помог? От "Полезное сообщение" не откажусь!!!

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:07, 27-04-2019 | #305


Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата Iska:
Так здесь проблема с программистами, которые в XXI веке продолжают считать, что в мире не существует никакого иного языка, кроме английского. »
Ага, тут в продолжение разговора, я всё-таки решил использовать эту злополучную утилиту, которая не понимает в путях не только символы кириллицы, но и другие нестандартные символы, отличные от букв и цифр ANSI алфавита: [A-z0-9]. Вообщем мне удалось соорудить проверку на символы кириллицы и оно прекрасно работает.
IsAnsi
Наверху кода создаю такую функцию:
Код: Выделить весь код
function IsAnsi(S: String): Boolean; var S1, S2: string;
begin S1 := AnsiUppercase(S); S2 := Uppercase(S); if CompareStr(S1, S2) = 0 then
  begin S1 := Lowercase(S); S2 := AnsiLowercase(S); if CompareStr(S1, S2) = 0 then
    Result := True;
  end;
end;
А потом, там где я хочу произвести проверку, вставляю код проверки символов в пути к папке программы и при обнаружении вывожу предупреждение с завершением работы:
Код: Выделить весь код
if not (IsAnsi(ExpandConstant('{src}'))) then
  begin MsgBox(ExpandConstant('{cm:CirillicPATH}')+#10#10+ExpandConstant('{src}'),mbError,MB_OK);
  Exit;
end;
Но теперь я хочу дополнить проверку и на нестандартные символы, типа !, "@, #, $, %, ^, &, *,...
В инете нашёл такую интересную процедуру определения символов по их номерам и даже по диапазонам номеров в десятичном виде:
Код: Выделить весь код
procedure justNumbers(Sender: TObject; var Key: Char);
begin
  if not ((Key = #8) or (Key = #43) or ((Key >= #48) and (Key <= #57))) then
  begin
    Key := #0;
  end;
end;
Но вот что-то никак ума не приложу, как бы мне теперь объединить эти две конструкции, чтобы и символы кириллицы анализировала, и нестандартные символы определяла?
Либо отказаться от первой функции и сделать определение символов по их номерам?
Чую собака неглубоко зарыта, но что-то у меня пока не получается никак.

Последний раз редактировалось ErikPshat, 29-04-2019 в 08:49.


Отправлено: 19:43, 27-04-2019 | #306


Новый участник


Сообщения: 28
Благодарности: 9

Профиль | Отправить PM | Цитировать


Для одного из проектов искал самый быстрый подсчет crc32 для файлов и решил сделать dll, кому интересно забирайте в аттаче.
подробнее...
Алгоритм работает так: если поддержку SSE 4.2 процессор имеет, срабатывает аппаратный подсчет crc32c (с - использование Intel полинома: $1EDC6F41), в противном случае, если процессор слишком старый и не имеет поддержку SSE 4.2, то срабатывает crc32cfast с оптимизацией на ассемблере (имеет тот же результат подсчета). отличие результата подсчета от стандартного crc32 только из-за использования другого инициализационного полинома.

По заверению авторов кода, результаты подсчета следующие:
- Our optimized unrolled x86 version - aka crc32cfast() - performs the test at a very good pace of 1.7 GB/s;
- SSE 4.2 version - aka crc32csse42() - gives an amazing 3.7 GB/s speed (on both Win32 and Win64 platforms);
- simple rolled version of the algorithm (similar to the one in Delphi zlib unit) runs at 330 MB/s.

Основано на:
https://synopse.info/fossil/info/8fe7cc53b7

Последний раз редактировалось usermode, 29-04-2019 в 15:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:54, 28-04-2019 | #307


Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


usermode, ещё одна DLL конечно никогда не помешает. Только в наши времена подсчёт CRC32 имеет актуальность на маленьких файлах, пускай даже самый быстрый подсчёт CRC32. По крайней мере даже MD5 быстрее подсчитывается стандартной функцией препроцессора GetMD5OfFile, не говоря уже про более точный SHA-1 и более быстрый подсчёт больших файлов по 1-4-10-20 Гига стандартной функцией препроцессора GetSHA1OfFile. Может быть я ошибаюсь, вашу утилиту не пробовал, но на практике часто приходится подсчитывать файлы по 4 и более Гб, так вот, какой бы быстрый не был бы CRC32, так это можно уснуть надолго, тогда как SHA-1 обычно замечено мною, что на несколько махов быстрее подсчитывается

Кстати, стоит мне изменить путь s:='D:\somebigfile.dat'; или подсунуть по этому пути реальный файл, как прога тут же выдаёт ошибку:



Ну а мне никто так и не поможет?

Последний раз редактировалось ErikPshat, 29-04-2019 в 09:38.


Отправлено: 09:01, 29-04-2019 | #308


Новый участник


Сообщения: 28
Благодарности: 9

Профиль | Отправить PM | Цитировать


ErikPshat, у меня dll на всех ОС, включая Windows 10, работает нормально. Может причина в "неуниверсальных" параметрах выделения или освобождения памяти.
Можно попросить протестировать "болванку" на дельфи? Нужно прописать путь к существующему файлу, нажать каждую кнопку и сообщить, на каких будут ошибки. Заодно сравните на гигабайтных файлах скорость подсчета сравнительно md5 и sha-1 (предпочтительно на ssd при наличии) и убедитесь в обратном
У меня на ssd подсчитывает фильм 2.22 Gb стандартной системной реализацией за 4.8sec, sse4.2 за 0.8sec, fast assembler за 1.2 sec.

Цитата:
Ну а мне никто так и не поможет?
когда-то давно писал такой "дурацкий" код на проверку символов, которые указаны в abc, все остальные несуществующие символы будут отсчитывать ошибку.
Скрытый текст
Код: Выделить весь код
procedure InitializeWizard;       
var
  i,j: integer;    
  s,abc: string;                                              
begin
   j  := 0;
   abc := '0123456789абв%*@abc';

   s:='012';

   for i:=1 to Length(s) do
   begin
     if Pos(s[i],abc) = 0 then
     inc(j);
   end;

   if j >= 1 then
   begin
     MsgBox('Error! 0123456789абв%*@abc chars only are allowed!', mbInformation, MB_OK);
     Exit;
   end;
end;

лучше учесть те символы, что можно, чем учитывать все, что нельзя.

add
причина ошибки dll в некорректном определении технологии SSE 4.2, там где ее нет, например на CPU с SSE 4.1, она определяется что есть.

Последний раз редактировалось usermode, 29-04-2019 в 15:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:32, 29-04-2019 | #309


Аватара для ErikPshat

Пользователь


Сообщения: 54
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата usermode:
причина ошибки dll в некорректном определении технологии SSE 4.2, там где ее нет, например на CPU с SSE 4.1, она определяется что есть. »
Ну вот, значит нужно над совместимостью поработать



За код спасибо, правда я видел подобные варианты, но видимо это самый универсальный вариант, правда я хотел бы взять диапазон через Key: Char по нумерации в таблице ASCII-символов.

Последний раз редактировалось ErikPshat, 29-04-2019 в 15:23.


Отправлено: 14:26, 29-04-2019 | #310



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход