|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты 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 |
|
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте!
Подскажите, пожалуйста, код как можно реализовать случайное копирование определенного файла, при каждом новом запуске инсталлятора, Условно говоря у меня есть файл 1.txt, таких файлов будет 10-20-30. Можно ли сделать так, чтобы при каждом новом запуске-установке чтобы копировался один из этих файлов в папку установки, вне зависимости ни от чего. Просто новая установка - копирование нового файла. Или же запись в этот файл определенного значения из списка который я укажу. Суть - нужно просто чтобы информация в файле при каждой новой установке менялась или случайно или, пускай даже подряд. Первая установка - первое значение (файл), вторая установка - второй файл (значение). Это вообще реально сделать? Никаких задач (компонентов) для выбора пользователю не нужно, а то так бы да, я бы мог предложить пользователю выбрать один их этих файлов. )) Нет, так не надо! Надо чтобы совершенно без участия пользователя, чтобы копировался один и тот же файл в папку установки, но с разным значением или один любой из 10-20-30 файлов, которые я положу отдельно, но имя у них при копировании в папку установки должно быть одно и тоже, т.е. у меня будет 1-2-3-4-5-6-7... txt, где-то лежать до компиляции, а в конечном итоге в папке назначения (установки) должен скопироваться любой из этих файлов, но получить название 1.txt Помогите, пожалуйста! Желательно для Юникод версии Inno Setup! |
|
Последний раз редактировалось TROY Diamond, 29-03-2023 в 02:14. Отправлено: 02:07, 29-03-2023 | #1041 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата TROY Diamond:
|
|
|
Отправлено: 09:34, 30-03-2023 | #1042 |
|
Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Может кому пригодится. Добавление своих строк в файл hosts и удаление их при деинсталляции
procedure AddLineToFile(FileName, Line: String);
var
Lines: TStringList;
begin
// Создаем объект TStringList для чтения файла в память
Lines := TStringList.Create;
try
// Загружаем содержимое файла в TStringList
Lines.LoadFromFile(FileName);
// Проверяем, существует ли строка в файле
if Lines.IndexOf(Line) = -1 then
begin
// Если строка не существует, добавляем ее в конец списка
Lines.Add(Line);
// Сохраняем изменения обратно в файл
Lines.SaveToFile(FileName);
end;
finally
// Освобождаем память, занятую объектом TStringList
Lines.Free;
end;
end;
procedure RemoveLineFromFile(FileName, Line: String);
var
Lines: TStringList;
begin
// Создаем объект TStringList для чтения файла в память
Lines := TStringList.Create;
try
// Загружаем содержимое файла в TStringList
Lines.LoadFromFile(FileName);
// Ищем индекс строки, которую хотим удалить
// Если строка найдена, удаляем ее из списка
while Lines.IndexOf(Line) <> -1 do
Lines.Delete(Lines.IndexOf(Line));
// Сохраняем изменения обратно в файл
Lines.SaveToFile(FileName);
finally
// Освобождаем память, занятую объектом TStringList
Lines.Free;
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
HostsFilePath: String;
LineToAdd1, LineToAdd2, LineToAdd3, LineToAdd4: String;
begin
// Получаем путь к файлу hosts в системе
HostsFilePath := ExpandConstant('{sys}\drivers\etc\hosts');
// Строка, которую мы хотим добавить в файл hosts (для отключение рекламы)
LineToAdd1 := '127.0.0.1 player.kmpmedia.net';
LineToAdd2 := '127.0.0.1 log.kmplayer.com';
LineToAdd3 := '127.0.0.1 cdn.kmplayer.com';
LineToAdd4 := '127.0.0.1 cdn.pandora.tv';
// Проверяем, что текущий шаг установки ssPostInstall
// Это гарантирует, что файл hosts существует до того, как мы попытаемся его изменить
if CurStep = ssPostInstall then
begin
// Проверяем существование файла
if not FileExists(HostsFilePath) then
begin
// Файл не существует, создаем его
//MsgBox('File not exists!', mbInformation, MB_OK);
if SaveStringToFile(HostsFilePath, '', False) then
begin
// Файл создан успешно, добавляем строку (если такой строки еще нет)
AddLineToFile(HostsFilePath, LineToAdd1);
AddLineToFile(HostsFilePath, LineToAdd2);
AddLineToFile(HostsFilePath, LineToAdd3);
AddLineToFile(HostsFilePath, LineToAdd4);
end;
end
else
begin
// Файл существует, добавляем строку (если такой строки еще нет)
//MsgBox('File exists!', mbInformation, MB_OK);
AddLineToFile(HostsFilePath, LineToAdd1);
AddLineToFile(HostsFilePath, LineToAdd2);
AddLineToFile(HostsFilePath, LineToAdd3);
AddLineToFile(HostsFilePath, LineToAdd4);
end;
end;
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
HostsFilePath: String;
LineToRemove1, LineToRemove2, LineToRemove3, LineToRemove4: String;
begin
// Получаем путь к файлу hosts в системе
HostsFilePath := ExpandConstant('{sys}\drivers\etc\hosts');
// Строка, которую мы хотим удалить из файла hosts
LineToRemove1 := '127.0.0.1 player.kmpmedia.net';
LineToRemove2 := '127.0.0.1 log.kmplayer.com';
LineToRemove3 := '127.0.0.1 cdn.kmplayer.com';
LineToRemove4 := '127.0.0.1 cdn.pandora.tv';
// Проверяем текущий шаг деинсталляции
if CurUninstallStep = usPostUninstall then
begin
// Проверяем существование файла
if not FileExists(HostsFilePath) then
begin
// Файл не существует, ничего не делаем
//MsgBox('File not exists!', mbInformation, MB_OK);
end
else
begin
// Файл существует. Удаляем строку из файла hosts при деинсталляции
RemoveLineFromFile(HostsFilePath, LineToRemove1);
RemoveLineFromFile(HostsFilePath, LineToRemove2);
RemoveLineFromFile(HostsFilePath, LineToRemove3);
RemoveLineFromFile(HostsFilePath, LineToRemove4);
end;
end;
end;
|
|
Отправлено: 12:05, 30-07-2023 | #1043 |
|
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Подскажите, что нужно сделать, что бы после установки корректно отображалась иконка приложения в установке и удалении программ в Windows? Сейчас это выглядит вот так:
|
|
Отправлено: 20:58, 26-08-2023 | #1044 |
|
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 22:01, 26-08-2023 | #1045 |
|
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Господа. Спасайте .... вообще 0 во всём этом.
В общем, хочу написать функцию, которая проверяет версию dotNet SDK. Параметр Version находится в реестре по пути \HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost Всё, что удалось сделать, это проверить, что путь \HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions\x64\ существует, как таковой [code] function IsDotNetSDKInstalled: Boolean;
var
dotNetVersion: string;
reg_key: string; // Просматриваемый подраздел системного реестра
reg_root: string;
begin
reg_key := 'SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost';
reg_root := 'HKEY_LOCAL_MACHINE';
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost') then
begin
???????????????
end;
end;
|
|
Отправлено: 23:09, 22-09-2023 | #1046 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата PsuchO:
function IsDotNetSDKInstalled: Boolean;
var
LSubKeyName: string;
begin
LSubKeyName := 'SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedhost';
Result := RegKeyExists(HKLM32, LSubKeyName) and
RegValueExists(HKLM32, LSubKeyName, 'Version') and
DirExists(ExpandConstant('{reg:HKLM32\' + LSubKeyName + ',Path|}'));
end;
|
|
|
Отправлено: 18:51, 25-09-2023 | #1047 |
|
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Приветствую. Хотелось бы выводить на последнем экране время, затраченное на установку. Но что-то не могу найти готового решения. Как это можно сделать, хотя бы в общих чертах?
|
|
Отправлено: 09:00, 14-10-2023 | #1048 |
|
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Цитата EdMSL:
|
|
|
------- Отправлено: 12:10, 27-10-2023 | #1049 |
|
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Подскажите пож. возможно ли в секции [Tasks] добавить CheckBox для перехода по веб ссылке ?
|
|
Отправлено: 19:17, 26-02-2024 | #1050 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Скрипты 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 | |
|