PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [49] 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

R.i.m.s.k.y.
24-09-2015, 14:56
Бонус: командный файл внутри для быстрой смены компилятора с ANSI на Unicode и обратно. »
Compil32.exe
Compil32A.exe
ISCC.exe
ISCCA.exe
кто из них кто для контроля процесса?

El Sanchez
24-09-2015, 16:09
кто из них кто для контроля процесса? »
R.i.m.s.k.y., какого еще контроля? 2 набора файлов, ANSI и Unicode, распакуй все в папку с Inno Setup с заменой файлов. Получишь Unicode-версию компилятора. Если захочешь ANSI-версию, запускаешь командник, Unicode-файлы забекапятся (станут с W на конце), ANSI-файлы (с A на конце) переименуются (станут без буквы), командник тоже переименуется. Наоборот аналогично.

R.i.m.s.k.y.
24-09-2015, 16:17
какого еще контроля? 2 набора файлов, ANSI и Unicode, распакуй все в папку с Inno Setup с заменой файлов. Получишь Unicode-версию компилятора»
вот, сперва копируется юникод-версия
контроль - на случай если батник сглючит по размеру будет видно где анси, а где юникод версии файлов

nik1967
24-09-2015, 21:22
Бонус: командный файл внутри для быстрой смены компилятора с ANSI на Unicode и обратно. »
Эээ... А не проще установить 2 версии - ANSI и UNICODE, а запускать скрипт по контекстному меню (правой кнопкой мыши на файл.iss)? У меня 3 версии установлены :)
http://firepic.org/images/2015-09/24/l5ji69pcnvxr.pngПо умолчанию открывается с помощью расширенной UNICODE. Для этого вносим изменения в реестр. Во вложении файл реестра для win7x64 - само собой прописываем свои пути установки.

еще вопросик - можно как-то свойствам ярлыка выставлять совместимость с вин хр сп2 к примеру? »
Совмастимость - не? (http://krinkels.org/threads/faq-po-inno-setup.7/page-2#post-15803)

R.i.m.s.k.y.
24-09-2015, 21:28
nik1967, дзинкуе, El Sanchez уже ответил тоже самое ;)

Dodakaedr
25-09-2015, 00:32
El Sanchez, наверное вы еще забыли добавить в архив файл ISCmplr.dll Ansi версии. Или убрать переименовку этого файла в батнике?

El Sanchez
25-09-2015, 09:02
El Sanchez, наверное вы еще забыли добавить в архив файл ISCmplr.dll Ansi версии. »
Dodakaedr, куда я смотрел? Еще и ISPP забыл. Спасибо, перезалил.
Эээ... А не проще установить 2 версии - ANSI и UNICODE, а запускать скрипт по контекстному меню (правой кнопкой мыши на файл.iss)? У меня 3 версии установлены »
nik1967, реализация переключения версий может быть любой, кому как нравится.

R.i.m.s.k.y.
25-09-2015, 09:26
GetWindowsVersionEx винды 8, 8.1, 10 »
с патчем Санчеза установщик на анси-версии компилятора при запуске в вин8,1 определяет ОС как 6,3,9600, а десятку как 10,0,10240 вместо 6,4 :/

El Sanchez
25-09-2015, 16:21
с патчем Санчеза установщик на анси-версии компилятора при запуске в вин8,1 определяет ОС как 6,3,9600, а десятку как 10,0,10240 вместо 6,4 :/ »
R.i.m.s.k.y., так и должно быть. 6.4 показывает на Windows 10 Technical Preview.

vadjliss
27-09-2015, 14:00
парни помогите использую вот этот скрипт но иконки не появляются на рабочем столе может кто поправит
#define MyAppName "Photoshop"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
;#define MyAppExeName "Photoshop.exe"
#define MainExe "{app}\Photoshop\Photoshop.exe"
#define MainExe64 "{app}\Photoshop\Photoshop.exe"
#define MainExeDir Copy(MainExe, 1, RPos("\", MainExe)-1)
#define MainExe64Dir Copy(MainExe64, 1, RPos("\", MainExe64)-1)

