PDA

Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.


Страниц : 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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [80] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

Salmo
21-04-2015, 17:06
Это включение Тестового режима. Какое значение я получу в $R0, если Тестовый режим уже был включен до этой команды? Отличается ли это значение от ситуации, когда просто "Не удалось включить Тестовый режим"? Мне нужно просто установить факт наличия Тестового режима или его отсутствие без попытки включения.

MKN
21-04-2015, 17:34
факт наличия Тестового режима »
Попробуй считывать параметр SystemStartOptions (REG_SZ) из HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
http://www.sql.ru/forum/671956/rezhimy-raboty-vistax64-disable-driver-signature-test-mode-proverka-drayvera

Salmo
21-04-2015, 17:45
MKN, Спасибо, посмотрю...Сейчас некогда, убегаю...

Посмотрел, да достаточно считать значение параметра...

Serg866
25-04-2015, 23:25
Друзья как битмап картинку делать размером на всю ширину инсталлера?
это надо в welcome.nsh что-то поменять?

;Image control
${NSD_CreateBitmap} 0u 0u 109u 193u ""

Я так понял вот здесь что-то. Подскажите, буду крайне признателен!

Dodakaedr
29-04-2015, 10:34
Как провести проверку запущена ли программа и если она запущена то вывести сообщение с последующим окончанием работы скрипта?

MKN
29-04-2015, 11:38
как битмап картинку делать размером на всю ширину инсталлера? »
Какой конкретно картинки ? Если фоновой, то уже было в теме ( Фоновое изображение на стандартных страницах (на всех или по выбору) )
Для кастомных страниц, тоже уже рассматривали в теме. Используй поиск...

Как провести проверку запущена ли программа »
См "Справочник" и тему. Уже не раз было...

Salmo
29-04-2015, 11:41
Dodakaedr,

;подключаем библиотеку
!include "ProcessFunc.nsh"



;Поиск запущенного процесса по имени процесса

;По указанному имени ищем запущенный процесс
;${FindProcessName} "process.exe" $var
;process.exe - Имя процесса с расширением, которое требуется найти.
;возвращаемые значения в указанную переменную $var

;$var = 1 -процесс найден.
;$var = none -процесс не найден.
;$var = error -ошибка получения снимка запущенных процессов

${FindProcessName} "explorer.exe" $0

StrCmp $0 "1" 0 +2
MessageBox MB_ICONINFORMATION|MB_OK "Проводник запущен!"
;нужный код
StrCmp $0 "none" 0 +2
MessageBox MB_ICONINFORMATION|MB_OK "Проводник не запущен!"
;нужный код
Quit


В Справке в этом коде ошибки

Dodakaedr
29-04-2015, 12:21
Salmo, Как исправить этот конфликт при компиляции? Section: "Main"
!insertmacro: _If
!verbose: Invalid verbose level
Error in macro _ProcessExists on macroline 3
Error in macro _If on macroline 9

K.A.V.
29-04-2015, 12:42
В Справке в этом коде ошибки »
Ошибки не в справке, а в том, что под 3 версию NSIS файл инклуда не работает
Если читать тему постоянно, то можно было бы давно себе сохранить нужный файлик или попросить kotkovets вносить изменения в шапку, когда мы правим файлы, выкладывая изменённые библиотеки (http://forum.oszone.net/post-2390157-1284.html)

Хотя в справке есть немного грешка на этой страничке, например, возвращаемое значение в первом примере 1 - если процесс найден
${FindProcessName} "explorer.exe" $0
StrCmp $0 1 0 +2
MessageBox MB_ICONINFORMATION|MB_OK "Проводник запущен!"
StrCmp $0 none 0 +2
MessageBox MB_ICONINFORMATION|MB_OK "Проводник не запущен!"

Как исправить этот конфликт при компиляции? »
Попробуйте загрузить обновленный ProcessFunc по ссылке, которую я указал выше и посмотрите, останется ли проблема

Dodakaedr
29-04-2015, 12:50
Попробуйте загрузить обновленный ProcessFunc по ссылке, которую я указал выше и посмотрите, останется ли проблема »
Проблема исправлена! Благодарю.

kotkovets
29-04-2015, 12:53
Dodakaedr, скачайте с шапки темы правленный хедер

Salmo
29-04-2015, 12:57
Хотя в справке есть немного грешка на этой страничке, например, возвращаемое значение в первом примере 1 - если процесс найден » Я это и имел ввиду... И еще, скомпилированные EXE_шники не отрабатывали, если 1 и none не были взяты в кавычки... Это что?

K.A.V.
29-04-2015, 13:20
скомпилированные EXE_шники не отрабатывали, если 1 и none не были взяты в кавычки »
У меня отрабатывает всё нормально в таком виде без кавычек

Это что? »
На магию похоже :)

