|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2] |
|
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
|
Ветеран Сообщения: 1133 |
Лимит страниц.
Тема закрыта. Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3] Внимание! Данная тема предназначена только для обсуждения написания скриптов ! Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Ссылка на архив предыдущей темы (также можно скачать из вложения) |
|
------- Отправлено: 22:06, 23-08-2009 |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать semiono, на все вопросы
сначала читаем хэлп, потом пишем код есть еще вариант, к сожалению наиболее часто используемый, тупо копируем чужой код и не вникаем ЗЫ в хэлпе есть ответы процентов на 60 вопросов. на твой Цитата semiono:
|
|
Отправлено: 23:14, 14-03-2010 | #1541 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Из хелпа
Example: var ResultCode: Integer; begin // Launch Notepad and wait for it to terminate if Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then begin // handle success if necessary; ResultCode contains the exit code end else begin // handle failure if necessary; ResultCode contains the error code end; end; // мне было бы понятнее и достаточным так - Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); // и всё!!! Но бывает что это тоже не работает, а я паскаль не знаю к сожалению. end; А такое меня обычно вообще в ступор приводит ![]() function ShellExec(const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean; Если взять современный ассемблер, то все эти безумные типы на паскаль приводяться лишь к dd dw db ;- а классов вообще нет )))) Ответ знаю, надо учиться! |
------- Отправлено: 23:45, 14-03-2010 | #1542 |
Старожил Сообщения: 163
|
Профиль | Отправить PM | Цитировать Цитата semiono:
ShellExec используется для запуска не исполняемого файла (не .exe и не .bat файла) (например открыть файл readMe.txt) function Exec (const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean; Описание: Выполняет указанные исполняемые файлы. Параметр Wait указывает, возвратить значение функции немедленно или подождать, пока запущенный процесс завершится или освободится. Возвращает True если выполнение файла прошло успешно, иначе False. Если возвращено True и Wait=ewWaitUntilTerminated, то ResultCode возвращает код выхода для процесса. Если возвращено False, ResultCode выдает ошибку. Используй SysErrorMessage(ResultCode) для получения описания ошики. function ShellExec (const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean; Описание: Открывает указанный файл или выполняет другое действие, указанное в Verb. В Filename может быть указан документ или папка. Параметр Wait указывает, возвратить значение функции немедленно или подождать, пока запущенный процесс завершится или освободится. Возвращает True, если файл открыт успешно, иначе False. Если возвращено False, ErrorCode выдаст ошибку. Используй SysErrorMessage(ErrorCode) для получения описания ошики. |
|
------- Отправлено: 23:49, 14-03-2010 | #1543 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Я пожалуй всё написал! Наверное без логических ошибок.
[Kode] procedure InitializeWizard(); begin try DeleteFile(ExpandConstant('{sd}\dopuslib.tmp')) except Exit; end; end; procedure CurPageChanged(CurPageID: Integer); var ResultCode: Integer; begin ExtractTemporaryFile('pkill.exe'); if CurPageID = wpReady then begin Exec(ExpandConstant('{tmp}\pkill.exe'), 'dopus.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); Exec(ExpandConstant('{tmp}\pkill.exe'), 'dopusrt.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); if FileExists(ExpandConstant('{reg:HKLM32\Software\VST,Proton.bin|{pf}}\DOpus\dopuslib.dll')) then try RenameFile(ExpandConstant('{reg:HKLM32\Software\VST,Proton.bin|{pf}}\DOpus\dopuslib.dll'), ExpandConstant('{sd}\dopuslib.tmp')) except Exit; end; try DelTree(ExpandConstant('{reg:HKLM32\Software\VST,Proton.bin|{pf}}\DOpus'), False, True, True); except Beep; Beep; Exit; end; end; end; procedure DeinitializeSetup(); ... Например, чтобы троекратно запустить Exec(ExpandConstant('{tmp}\pkill.exe'), 'dopus.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); но при этом не писать три раза эту строку. Или например вызвать эту строку после такого кода - RenameFile(ExpandConstant('{reg:HKLM32\Software\VST,Proton.bin|{pf}}\DOpus\dopuslib.dll'), ExpandConstant('{sd}\dopuslib.tmp')) except Для усиления работы. Или задержки при выполнении практически невозможны? Я имею ввиду, что если файл должен быть переименован, то это выполниться безкомпрописно? Я даже на autoit подстраховывался, хотя так никто не делает, но для скриптов это возможно оправдано - WinWait() WinWait() WinWait() Send() ![]() Ещё по существу, можно ли отпралять файл в корзину? RenameFile(ExpandConstant('{pf}\DOpus\dopuslib.dll'), ExpandConstant('{sd}\Recycled\dopuslib.tmp')) Или это заглючит? Причём тут лучше бы переменная была {Recycled} иначе для NTFS не валидно! |
------- Последний раз редактировалось semiono, 15-03-2010 в 04:42. Отправлено: 04:32, 15-03-2010 | #1544 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать здравствуйте у меня такая проблема "#ifdef UNICODE ; если у вас ошибка на этой строке, то установите препроцессор или исправьте скрипт для вашей версии Inno Setup " вообще незнаю что уже делать,и другие версии Inno Setup ставил,это скрипт для разархивирования FreeArc,помогите пожалуйста(((
|
Отправлено: 10:19, 15-03-2010 | #1545 |
Пользователь Сообщения: 59
|
Профиль | Отправить PM | Цитировать вот код на цвет изменения цвета инстала:
[code_] procedure InitializeWizard(); begin WizardForm.Font.Color:=Clgreen; WizardForm.WelcomeLabel1.Font.Color:=ClRed; WizardForm.FinishedHeadingLabel.Font.Color:=ClRed; WizardForm.PageNameLabel.Font.Color:=ClRed; end; ![]() может стоит еще что-нибудь дописать, чтобы цвет изменился? |
Отправлено: 16:00, 15-03-2010 | #1546 |
Старожил Сообщения: 163
|
Профиль | Отправить PM | Цитировать Цитата alex2010:
Измените цвет текста этого лейбла и все (FreeSpaceLabel:= TLabel.Create(WizardForm)) |
|
------- Отправлено: 17:32, 15-03-2010 | #1547 |
Пользователь Сообщения: 59
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:03, 15-03-2010 | #1548 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата solvador:
Например, грубо говоря я читаю реестр $1 = RegRead(HKLM\Software\Classes\exefile\DefaultIcon) $2 = RegRead(HKLM\Software\Classes\dllfile\DefaultIcon) $3 = RegRead(HKLM\Software\Classes\sysfile\DefaultIcon) (пишу наугад, на синтаксис не обращайте внимание) Как мне эти переменные $(1,2,3) поочерёдно вписывать в файл с заменой, найти A и заменить на $1, найти B и заменить на $2... То-есть условие поиска должно изменятся разумеется... Но ведь весь код поиска для этого глупо переписывать, особенно если переменных штук десять и более. ??? Очень хотелось бы такой код поглядеть! Это было бы ещё полезнее для пользования. И пожалуйста полный пример напишите вместе с RegRead() кодом корректно? Процедура может быть DeInitializate Install ~ в конце кароче установки... ?! |
|
------- Отправлено: 19:59, 15-03-2010 | #1549 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Здравствуй народ.
Кто знает, где найти такую тему (см. вложение)? |
Отправлено: 23:46, 15-03-2010 | #1550 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Inno Setup .:[все вопросы]:. | Mchik | Автоматическая установка приложений | 1329 | 23-08-2009 20:13 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|