Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 9]
passstrada
12-10-2020, 16:56
Помогите:
1. Скопировать папку с файлами (+ скрытые) в папку C:\Users\Users\Dropbox (не знаю какая константа)
2. В конце установки запустить dropbox_offline.exe с ключами /S /SP- (правильно ли указано?)
[Files]
Source: "C:\Users\vladi\Desktop\Dudonchik\fold\*"; DestDir: "{USERPROFILE?}"; Flags: recursesubdirs
Source: "C:\Users\vladi\Desktop\Dudonchik\dropbox_offline.exe"; DestDir: "{tmp}\Dropbox\";
[Run]
Filename: "{tmp}\Dropbox\dropbox_offline.exe"; Parameters: "/S /SP-"
habib2302
12-10-2020, 17:00
1. Скопировать папку с файлами (+ скрытые) в папку C:\Users\Users\Dropbox (не знаю какая константа) »
В Dropbox можно изменить путь к папке. И вместо {USERPROFILE} лучше найти ветку в реестре и параметр где указывается путь. Считать пути из реестра и копировать.
2. В конце установки запустить dropbox_offline.exe с ключами /S /SP- (правильно ли указано?) »
Да. Правильно
passstrada
12-10-2020, 17:20
habib2302, у меня установка должна быть так:
Я пришел к такому выводу, после того, как увидел что после установки Dropbox. В папке синхронизации создается файл с параметрами конфигурации. Я ее скопировал.
И если просто создать папку Dropbox, то после установки, Dropbox скажет, что он захочет переименовать ее. А с этими параметрами, просто останется в ней.
Тоисть с этими параметрами сразу начнется синхронизация после установки Dropbox (ну, после входа конечно же ж)
Поэтому:
Скопировать папку Dropbox с параметрами конфигурации, что бы сразу после установки Dropbox он их подцепил, и после входа в аккаунт сразу начал синхронизацию.
Так что мне нужно сначала копирование папки, со всем содержимым (и скрытыми файлами), а после выполняется установка Dropbox.
Но я не знаю какая константа пути C:\Users\Users\Dropbox, разве USERPROFILE ? У меня ошибка, а в документации не нашел правильной константы, помогите.
Последовательность будет такая:
1. Копирование файлов для последующей синхронизации.
2. Установка Дропбокса.
3. Конец.
*файл с конфигурацией dropbox прикреплю, для наглядности
habib2302
12-10-2020, 17:52
{USERPROFILE?} »
вместо {USERPROFILE} надо вписать %USERPROFILE%
passstrada
12-10-2020, 18:34
вместо {USERPROFILE} надо вписать %USERPROFILE% »
если быть точнее - {%USERPROFILE}, наверное что-то в новых версиях подправили
habib2302
12-10-2020, 18:47
passstrada, в новой версии нет такой константы,а эта константа %USERPROFILE% виндовая. Для инно используйте {sd}\Users\{username}
…используйте {sd}\Users\{username} »
habib2302, обломится, ежели кто восхочет установить на XP. И на любой версии — не факт, что имя пользователя тождественно имени каталога его профиля.
habib2302
12-10-2020, 19:18
Iska, понятно, но можно указать мин и мак версию или использовать эту константу %USERPROFILE%
В папке синхронизации создается файл с параметрами конфигурации. »Что-то никаких параметров там не видел.
разве USERPROFILE ? »А почему нет?
{%USERPROFILE}
Вы хотя бы справку читаете!?
Откройте справку из первого сообщения и почитайте про Константы, даже на русском есть.
P.S. К слову. Ещё ютуберы жалуются на линуксоидов, что они такие злые, и почему на LORе новичков тролят. Вы даже не удосуживаетесь справку открыть (тем более на русском), так ещё на "простецкой" Windows.
Здравствуйте опять.
Помогите расставить кавычки в параметрах запуска. Всю голову сломал.
Оригинал запуска файла с параметрами.
sqlite3.exe local.ssdb "SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';" > 1.log
Скрипт который не работает (((
[Run]
Filename: "{commonappdata}\sqlite3.exe"; Parameters: """local.ssdb "SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';" ""> 1.log"""
:help:
Скрипт который не работает »
Не знаю, как оно должно прописываться в командной строке, так что, исходя из вашего примера, предположительно так:
[Run]
Filename: {commonappdata}\sqlite3.exe; Parameters: "local.ssdb ""SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';"" ""> 1.log"""
Правильно вроде так (учитавая ЛОГ инно)
Parameters: "local.ssdb ""SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';"" > 1.log";
но сцуко не работает и все (((
Вообщем пока переделал батник в exe , с ним все работает. Мистика....
Вообщем пока переделал батник в exe »
А как в батнике выглядит запуск sqlite3.exe с рабочими параметрами? И зачем в EXE, если IS может запустить батник?
но сцуко не работает и все ((( »
Здесь часто помогает Process Monitor с фильтрами Process Create и Process Start — можно посмотреть, что приходит в конечном итоге процессу в командную строку.
DirtyJohny
13-10-2020, 22:35
Все заработало, еще раз низкий поклон ответившему. Правда осталось одно неприятное явление. При запуске инсталлятора, приветственное окно не двигается, думаю это последняя просьба помочь мне XD Сердечно прошу помощи)
А как в батнике выглядит запуск sqlite3.exe с рабочими параметрами? И зачем в EXE, если IS может запустить батник? »
у меня в 1 сообщении как раз строка команды из батника
я не правильно написал , я хотел запустить sqlite3.exe с параметрами. Вот они и не пошли -(2ое сообщение)
воспользовался BAT to exe и получил exe который уже запускал в ИС (без проблем)
вместе с Gnom_aka_Lexander, мы уже все сделали. Из ЛОГ файла вытащили путь установки.
Если хотите могу кинуть вам исходник всего этого.
у меня в 1 сообщении как раз строка команды из батника »
Если пример (http://forum.oszone.net/post-2936256-704.html) из батника рабочий, то, по идеи, должно быть так:
[Run]
Filename: {commonappdata}\sqlite3.exe; Parameters: "local.ssdb ""SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';"""
- здесь убрал вывод сообщенй программы (sqlite3.exe) в файл (>1.log), так как не является параметром, в данном случае работать не будет и может мешать.
Если нужен вывод в log файл, тогда так:
[Run]
Filename: {cmd}; Parameters: "/C """"{commonappdata}\sqlite3.exe"" ""{commonappdata}\local.ssdb"" ""SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';"" >""{commonappdata}\1.log"""""
boss911, Да , так все работает. Спасибо. :laugh:
Все равно мне нужно было запускать это в самом начале поэтому через код.
begin
ExtractTemporaryFileEx('sqlite3.exe', ExpandConstant('{commonappdata}\SmartSound Software Inc\Libraries'));
ExtractTemporaryFileEx('ss.exe', ExpandConstant('{commonappdata}\SmartSound Software Inc\Libraries'));
Exec(ExpandConstant('{commonappdata}\SmartSound Software Inc\Libraries\ss.exe'), '', '', sw_hide,
ewWaitUntilTerminated, ResultCode);
end;
habib2302
19-10-2020, 19:04
Доброе время суток. Как присвоить команду к каждому компоненту (для нормальной установки и распаковки портативной версии), чтобы можно было использовать тихую установку. https://drive.google.com/uc?id=1ZRIRD-M22_8NHt7yJNp04YTtF9CQTG_4&export=download
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC