Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: vint56
Дата сообщения: 15.07.2016 21:08
agastan
Source: "Настройки игы и сохранения папка\*"; DestDir: "{userdocs}\My Games\Crysis"; Flags: ignoreversion recursesubdirs createallsubdirs
Автор: agastan
Дата сообщения: 15.07.2016 21:10
vint56
Спасибо большое за быстрый ответ, сейчас гляну, кстате что то у меня текст автоматически скрывается, 10 раз убирал тэг.

Добавлено:
vint56
ОГРОМНОЕ СПАСИБО! Как часы с первого раза сработало. Больше месяца маялся.
Автор: MaGGistoR
Дата сообщения: 15.07.2016 22:24
дайте скрип на RG Catalyst
Автор: agastan
Дата сообщения: 15.07.2016 23:54
Застрял вот еще с чем, не могу полностью переоформить внешний вид РеПака, не могу редактировать (удалить, изменить, поменять размер), как быть?

http://s017.radikal.ru/i443/1607/6f/adf4d5d1d46dt.jpg
Автор: vanik1967
Дата сообщения: 18.07.2016 10:51
MaGGistoR

Цитата:
дайте скрип на RG Catalyst

Вам как, завернуть, или так схаваете?
Ну или Тикуна ждите - может снова сольёт. (правда в этот раз я ему не давал данный скрипт).


Автор: MaGGistoR
Дата сообщения: 18.07.2016 16:27
НЕ надо,сам нашол!
Автор: southron4965
Дата сообщения: 01.08.2016 15:42
Возможно ли создать сценарий инсталлятора (состоящего из нескольких папок), в котором пользователь сможет выбирать какую именно папку ему распаковать?
Интересует создание инсталлятора, который будет спрашивать или предоставить выбор какую версию программы х32 или х64 распаковать.
Спасибо.
Автор: StalkerSoftware
Дата сообщения: 22.08.2016 08:48
Hi All,

Задача простая: Создать на рабочем столе папку и задать этой папке
определенную иконку.

В FAQ по ISS это вроде бы описано, делаю и проверяю см. test.iss.

На WinXP SP3 все работает более-менее нормально: после отработки установки,
на рабочем столе появляется папка, и через несколько секунд после окончания
установки она меняет свою иконку на заданную.

Пробую тоже самое на Win7 x64 SP1. Сама папка создается нормально, а вот
иконку она менять не хочет. Файл desktop.ini который я создаю в этой папке
точно такой же, как если бы я поменял эту иконку руками.
Я подозреваю, что помимо создания этого файла, надо дернуть какую то
API-функцию, что бы сказать винде о смене иконки у папки, но вот какую
именно я не знаю.

В общем нужна помощь в решении указанной выше задачи.

