PDA

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


Страниц : 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

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}

Iska
12-10-2020, 19:06
…используйте {sd}\Users\{username} »
habib2302, обломится, ежели кто восхочет установить на XP. И на любой версии — не факт, что имя пользователя тождественно имени каталога его профиля.

habib2302
12-10-2020, 19:18
Iska, понятно, но можно указать мин и мак версию или использовать эту константу %USERPROFILE%

Nordek
12-10-2020, 23:22
В папке синхронизации создается файл с параметрами конфигурации. »Что-то никаких параметров там не видел.

разве USERPROFILE ? »А почему нет?
{%USERPROFILE}

Вы хотя бы справку читаете!?
Откройте справку из первого сообщения и почитайте про Константы, даже на русском есть.

P.S. К слову. Ещё ютуберы жалуются на линуксоидов, что они такие злые, и почему на LORе новичков тролят. Вы даже не удосуживаетесь справку открыть (тем более на русском), так ещё на "простецкой" Windows.

VLADEV
12-10-2020, 23:57
Здравствуйте опять.
Помогите расставить кавычки в параметрах запуска. Всю голову сломал.

Оригинал запуска файла с параметрами.

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:

boss911
13-10-2020, 00:59
Скрипт который не работает »
Не знаю, как оно должно прописываться в командной строке, так что, исходя из вашего примера, предположительно так:
[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"""

VLADEV
13-10-2020, 13:02
Правильно вроде так (учитавая ЛОГ инно)


Parameters: "local.ssdb ""SELECT Path from Locations where LocationID == (SELECT Data from Misc where Code == 'DefaultLocation') and Trim(Path) != '' and Trim(RefName) != '';"" > 1.log";

но сцуко не работает и все (((

VLADEV
13-10-2020, 16:25
Вообщем пока переделал батник в exe , с ним все работает. Мистика....

boss911
13-10-2020, 16:56
Вообщем пока переделал батник в exe »
А как в батнике выглядит запуск sqlite3.exe с рабочими параметрами? И зачем в EXE, если IS может запустить батник?

Iska
13-10-2020, 17:38
но сцуко не работает и все ((( »
Здесь часто помогает Process Monitor с фильтрами Process Create и Process Start — можно посмотреть, что приходит в конечном итоге процессу в командную строку.

DirtyJohny
13-10-2020, 22:35
Все заработало, еще раз низкий поклон ответившему. Правда осталось одно неприятное явление. При запуске инсталлятора, приветственное окно не двигается, думаю это последняя просьба помочь мне XD Сердечно прошу помощи)

VLADEV
14-10-2020, 02:33
А как в батнике выглядит запуск sqlite3.exe с рабочими параметрами? И зачем в EXE, если IS может запустить батник? »

у меня в 1 сообщении как раз строка команды из батника
я не правильно написал , я хотел запустить sqlite3.exe с параметрами. Вот они и не пошли -(2ое сообщение)

воспользовался BAT to exe и получил exe который уже запускал в ИС (без проблем)

вместе с Gnom_aka_Lexander, мы уже все сделали. Из ЛОГ файла вытащили путь установки.

Если хотите могу кинуть вам исходник всего этого.

boss911
14-10-2020, 15:01
у меня в 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"""""

VLADEV
15-10-2020, 14:25
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