[Setup]
AppId={{BBDEEB26-E3A9-41C0-97E1-9ED1EC144528}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: C:\Users\WW-W\Desktop\64\ProgramFiles64Folder\*; DestDir: {app}; Check: IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Users\WW-W\Desktop\64\ProgramFilesFolder\*; DestDir: {pf32}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Users\WW-W\Desktop\32\ProgramFilesFolder\Adobe\*; DestDir: {app}; Check: not IsWin64; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{commondesktop}\{#AppName}"; FileName: "{#MainExe64}"; WorkingDir: "{#MainExe64Dir}"; Tasks: desktopicon; Check: IsWin64
Name: "{commondesktop}\{#AppName}"; FileName: "{#MainExe}"; WorkingDir: "{#MainExeDir}"; Tasks: desktopicon; Check: not IsWin64

kotyarko@fb
27-09-2015, 15:18
vadjliss, попробуйте использовать константу {userdesktop}, вместо {commondesktop}.

Nordek
27-09-2015, 15:43
vadjliss,
#define MainExe "{app}\Photoshop.exe"
#define MainExe64 "{app}\Photoshop.exe"




[Icons]
Name: "{commondesktop}\{#MyAppName}"; FileName: "{#MainExe64}"; WorkingDir: "{#MainExe64Dir}"; Tasks: desktopicon; Check: IsWin64
Name: "{commondesktop}\{#MyAppName}"; FileName: "{#MainExe}"; WorkingDir: "{#MainExeDir}"; Tasks: desktopicon; Check: not IsWin64

R.i.m.s.k.y.
27-09-2015, 15:44
vadjliss, а если после установки щелкнуть ПКМ по десктопу и нажать F5?
тогда в [Setup] пропишите ChangesAssociations=true и ChangesEnvironment=true
смысл у них другой но эксплорер заодно передернет десктоп

Nordek
27-09-2015, 16:28
попробуйте использовать константу {userdesktop}, вместо {commondesktop}. »Это причём?

а если после установки щелкнуть ПКМ по десктопу и нажать F5? »И... ничего не изменится.

В #define MyAppName, задано имя "Photoshop"
#define MyAppName "Photoshop"

Далее секция [Setup]
В DefaultDirName назначен путь установки {pf}\{#MyAppName}

DefaultDirName={pf}\{#MyAppName}

т.е #define MyAppName "Photoshop" + DefaultDirName={pf}\{#MyAppName} = C:\Program Files\Photoshop

Далее в #define MainExe задано "{app}\Photoshop\Photoshop.exe"
#define MainExe "{app}\Photoshop\Photoshop.exe"

#define MyAppName "Photoshop" + DefaultDirName={pf}\{#MyAppName} + #define MainExe "{app}\Photoshop\Photoshop.exe" = C:\Program Files\Photoshop\Photoshop\Photoshop.exe


Далее секция [Icons]
В Name указано "{commondesktop}\{#AppName}"

Name: "{commondesktop}\{#AppName}"

В скрипте {#AppName} нет, есть только {#MyAppName}

notmeagain
07-10-2015, 17:46
Добрый день. Есть вопрос, который надо решить. При установке программы надо чтобы была возможность выбрать путь установки программы и выбрать отдельно путь хранения дополнительных файлов и потом второй путь внести в переменную среды.
Главный вопрос как сделать еще один момент с вопросом куда сохранять вторые файлы и как их передать, чтобы внести в переменную среды. Спасибо.

Сам же и отвечу на свой вопрос.
[Registry]
Root: HKCU; Subkey: "Environment"; ValueType:string; ValueName:"nameEnv"; ValueData:"{code:GetDataDir}" ; Flags: preservestringtype ;


[CODE]var
DataDirPage: TInputDirWizardPage;

procedure InitializeWizard;
begin
{ Create the pages }

DataDirPage := CreateInputDirPage(wpSelectDir,
'Выбор директории ', 'Куда сохранять ?',
'Выберите папку и затем нажмите продолжить.',
False, '');
DataDirPage.Add('');

DataDirPage.Values[0] := GetPreviousData('DataDir', '');
end;

procedure RegisterPreviousData(PreviousDataKey: Integer);
var
UsageMode: String;
begin
SetPreviousData(PreviousDataKey, 'DataDir', DataDirPage.Values[0]);
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
I: Integer;
begin
if DataDirPage.Values[0] = '' then
DataDirPage.Values[0] := 'C:\';
Result := True;
end;

function GetDataDir(Param: String): String;
begin
{ Return the selected DataDir }
Result := DataDirPage.Values[0];
end;

буду рад если мне укажут на какие-нибудь ошибки и улучшения на ваш взгляд.

El Sanchez
08-10-2015, 19:13
буду рад если мне укажут на какие-нибудь ошибки и улучшения на ваш взгляд. »
notmeagain,
1. В NextButtonClick проверку DataDirPage.Values[0] = '' сделайте только в CurPageID = wpReady, незачем после каждого клика ее делать.
2. Там же литерал 'С:\' заменить на ExpandConstant('{sd}'), не у всех диск C: есть.
3. В InitializeWizard вторым параметром GetPreviousData написать ExpandConstant('{sd}'). Если первая установка и DataDir неоткуда читать, то DataDirPage.Values[0] получит значение по умолчанию (второй параметр).
4. Локальные переменные I и UsageMode не используются.

habib2302
08-10-2015, 22:12
Помогите решить проблему

http://savepic.ru/7976716.png (http://savepic.ru/7975692.png)

https://yadi.sk/d/fNzh4I8GjcRZe

cl85
08-10-2015, 22:34
Здравствуйте.
Подскажите пожалуйста, какой код добавить в .iss, чтоб файл .xml добавить в планировщик заданий.
Заранее благодарен.

kotyarko@fb
09-10-2015, 10:37
Помогите решить проблему »
Прикрепите всё необходимое для компиляции.

habib2302
09-10-2015, 10:45
kotyarko@fb, https://cloud.mail.ru/public/DWT3/JGbnbafFD




© OSzone.net 2001-2012