|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1270 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., пример:
Цитата Johny777:
|
|
Последний раз редактировалось Mailchik, 13-01-2013 в 21:30. Отправлено: 10:04, 13-01-2013 | #1551 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Mailchik, хорошо только кнопка "назад" после установки не к месту
|
------- Отправлено: 10:03, 14-01-2013 | #1552 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать alert30, попробовала еще такой вариант:
[Setup] AppName=My Program AppVerName=My Program v.1.2 DirExistsWarning=no DefaultDirName={pf}\My Program [_Code] const PING_TIMEOUT = 500; INADDR_NONE = $FFFFFFFF; SOCKET_ERROR = (-1); IP_SUCCESS = 0; IP_BUF_TOO_SMALL = (11000 + 1); IP_DEST_NET_UNREACHABLE = (11000 + 2); IP_DEST_HOST_UNREACHABLE = (11000 + 3); IP_DEST_PROT_UNREACHABLE = (11000 + 4); IP_DEST_PORT_UNREACHABLE = (11000 + 5); IP_NO_RESOURCES = (11000 + 6); IP_BAD_OPTION = (11000 + 7); IP_HW_ERROR = (11000 + 8); IP_PACKET_TOO_BIG = (11000 + 9); IP_REQ_TIMED_OUT = (11000 + 10); IP_BAD_REQ = (11000 + 11); IP_BAD_ROUTE = (11000 + 12); IP_TTL_EXPIRED_TRANSIT = (11000 + 13); IP_TTL_EXPIRED_REASSEM = (11000 + 14); IP_PARAM_PROBLEM = (11000 + 15); IP_SOURCE_QUENCH = (11000 + 16); IP_OPTION_TOO_BIG = (11000 + 17); IP_BAD_DESTINATION = (11000 + 18); IP_ADDR_DELETED = (11000 + 19); IP_SPEC_MTU_CHANGE = (11000 + 20); IP_MTU_CHANGE = (11000 + 21); IP_UNLOAD = (11000 + 22); IP_ADDR_ADDED = (11000 + 23); IP_GENERAL_FAILURE = (11000 + 50); IP_PENDING = (11000 + 255); type ICMP_OPTIONS = record Ttl : Byte; Tos : Byte; Flags : Byte; OptionsSize : Byte; OptionsData : Longint; end; ICMP_ECHO_REPLY = record Address : Longint; status : Longint; RoundTripTime : Longint; DataSize : Longint; Reserved : Integer; DataPointer : Longint; Options : ICMP_OPTIONS; Data : string; end; function IcmpCreateFile(): HWND; external 'IcmpCreateFile@icmp.dll stdcall'; function IcmpCloseHandle(IcmpHandle: Longint): Longint; external 'IcmpCloseHandle@icmp.dll stdcall'; function IcmpSendEcho(IcmpHandle: HWND; DestinationAddress: Longint; RequestData: string; RequestSize: Longint; RequestOptions: Longint; var ReplyBuffer: ICMP_ECHO_REPLY; ReplySize: Longint; Timeout: Longint): Longint; external 'IcmpSendEcho@icmp.dll stdcall'; function inet_addr(sAddr: string): Longint; external 'inet_addr@wsock32.dll stdcall'; function GetPingResult(status: Longint): string; begin case status of IP_SUCCESS: Result:= 'Ping IP: success'; IP_BUF_TOO_SMALL: Result:= 'Ping IP: buf too small'; IP_DEST_NET_UNREACHABLE: Result:= 'Ping IP: destination net unreachable'; IP_DEST_HOST_UNREACHABLE: Result:= 'Ping IP: destination host unreachable'; IP_DEST_PROT_UNREACHABLE: Result:= 'Ping IP: destination protocol unreachable'; IP_DEST_PORT_UNREACHABLE: Result:= 'Ping IP: destination port unreachable'; IP_NO_RESOURCES: Result:= 'Ping IP: no resources'; IP_BAD_OPTION: Result:= 'Ping IP: bad option'; IP_HW_ERROR: Result:= 'Ping IP: hardware error'; IP_PACKET_TOO_BIG: Result:= 'Ping IP: packet too big'; IP_REQ_TIMED_OUT: Result:= 'Ping IP: request timed out'; IP_BAD_REQ: Result:= 'Ping IP: bad request'; IP_BAD_ROUTE: Result:= 'Ping IP: bad route'; IP_TTL_EXPIRED_TRANSIT: Result:= 'Ping IP: ttl expired transit'; IP_TTL_EXPIRED_REASSEM: Result:= 'Ping IP: ttl expired reassem'; IP_PARAM_PROBLEM: Result:= 'Ping IP: parameter problem'; IP_SOURCE_QUENCH: Result:= 'Ping IP: source quench'; IP_OPTION_TOO_BIG: Result:= 'Ping IP: option too big'; IP_BAD_DESTINATION: Result:= 'Ping IP: bad destination'; IP_ADDR_DELETED: Result:= 'Ping IP: address deleted'; IP_SPEC_MTU_CHANGE: Result:= 'Ping IP: spec mtu change'; IP_MTU_CHANGE: Result:= 'Ping IP: mtu change'; IP_UNLOAD: Result:= 'Ping IP: unload'; IP_ADDR_ADDED: Result:= 'Ping IP: address added'; IP_GENERAL_FAILURE: Result:= 'Ping IP: general failure'; IP_PENDING: Result:= 'Ping IP: pending'; INADDR_NONE: Result:= 'Ping IP: bad IP format'; SOCKET_ERROR: Result:= 'Ping IP: can''t open port'; else Result:= 'Unknown status'; end; end; function Ping(sAddr, sendData: string): Longint; var hPort: HWND; dwAddr: Longint; ECHO: ICMP_ECHO_REPLY; begin dwAddr:= inet_addr(sAddr); if dwAddr <> INADDR_NONE then begin hPort:= IcmpCreateFile(); if hPort <> 0 then begin IcmpSendEcho(hPort, dwAddr, sendData, Length(sendData), 0, ECHO, SizeOf(ECHO), PING_TIMEOUT); IcmpCloseHandle(hPort); Result:= ECHO.status; end else Result:= SOCKET_ERROR; end else Result:= INADDR_NONE; end; procedure InitializeWizard(); var str: string; res: Longint; begin res:= Ping('172.31.100.1', 'test'); str:= GetPingResult(res); MsgBox(str, mbInformation, MB_OK); end; |
Отправлено: 11:31, 14-01-2013 | #1553 |
Старожил Сообщения: 398
|
Профиль | Отправить PM | Цитировать Ктонить подскажет код, чтобы инсталлятор через 10 секунд после своего запуска, распаковал в temp и запустил определённый exe?
exe-шник из папки temp ведь сможет скачать из интернета пару килобайт инфы в оперативу? |
Отправлено: 02:56, 15-01-2013 | #1554 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Raf-9600,
|
Отправлено: 13:19, 15-01-2013 | #1555 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Не подскажете, как сделать, чтобы в секции Run была задержка выполнения команды? Т.е. у меня предлагается пользователю выбрать запуск сервера БД и запуск приложения, чтобы запуск приложения осуществлялся чуть позже или после запуска сервера. Флаг waituntilterminated не подходит, т.к. сервер должен оставаться запущенным.. И от пользователя тоже не нужно ждать никаких действий.
|
Отправлено: 10:35, 18-01-2013 | #1556 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Vstanka, я бы вставил вызов пинга там где нужно подождать
Filename: "ping.EXE"; Parameters: " 127.0.0.1 -n 20" |
------- Отправлено: 12:30, 18-01-2013 | #1557 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., а как тогда скрыть флажок, предлагающий запуск приложения, т.к. если вставить так:
,то будет отображаться checkbox, а если убрать postinstall, то в начале вызывается задержка, а потом предлагается запуск приложения? |
Отправлено: 15:11, 18-01-2013 | #1558 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Vstanka,
вариант а) батник для вызова приложения, в котором первой строчкой ожидание, второй - запуск приложения вариант б) [Code] procedure CurStepChanged(CurStep: TSetupStep); res : integer; begin if CurStep=ssDone then begin if ( WizardForm.RunList.Checked[WizardForm.RunList.Items.IndexOf('Запустить приложение')] ) then begin Exec('ping.exe, ' 127.0.0.1 -n 20',ExpandConstant('{sys}'),SW_hide,ewWaitUntilTerminated,res) Exec('твояпрога.ехе, 'параметры проги ',ExpandConstant('{app}\путь до проги'),SW_SHOW,ewNoWait,res); end;//if end;//CurStep=ssDone end; //procedure CurStepChanged(CurStep: TSetupStep); end. [Run] Filename: "сервер.ехе"; Parameters: ""; Description: "Запустить сервер"; Flags: runhidden postinstall Filename: "ping.EXE"; Parameters: ""; Description: "Запустить приложение"; Flags: runhidden |
------- Отправлено: 19:33, 18-01-2013 | #1559 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать можно как-то определить что установщик собрался перегружать комп в конце установки не переопределяя Needrestart?
|
------- Отправлено: 22:42, 18-01-2013 | #1560 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|