|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Ещё раз о таймере... Отсчитать время можно также с помощью функции timeGetTime
Эта функция якобы менее ресурсоёмкая, сравнительно с GetTickCount... OutFile "Elapsed Time-timeGetTime.exe" Section System::Call "winmm::timeGetTime() i .r0 ?r" Sleep 1200 System::Call "winmm::timeGetTime() i .r1 ?r" System::Free 0 IntOp $0 $1 - $0 IntOp $1 $0 / 1000 IntOp $0 $0 % 1000 IntOp $2 $1 / 60 IntOp $1 $1 % 60 IntOp $3 $2 / 60 IntOp $2 $2 % 60 MessageBox MB_OK "Elapsed Time $3 hours $2 min $1 sec $0 ms" SectionEnd которая извлекает текущее значение счетчика высокого разрешения. Только зачем это нужно на практике не ясно... Эту функцию чаще применяют для всякой Random_изации, что есть тоже не понятное явление для практики... Обычного подсчёта мне добиться не удалось... Синтаксис был такой ("основной" ,без вычитания...) : |
Последний раз редактировалось MKN, 25-02-2013 в 17:42. Отправлено: 17:34, 25-02-2013 | #291 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MKN:
System::Call "kernel32::QueryPerformanceCounter(*l.r1)i.R0" sleep 500 System::Call "kernel32::QueryPerformanceCounter(*l.r2)" System::Int64Op $2 - $1 pop $3 MessageBox MB_OK "$$2 = $2$\n$$1 = $1$\n$$3 = $3$\nвозврат QueryPerformanceCounter = $R0" IDOK Что функция возвратила в буфер - не понятно, может тут и числа быть с плавающей запятой, который NSIS не умеет работать (хотя стандарный плаг Math (для мат. вычислений) умеет. Дерзай! |
|
------- Отправлено: 19:45, 25-02-2013 | #292 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать возникла задача сделать небольшую програмку
при запуске просит выбрать букву диска съемного а далее работает с этим диском (меняет атрибуты всех файлов) как менять атрибуты файлов я догадываюсь а вот как определять букву диска не знаю. подскажите плииизз все таки не нашел как менять атрибуты |
Отправлено: 21:21, 26-02-2013 | #293 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать andryz80, Справочник по NSIS
GetDrives: перечисляем устройства хранения информации Locate: поиск файлов/папок и не только... Аттрибуты файлам устанавливаются командой SetFileAttributes Аттрибуты, которые можно установить: NORMAL, ARCHIVE, HIDDEN, OFFLINE, READONLY, SYSTEM, TEMPORARY ИХ можно комбинировать, т.е. для файла указывать сразу несколько аттрибутов, только разделить их нужно вертикальной чертой (пример выше) |
------- Отправлено: 21:36, 26-02-2013 | #294 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать а атрибуты папок какой командой менять?
|
Отправлено: 22:07, 26-02-2013 | #295 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать кстати может я велосипед изобретаю? планирую програмку сделать дл борьбы с вирусом, который на флешке прячет файлы.
может уже есть готовая? |
Отправлено: 23:00, 26-02-2013 | #296 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:10, 26-02-2013 | #297 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать почему бред?
вполне под силу исправить реестр (отключение возможности загрузки в защищенном режиме) почистить папки в которых прописывается вирус удалить на флешке папку с вирусом авторан и ярлыки изменить атрибуты папок вроде должно сработать |
Отправлено: 23:36, 26-02-2013 | #298 |
Новый участник Сообщения: 11
|
Цитата kotkovets:
SOS! Мне надо как-то привести к общему знаменателю кусок кода, только никак не могу собразить как это заставить перейти на Start: - после нажатия OK, а без нажатия - на Exit:, если функция в любом случае возвращает 1, нажимай ОК или не нажимай: !include "MUI.nsh" SilentInstall Silent OutFile "Install.exe" !insertmacro MUI_LANGUAGE Russian !macro MsgBox out text title flags System::Call "user32::MessageBoxTimeout(i $HWNDPARENT, t '${text}', t '${title}', i ${flags}, i 0, i 5000) i.s" Pop ${out} !macroend Section "MessageBox" !insertmacro MsgBox $0 "Продолжим установку?" "Оконо закроется через 5 сек." 0x40|0x40 Start: nsDialogs::SelectFileDialog open "" "Приложение (*.exe;*.msi)|*.exe;*.msi|Файлы (*.reg;*.bat;*.cmd;*.js;*vbs)|*.reg;*.bat;*.cmd;*.js;*vbs|" Pop $1 StrCmp $1 "" Cancel MessageBox MB_OK|MB_ICONINFORMATION "Выбран файл $1" ExecWait "$1" Goto Retry Cancel: MessageBox MB_RETRYCANCEL|MB_ICONQUESTION "Выберите файл." IDRETRY Start Retry: MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION "Установим что-то ещё?" IDYES Start IDNO Exit Exit: SetAutoClose true SectionEnd Цитата MKN:
|
||
Последний раз редактировалось Waterclo, 27-02-2013 в 12:25. Отправлено: 12:04, 27-02-2013 | #299 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Waterclo,
Для различия кодов возврата надо использовать сообщение типа 0x1 (или иное "несколькокнопочное", с учётом конкретных кодов возврата) !include "MUI2.nsh" !insertmacro MUI_LANGUAGE "English" OutFile "MsgBoxTimeout.exe" !macro MsgBox out text title flags System::Call "user32::MessageBoxTimeout(i $HWNDPARENT, t '${text}', t '${title}', i ${flags}, i 0, i 2000) i.s" Pop ${out} !macroend Section !insertmacro MsgBox $0 " Текст сообщения " " Заголовок " 0x40|0x1 ;MessageBox MB_OK "Return Code: $0" ${If} $0 != 1 MessageBox MB_OK "Прошло 2 с. Значит Exit или ещё чего там..." Quit ${EndIf} MessageBox MB_OK "нажали ОК, значит делаем то то" SectionEnd А вешать таймер отсчёта на кнопку в сообщении - хлопотно и наверняка громоздко. И стоит ли оно того... Может конечно кто и заинтересуется и напишет плаг, но маловероятно... |
Последний раз редактировалось MKN, 27-02-2013 в 17:01. Отправлено: 16:49, 27-02-2013 | #300 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
[архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|