Salmo
29-04-2015, 13:26
На магию похоже » Эта магия, наверное, связана с тем, что компилировал я в SFX Creator 2.7 и хедер старый?

K.A.V.
29-04-2015, 14:14
SFX Creator 2.7 »
Ну, во-первых, я таким старьём не пользуюсь, у меня даже исходников этой версии нет :biggrin:
А во-вторых, не SFX Creator же обрабатывает команды, а сам компилятор NSIS, SFX Creator только создаёт исходный код на NSIS, не более

Salmo
30-04-2015, 02:13
сам компилятор NSIS » Да в общем то я использую SFX Creator как оболочку компилятора для кода, который не создается в нем. Компилятор от SFX Creator 2.7. NSISa нет, - откатывал систему и так и не поставил... Еще раз подтверждаю, что на ХР скомпилированные EXE_шники не отрабатывали, если 1 и none не были взяты в кавычки.

Dodakaedr
03-05-2015, 19:25
Подскажите есть ли плагин или пример как сделать бэкап папки при её существовании?
И как это исправитьIfFileExists expects 2-3 parameters, got 1.
Usage: IfFileExists filename label_to_goto_if_file_exists [label_to_goto_otherwise]

По поводу бэкапа(что из справки нарыл): если так прописать будет правильно?
SetShellVarContext all
IfFileExists "$APPDATA\Color\EQ"
SetShellVarContext all
Rename $APPDATA\Color\EQ $APPDATA\Color\EQ_Backup
Проверить не могу из-за ошибки описанной выше.

Begin2Fly
03-05-2015, 20:03
Dodakaedr, конечно не можете. Внимательнее надо читать справку. У вас не заданы метки перехода.
IfFileExists [путь к файлу] [метка перехода, если существует файл] [метка перехода, если не существует файла]

Dodakaedr
03-05-2015, 20:10
конечно не можете. Внимательнее надо читать справку. У вас не заданы метки перехода. »
Не совсем понял для чего они нужны. Добавил метку ошибка исчезла, но бэкап не создает. Какую функцию надо использовать для создания бэкапа?
SetShellVarContext all
IfFileExists "$APPDATA\Color\EQ" 0
SetShellVarContext all
Rename $APPDATA\Color\EQ $APPDATA\Color\EQ_Backup

K.A.V.
03-05-2015, 21:12
Не совсем понял для чего они нужны »
Вы вроде "по-нашему" пишете, в справке же всё разжевано, по-крайней мере на страничке описания команды IfFileExists, достаточно скопировать оттуда пример кода и посмотреть, как он работает
Если не понимаете принцип указания меток, читайте опять же справочник, конкретно страничку Статьи => Relative Jumps, +можете зацепить попутно Перевод справки NSIS => Goto

И зачем 2 раза указывается команда SetShellVarContext all? :o

Какую функцию надо использовать для создания бэкапа? »
Смотря какой функционал вы подразумеваете под словом "бэкап", судя по вашему коду бэкап для вас - просто переименование папки :good:




© OSzone.net 2001-2012