Показать полную графическую версию : [архив].: NSIS - все вопросы :.
Вам, никто не напишет готовый код. Но в конкретном вопросе поможем... »
Спасибо, просто скрипт по идее должен быть относительно маленьким, думал может кто набросает на скорую руку..
*ушел штудировать справочник*
kotkovets, нужна помощь по работе с флагами...
Есть у меня три секции, например, section1, section2, section3
Мне необходимо, чтобы при выборе любой секции, устанавливался на других тот же флаг. Тобишь выбрал или снял я чек бокс с section1 (или section2 или section3), и на других секциях, тоже снялся чек бокс... а если установлю чек бокс, то на других установился...
Если можно пример...
kotkovets
25-10-2010, 23:04
Есть у меня три секции, например, section1, section2, section3
Мне необходимо, чтобы при выборе любой секции, устанавливался на других тот же флаг. Тобишь выбрал или снял я чек бокс с section1 (или section2 или section3), и на других секциях, тоже снялся чек бокс... а если установлю чек бокс, то на других установился...
Если можно пример.. »
А что мешает объединить, в таком случае 3 секции в одну секцию ?
Отметил секцию - выполнились все команды в секции, и наоборот
А что мешает объединить, в таком случае 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 в скрипте размещаем после всех секций в скрипте, это нужно для корректного считывания индетификаторов секций
Приветствую, :)
Собственно мой вопрос не совсем по Нсис, но, около него.
Меня интересует все что касается темы создания плагинов для Нсис.
На офф сайте пошарился но что-то инфу по этой теме не нашел, если что и есть по этой теме, то только сам "результат" этой деятельности в виде плагинов и их описания функционала.
Может плохо искал?!
Что-то типа СДК или подобное, оно вообще существует в природе, и как, с чего желательно начинать работу по созданию плагинов для Нсис?
Использую в работе Нсис Юникод, плагин планирую делать для него.
Буду благодарен за ответы и помощь.
Krinkels
27-10-2010, 23:16
MaGoth
Если нужно то могу скинуть сорцы многих плагинов.
Krinkels, Не помешает, хотя многие скачать с сайта можно.
А ты сам случаем не занимался этим вопросом, и если опыт есть, может подсобишь немного (по аське желательно)?
Зы, ты случаем не с бороды ру, что-то ник знакомый...?!
Krinkels
28-10-2010, 08:02
MaGoth
В личку загляни
Доброго времени суток.
подскажите пожалуйста:
- как узнать существует ли файл?
- как заменить системный файл? (или файл который используется)
я знаю что существует PendingFileRenameOperations (это ключ в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager) но его тип должен быть REG_MULTI_SZ. а как создавать ключ (или дописывать в случае если уже существует... )
на первый вопрос ответ нашел... 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 - для директории
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
Как в 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\ и везде одинакова.
А зачем? Для этого ветка есть 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\
SetShellVarContext current »
спасибо, получилось :clapping:
Давно не писал ничего про NSIS. Продолжил благое начинание.
Определение версии и редакции операционной системы в NSIS (http://winreview.ru/NSIS/829/Opredelenie-versii-i-redaktcii-operatcionnoj-sistemi-v-NSIS)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC