|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1271 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Photon9, скрипт скрасил бы твой сумбур
пока примерно так [Tasks] Name: vcredist; Description: "Установить visual c++"; GroupDescription: Дополнительные компоненты ... [Run] Tasks: vcredist; Filename: "vcredist.exe"; Parametrs: " /Q /norestart"; Description: Установка visual c++; Flags: RinHidden //параметры установки vcredist.exe уточни Цитата semiono:
|
|
------- Последний раз редактировалось R.i.m.s.k.y., 14-12-2011 в 16:03. Отправлено: 15:44, 14-12-2011 | #381 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 838
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y., у меня кажется всё ещё проблемма)
При пустом вводе без параметров не работает, когда я end сам добавил. Сейчас перед end добавил Result := True; стало работать но боюсь что не корректно... пока проверяю.. Мне нужно чтобы работало как с параметрами /x1 /x2 так и без них, причём могут быть дефолтные ключи, например /verysilent надеюсь это не должно конфликтовать? Пока конкретная проблемма с пустым вводом получилась... |
------- Отправлено: 16:16, 14-12-2011 | #382 |
Пользователь Сообщения: 91
|
Профиль | Сайт | Отправить PM | Цитировать YURSHAT
Спасибо всё работает, НО нужно чтобы файл создавался в процессе установки, как из "[INI]" и/или был пустым, а потом вводил моё значение? Тоже работает, спасибо! Это "надёжный" способ? Пользователь никак НЕ сможет продолжить установку БЕЗ прочтения?! А, что вот это закомментированное "//WizardForm.Caption:= IntToStr(CurrLine);", такое, если его раскомментировать и скомпилировать, то название приложения изчезает и в заголовке и появляется "27" Как в процессе установки запустить, а потом автоматически его закрыть, не имеет значение из секции Run или Code? Можно ведь, наверное и через "taskkill.exe" как-то это сделать? Есть ли возможность при запуске установщика и/или в процессе установки, собрать необходимые сведения о компе, а потом их добавить в ветку реестра устанавливаемого приложения? Или может какой-нибудь параметр есть? Есть же ведь имя компа, имя пользователя и т.п. Это ведь определяется? Мне ,к примеру нужно, в реестре в ветке приложения создать ключ для видеокарты: "3D Device" со значение "Название видеокарты" и т.п. А кнопка "Отмена" и сам установщик, должен не реагировать во время выполнения команд из секции Code? Это никак не исправить? И когда его "отпускает" если нажать на кнопку "Отмена", можно ли "откатить" всё, чтобы в папке установки ничего не осталось или это действует только на "стандарт"? |
Отправлено: 16:18, 14-12-2011 | #383 |
Ветеран Сообщения: 838
|
Профиль | Отправить PM | Цитировать а ну всё! получилось, протестил варианты!
|
------- Отправлено: 16:19, 14-12-2011 | #384 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать semiono, /verysilent как видишь не учитывается и никак не влияет
какое второе условие на копирование в секции Files x1files? выбор из списка компонентов? у тебя /х2 /х1 всегда идут вместе с /verysilent? я ж не знал что у тебя еще условия, какие граничные условия обозначил - такие я тебе и сделал естественно что можно в подчековую функцию напихать таким же макаром еще проверок для конкретизации Цитата TROY Diamond:
TROY Diamond почисть личку, ничего не отправляется |
|
------- Последний раз редактировалось R.i.m.s.k.y., 14-12-2011 в 16:35. Отправлено: 16:20, 14-12-2011 | #385 |
Ветеран Сообщения: 838
|
Профиль | Отправить PM | Цитировать ; ~ Lowercase('/x1') : x1 := true; Lowercase('/x2') : x2 := true; end; Result := True; end Result := True; end; 2001-2005 GmbH, Semiono //setup.exe //setup.exe /x1 //setup.exe /x2 //setup.exe /x2 /x1 //setup.exe /x2 /x1 /verysilent это как в КП: "давим окурок левой ногой, потом правой а потом обееми сразу" Цитата R.i.m.s.k.y.:
|
|
------- Отправлено: 16:23, 14-12-2011 | #386 |
Ветеран Сообщения: 838
|
Профиль | Отправить PM | Цитировать Вот мой файл который можно использовать так: killsys.exe calc.exe.
Код 32-битный, но он может закрывать 64-битные приложения. Работает рекурсивно, то-есть закроет все процессы. Исходник: include '%fasm%/win32ax.inc' section '.code' executable start: invoke GetCommandLine invoke CommandLineToArgv,eax,a cmp dword [a],1 push eax jbe exit push dword [eax+4] call AdjustMyToken stdcall findProcessID test eax,eax jz exit invoke OpenProcess,PROCESS_TERMINATE,FALSE,eax push eax invoke TerminateProcess,eax,1 invoke CloseHandle,[b] jmp start exit: invoke ExitProcess,NULL SE_PRIVILEGE_ENABLED = 2 TOKEN_ADJUST_PRIVILEGES = 32 TOKEN_QUERY = 8 TH32CS_SNAPPROCESS = 2 AdjustMyToken: invoke LookupPrivilegeValue,NULL,NULL,tokenPriv.LUID1 mov dword [tokenPriv.PrivilegeCount],1 mov dword [tokenPriv.Attributes],SE_PRIVILEGE_ENABLED invoke OpenProcessToken,-1,TOKEN_ADJUST_PRIVILEGES OR TOKEN_QUERY,b invoke AdjustTokenPrivileges,[b],FALSE,tokenPriv,NULL,NULL,NULL invoke CloseHandle,[b] ret findProcessID: push ebp invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,NULL mov ebp,eax mov dword [procEntry.dwSize],sizeof.PROCESSENTRY32W invoke Process32First,eax,procEntry @@: invoke Process32Next,ebp,procEntry test eax,eax jz @f invoke lstrcmpi,procEntry.szExeFile,dword [esp+8] test eax,eax jnz @r mov eax,dword [procEntry.th32ProcessID] @@: pop ebp ret section '.data' readable writeable a rd MAX_PATH b rd MAX_PATH struct TOKEN_PRIVILEGES PrivilegeCount dd NULL LUID1 dd NULL LUID2 dd NULL Attributes dd NULL ends tokenPriv TOKEN_PRIVILEGES struct PROCESSENTRY32W dwSize dd NULL cntUsage dd NULL th32ProcessID dd NULL th32DefaultHeapID dd NULL th32ModuleID dd NULL cntThreads dd NULL th32ParentProcessID dd NULL pcPriClassBase dd NULL dwFlags dd NULL szExeFile dw MAX_PATH dup NULL ends procEntry PROCESSENTRY32W section '.idata' import readable library advapi32,'ADVAPI32.DLL',kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL' include '%fasm%/api/advapi32.inc' import kernel32,CloseHandle,'CloseHandle',CreateToolhelp32Snapshot,'CreateToolhelp32Snapshot',\ ExitProcess,'ExitProcess',GetCommandLine,'GetCommandLineW',lstrcmpi,'lstrcmpiW',\ OpenProcess,'OpenProcess',Process32First,'Process32FirstW',Process32Next,'Process32NextW',\ TerminateProcess,'TerminateProcess' import shell32,CommandLineToArgv,'CommandLineToArgvW' |
------- Последний раз редактировалось semiono, 14-12-2011 в 16:39. Отправлено: 16:34, 14-12-2011 | #387 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата semiono:
а это уже к ветеринару, а не к нам |
|
------- Отправлено: 16:39, 14-12-2011 | #388 |
Новый участник Сообщения: 39
|
Профиль | Отправить PM | Цитировать Вот скрипт, не уверен что я правильно вставил данные, жду совета
|
Отправлено: 17:26, 14-12-2011 | #389 |
Пользователь Сообщения: 148
|
Профиль | Отправить PM | Цитировать semiono,
как использовать killsys.exe Exec(ExpandConstant('{tmp}\killsys.exe'), 'setup.tmp', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); так не работает. как надо? |
Отправлено: 17:42, 14-12-2011 | #390 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Test | ferget | Тест-форум | 0 | 24-08-2011 01:25 | |
test | ! ! Aaa ! ! | Тест-форум | 0 | 23-04-2011 11:29 | |
test | Santa aka Snt | Тест-форум | 0 | 16-04-2011 22:35 | |
test | xolod. | Программное обеспечение Linux и FreeBSD | 0 | 19-04-2009 21:03 | |
Test memory | KEugeNik | Хочу все знать | 11 | 23-11-2003 23:11 |
|