PDA

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


Страниц : 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 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

truth
21-10-2010, 10:22
Вам, никто не напишет готовый код. Но в конкретном вопросе поможем... »
Спасибо, просто скрипт по идее должен быть относительно маленьким, думал может кто набросает на скорую руку..
*ушел штудировать справочник*

Lisabon
25-10-2010, 20:05
kotkovets, нужна помощь по работе с флагами...

Есть у меня три секции, например, section1, section2, section3
Мне необходимо, чтобы при выборе любой секции, устанавливался на других тот же флаг. Тобишь выбрал или снял я чек бокс с section1 (или section2 или section3), и на других секциях, тоже снялся чек бокс... а если установлю чек бокс, то на других установился...
Если можно пример...

kotkovets
25-10-2010, 23:04
Есть у меня три секции, например, section1, section2, section3
Мне необходимо, чтобы при выборе любой секции, устанавливался на других тот же флаг. Тобишь выбрал или снял я чек бокс с section1 (или section2 или section3), и на других секциях, тоже снялся чек бокс... а если установлю чек бокс, то на других установился...
Если можно пример.. »
А что мешает объединить, в таком случае 3 секции в одну секцию ?
Отметил секцию - выполнились все команды в секции, и наоборот

Lisabon
25-10-2010, 23:15
А что мешает объединить, в таком случае 3 секции в одну секцию ?
Отметил секцию - выполнились все команды в секции, и наоборот »

Все секции находятся в разных SectionGroup, и хотелось чтоб было по эстетичнее...

kotkovets
26-10-2010, 17:59
Есть у меня три секции, например, section1, section2, section3
Мне необходимо, чтобы при выборе любой секции, устанавливался на других тот же флаг »
OutFile "Section.exe"
!include "MUI2.nsh"
!include "LogicLib.nsh"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"

Section !секция_1 sec_1
SectionEnd

Section секция_2 sec_2
SectionEnd

Section секция_3 sec_3
SectionEnd

Function .onSelChange
${If} ${SectionIsSelected} ${sec_1}
!insertmacro SelectSection ${sec_2}
!insertmacro SelectSection ${sec_3}
${Else}
!insertmacro UnSelectSection ${sec_2}
!insertmacro UnSelectSection ${sec_3}
${EndIf}
FunctionEnd
Получилось у меня так. Только первая секция управляет состоянием двух других секций.
Функцию .onSelChange в скрипте размещаем после всех секций в скрипте, это нужно для корректного считывания индетификаторов секций

MaGoth
26-10-2010, 18:58
Приветствую, :)
Собственно мой вопрос не совсем по Нсис, но, около него.
Меня интересует все что касается темы создания плагинов для Нсис.
На офф сайте пошарился но что-то инфу по этой теме не нашел, если что и есть по этой теме, то только сам "результат" этой деятельности в виде плагинов и их описания функционала.
Может плохо искал?!

Что-то типа СДК или подобное, оно вообще существует в природе, и как, с чего желательно начинать работу по созданию плагинов для Нсис?

Использую в работе Нсис Юникод, плагин планирую делать для него.
Буду благодарен за ответы и помощь.

Krinkels
27-10-2010, 23:16
MaGoth
Если нужно то могу скинуть сорцы многих плагинов.

MaGoth
28-10-2010, 03:50
Krinkels, Не помешает, хотя многие скачать с сайта можно.
А ты сам случаем не занимался этим вопросом, и если опыт есть, может подсобишь немного (по аське желательно)?

Зы, ты случаем не с бороды ру, что-то ник знакомый...?!

Krinkels
28-10-2010, 08:02
MaGoth
В личку загляни

mshak
15-11-2010, 10:34
Доброго времени суток.
подскажите пожалуйста:
- как узнать существует ли файл?
- как заменить системный файл? (или файл который используется)
я знаю что существует PendingFileRenameOperations (это ключ в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager) но его тип должен быть REG_MULTI_SZ. а как создавать ключ (или дописывать в случае если уже существует... )

mshak
15-11-2010, 11:14
на первый вопрос ответ нашел... ifFileExists