[more=Это мой тестовый скрипт]
; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Моя программа"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DA6C91DB-3B95-4AFE-862E-C77CCE2B7E9E}
AppName={#MyAppName}
AppVerName={#MyAppName}
DefaultDirName=C:\TEST
DefaultGroupName="Моя программа"
AllowNoIcons=yes
OutputBaseFilename=test_setup
Compression=lzma
SolidCompression=yes
AllowRootDirectory=True
PrivilegesRequired=lowest
AlwaysShowComponentsList=no

[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"; Languages: Russian

[UninstallDelete]
Type: files; Name: "{commondesktop}\Мой каталог\Desktop.ini"

[Dirs]
Name: "{commondesktop}\Мой каталог"; Attribs: system; Languages: Russian

[INI]
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: ".ShellClassInfo"; Key: "IconResource"; String: "%SystemRoot%\system32\SHELL32.dll,0"; MinVersion: 0,6.0; Languages: Russian
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: ".ShellClassInfo"; Key: "IconFile"; String: "%SystemRoot%\system32\SHELL32.dll"; OnlyBelowVersion: 0,6.0; Languages: Russian
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: ".ShellClassInfo"; Key: "IconIndex"; String: "0"; OnlyBelowVersion: 0,6.0; Languages: Russian
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: "ViewState"; Key: "Mode"; String: ""; MinVersion: 0,6.0; Languages: Russian
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: "ViewState"; Key: "Vid"; String: ""; MinVersion: 0,6.0; Languages: Russian
Filename: "{commondesktop}\Мой каталог\Desktop.ini"; Section: "ViewState"; Key: "FolderType"; String: "Generic"; MinVersion: 0,6.0; Languages: Russian

[Code]
procedure DeinitializeSetup();
var
cFileName :String;
nErrorCode :Integer;

begin

if WizardForm.CurPageID = WpFinished then begin

cFileName := ExpandConstant('{commondesktop}\Мой каталог\Desktop.ini');
Exec('attrib', ' +h +s ' + '"' + cFileName + '"', '', SW_HIDE, ewWaitUntilTerminated, nErrorCode);

end;

end;
[/more]
Автор: usermode
Дата сообщения: 22.08.2016 15:17
Надо было в одном проекте детектить запущенные приложения. WMI вызывать тоже можно, но в некоторых ситуациях лучше работать с api. Так как ISTask.dll от Genri не поддерживает детект 64-битных приложений, то скомпилировал dll в Delphi, которая это может.

Скачать isproc.dll с примером:
http://www18.zippyshare.com/v/zaDNVPjY/file.html
Автор: vint56
Дата сообщения: 24.08.2016 09:18
StalkerSoftware
[more=Пример]
[Setup]
AppName=Иконка
AppVerName=Иконка
DefaultDirName={pf}\Иконка
DefaultGroupName=Иконка

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Dirs]
Name: "{commondesktop}\Мой каталог"; Attribs: system; AfterInstall: CreateIni();

[Files]
Source: icon.ico; DestDir: {commondesktop}\Мой каталог; Attribs: hidden;

[Code]
type
#ifdef UNICODE
#define A "W"
PChar = PAnsiChar;
#else
#define A "A"
#endif

function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{commondesktop}\Мой каталог\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
SetFileAttributes(PChar(ExpandConstant('{commondesktop}\Мой каталог\Desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//[/more]
Автор: Blackstar503
Дата сообщения: 26.08.2016 14:49
Здравствуйте.
Я хочу начать делать репаки программ , но столкнулся с проблемой.
Как сделать в Inno Setup автоматический анализ разрядности операционной системе.
Автор: mig73
Дата сообщения: 26.08.2016 15:13
Русская справка к версии 5.5.9, автор перевода BagIra, bugron | Chm-версия
Автор: StalkerSoftware
Дата сообщения: 28.08.2016 14:02
vint56

Цитата:
Пример

Спасибо помогло. Хотя я честно говоря так и не понял, почему не работал мой скрип.
Автор: Blackstar503
Дата сообщения: 28.08.2016 22:56
Здравствуйте. Как добавить в контекстное меню проводника команду "открыть в AppName" с возможностью выбора в процессе инсталяции программы - добавлять программу в контекстное меню или нет. Заранее благодарю.
Автор: ZVSRus1957
Дата сообщения: 29.08.2016 11:00
Blackstar503

Так не пойдёт?
[more=Читать дальше...]

Код:
[Setup]
AppName=MyAppName
AppVersion=1.5
DefaultDirName={pf}\MyAppName

[Registry]
Root: HKCR; SubKey: *\shell\MyAppName; ValueType: string; ValueName: MUIVerb; ValueData: Открыть в MyAppName; Check: ContextMenuCheck; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; SubKey: *\shell\MyAppName; ValueType: string; ValueName: Icon; ValueData: {pf}\MyAppName\MyAppName.exe; Check: ContextMenuCheck; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKCR; SubKey: *\shell\MyAppName\command; ValueType: string; ValueData: {pf}\MyAppName\MyAppName.exe %1; Check: ContextMenuCheck; Flags: uninsdeletevalue uninsdeletekeyifempty

[Code_]
var
ContextMenu: TNewCheckBox;

function ContextMenuCheck: Boolean;
begin
Result:= ContextMenu.Checked;
end;

procedure InitializeWizard();
begin
ContextMenu := TNewCheckBox.Create(WizardForm);
with ContextMenu do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(10);
Top := ScaleY(140);
Width := ScaleX(300);
Height := ScaleY(17);
Caption := 'Добавить программу в контекстное меню проводника';
end;
end;
Автор: Shaman2
Дата сообщения: 29.08.2016 18:04
В шапке не нашел, может подскажете:

Есть у меня строка:
Source: "..\trunk\whatsnew6.txt"; DestDir: "{app}"; Flags: isreadme ignoreversion

в конце установки можно выбрать "показать файл или нет". А мне надо еще чтобы под ней был выбор "запустить программу или нет". Как это сделать?


Добавлено:
А как в этот код прогресс бар воткнуть?

MyDirs:=['','db\','report.frf\','report.frf\miReports\','report.frf\miHaving\','report.frf\miPrice\','templates\'];
for d:=0 to GetArrayLength(MyDirs)-1 do
begin

MyFiles:=['*']; // 'TS3.exe','gameplay.package','*.precomp','*.jpg' указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}\'+MyDirs[d]); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\Backup\'+Date+'\'+MyDirs[d]); // папка куда бакупить
for i:=0 to GetArrayLength(MyFiles)-1 do
begin
if FindFirst(MyDir+MyFiles[i], FindFiles) then begin
repeat
if not DirExists(BackDir) then ForceDirectories(BackDir);
FileCopy(MyDir+FindFiles.Name, BackDir+FindFiles.Name, False);
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;

end;
Автор: newUser21
Дата сообщения: 30.08.2016 16:12
Привет всем. Создал установщик на inno setup с выбором "для всех" или " только для меня".
Устанавливаю программу с пользователя с правами администратора, выбираю "только для меня".
Но почему в реестр записывается в HKEY_LOCAL_MACHINE, я так понимаю должно в HKEY_CURRENT_USER. И из-за этого у других пользователей в пуске появляется ярлык. То есть получается пользователь с правами админа не может поставить только для себя?
Использую настройки PrivilegesRequired=none
Для пользователя не админа работает хорошо.
Автор: ZVSRus1957
Дата сообщения: 02.09.2016 11:06
Что означает некрологовая лента(слева вверху) - Вопрос к хозяевам форума
Автор: mig73
Дата сообщения: 02.09.2016 13:00
ZVSRus1957
Ужасные новости http://forum.ru-board.com/topic.cgi?forum=29&bm=1&topic=15493#1
Автор: jason49
Дата сообщения: 05.09.2016 05:44
---Удалить---
Автор: ZVSRus1957
Дата сообщения: 05.09.2016 20:45
Ребята уберите ленту. А то получается не Форум а Ритуальная контора.
Автор: YURSHAT
Дата сообщения: 07.09.2016 01:39

Цитата:
Что означает некрологовая лента(слева вверху) - Вопрос к хозяевам форума

Цитата:
Ребята уберите ленту. А то получается не Форум а Ритуальная контора.

Вы темой не ошиблись?
Автор: ZVSRus1957
Дата сообщения: 10.09.2016 20:54
YURSHAT
Я нет а ВЫ?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.