kotkovets
15-11-2010, 17:26
- как заменить системный файл? »
Полезно почитать:http://winreview.ru/Poleznosti/392/Kak-stat-vladeltcem-fajla-v-Windows-7-i-Windows-Vista
И плугин есть для этих целей:http://nsis.sourceforge.net/AccessControl_plug-in
AccessControl::SetFileOwner - для файла
AccessControl::GrantOnFile - для директории

Lisabon
16-11-2010, 23:10
kotkovets, помогите разобраться.

Есть чудесный плагин Registry (http://nsis.sourceforge.net/Registry_plug-in#Registry_Export_.28save_to_the_file_in_REGEDIT4_format.29)

так вот мне необходимо произвести импорт\экспорт ветви реестра, например, HKEY_CURRENT_USER\Software\прога

Собственно проблема не пойму как правильно вписать код в скрипт, чтоб работало. Если можно примерчик.

kotkovets
17-11-2010, 01:11
мне необходимо произвести импорт\экспорт ветви реестра »
На примере Registry.dll
Обязательно смотрим код возврата:
1. В секции экспорта, если $R0= -1, то ошибка, то бишь нужной ветки в реестре нету, если $R0=0 -все ОК!
2. В секции импорта если $R0= -1, то ошибка, файл не найден или нету, если $R0=0 -все ОК!
Name "RegistryTest"
OutFile "RegistryTest.exe"

!include "Registry.nsh"
!include "Sections.nsh"

Page components
Page instfiles


Section "Экспортировать ветку в файл реестра" sec1
${registry::SaveKey} "HKEY_CURRENT_USER\Software\прога" "$EXEDIR\Test.reg" "/G=1 /D=0" $R0
${registry::Unload}
MessageBox MB_OK "$R0"
SectionEnd

Function .onInit
StrCpy $1 ${sec1}
FunctionEnd


Section /o "Импортировать из файла в реестр" sec2
${registry::RestoreKey} "$EXEDIR\Test.reg" $R0
${registry::Unload}
MessageBox MB_OK "$R0"
SectionEnd



Function .onSelChange
!insertmacro StartRadioButtons $1
!insertmacro RadioButton ${sec1}
!insertmacro RadioButton ${sec2}
!insertmacro EndRadioButtons
FunctionEnd

vahe-91
21-11-2010, 20:42
Как в NSIS создать ключи в ветке реестра HKEY_USERS\S-1-5-21-xxxxxx-xxxxx-xxxx\Software\, если для каждого компа эти x разные ?

kotkovets
22-11-2010, 02:28
Как в NSIS создать ключи в ветке реестра HKEY_USERS\S-1-5-21-xxxxxx-xxxxx-xxxx\Software\, »
А зачем? Для этого ветка есть HKEY_CURRENT_USER\Software\ и везде одинакова.

vahe-91
22-11-2010, 13:01
А зачем? Для этого ветка есть HKEY_CURRENT_USER\Software\ и везде одинакова. »
Нужно именно в HKEY_USERS. Если кто-то знает метод говорите пожалуйста :help:

kotkovets
22-11-2010, 14:23
Нужно именно в HKEY_USERS »
HKEY_CURRENT_USER. Здесь содержатся настройки оболочки пользователя (например, Рабочего стола, меню "Пуск", ...), вошедшего в Windows. Они дублируют содержимое подраздела HKEY_USER\name, где name - имя пользователя, вошедшего в Windows. Если на компьютере работает один пользователь и используется обычный вход в Windows, то значения раздела берутся из подраздела HKEY_USERS\.DEFAULT
SetShellVarContext current
WriteRegStr HKCU "Software\123" "" "%WINDIR%\notepad.exe"
Эти же ключ запишется и HKEY_USERS\S-1-5-21-xxxxxx-xxxxx-xxxx\Software\

vahe-91
22-11-2010, 15:56
SetShellVarContext current »
спасибо, получилось :clapping:

hb860
23-11-2010, 22:49
Давно не писал ничего про NSIS. Продолжил благое начинание.
Определение версии и редакции операционной системы в NSIS (http://winreview.ru/NSIS/829/Opredelenie-versii-i-redaktcii-operatcionnoj-sistemi-v-NSIS)




© OSzone.net 2001-2012