.: NSIS - все вопросы :. часть 2.

Ответить
 • Просмотры: 11
Аватара пользователя
MaGoth

Re: .: NSIS - все вопросы :. часть 2.

Сообщение MaGoth »

Привет народ,

Подскажите где разжиться файликом определения венды последней версии для ЮТФ8 или 16 ЛЕ?

И напомните плиз, как запустить консоль без вывода ее окон, помню что где-то было это расписано, даже делал раньше но в справке ни нашел..



Спасибо.
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

В справочнике, в разделе "Работа с реестром" есть макрос ${StrToHex} "строка" $var - Конвертирование строки в HEX.

Не подскажите, как сделать наоборот конвертирование HEX в строку, или ${HexToStr}?
Аватара пользователя
MaGoth

Re: .: NSIS - все вопросы :. часть 2.

Сообщение MaGoth »

Цитата Sancho5555:



HEX в строку
.: NSIS - все вопросы :. часть 2.




Registry_plug-in

${registry::HexToStr} "[hex_string]" $var



И ещё когда то kotkovets, приводил такой код :



Код:

Код: Выделить всё

конвертация 16-ричное число в десятичное, десятичное в ASCII
  IntFmt $1 "%i" 0x37 ;16-ричное число в десятичное
 ;-------------------------------------------------------------------
  IntFmt $1 "%c" $1 ;десятичное в ASCII
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

MaGoth, я с юникодом вообще не работал (и пока не собираюсь), так что по вопросам данных сборок я ничего подсказать не могу
Аватара пользователя
Dodakaedr

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Dodakaedr »

Цитата Dodakaedr:



Почему если в конце ключа реестра стоит цифра то этот ключ пропускается?
.: NSIS - все вопросы :. часть 2.




Всё нормально :





Код:

Код: Выделить всё

OutFile "test find key.exe"
!include "Logiclib.nsh"
!include "Registry.nsh"
var err
Section
; для тестирования
${registry::Write} "HKLM\SOFTWARE\Test.test.ttt.aaaaaaaa.1" ".test" "5" "REG_SZ" $err
${registry::Write} "HKLM\SOFTWARE\Test.test.ttt.bbbbbbbb.1" ".test" "7" "REG_SZ" $err

${Do}
EnumRegKey $1 HKLM "SOFTWARE" $0 
IntOp $0 $0 + 1
StrCpy $9 $1 14 ;первые 14 символов из $1(Test.test.ttt.) помещаем в $9
${If} $9 == "Test.test.ttt."  ; условие
DetailPrint $1 ;для информации
ClearErrors
MessageBox MB_OK "Условие найдено. Далее - необходимое действие"
${EndIf}
${LoopUntil} $1 == ""
SectionEnd
Аватара пользователя
Serg866

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Serg866 »

Цитата MKN:



Всё нормально :
.: NSIS - все вопросы :. часть 2.




С тестовыми ключами да, но если подставить требуемые, то результат тот же:



Скрытый текст

[spoiler]Скрытый текст[/spoiler]

[spoiler]Изображение[/spoiler]






Код:

Код: Выделить всё

OutFile "test find key22.exe"
!include "Logiclib.nsh"
!include "Registry.nsh"
var err
Section
; для тестирования
${registry::Write} "HKLM\SOFTWARE\ComSysControl.UserVars.1" ".test" "5" "REG_SZ" $err
${registry::Write} "HKLM\SOFTWARE\ComSysControl.UserVars" ".test" "7" "REG_SZ" $err
${Do}
EnumRegKey $1 HKLM "SOFTWARE" $0
IntOp $0 $0 + 1
StrCpy $9 $1 14 ;первые 14 символов из $1(Test.test.ttt.) помещаем в $9
${If} $9 == "ComSysControl."  ; условие
;DetailPrint $1 ;для информации
;ClearErrors
;MessageBox MB_OK "Условие найдено. Далее - необходимое действие"
${registry::MoveKey} "HKLM\SOFTWARE\$1" "HKLM\SOFTWARE\$1_bak" $r9
${Registry::UnLoad}
${EndIf}
${LoopUntil} $1 == ""
SectionEnd
Аватара пользователя
K.A.V.

Re: .: NSIS - все вопросы :. часть 2.

Сообщение K.A.V. »

Цитата Dodakaedr:



С тестовыми ключами да, но если подставить требуемые, то результат тот же
.: NSIS - все вопросы :. часть 2.




Значит дело конкретно в твоих ключах. Либо нет доступа к ключу, либо скрипту(плагину) не нравится название ключа.

В частности, подозрение вызывает "UserVars" в составе ключа.
Аватара пользователя
ZaxBoys66

Re: .: NSIS - все вопросы :. часть 2.

Сообщение ZaxBoys66 »

Есть плагин от K.A.V. для установки прозрачности окна инсталлятора - для примера код:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

!include "MUI2.nsh"
!define TBM_SETPOS 0x0405
!define TBM_GETPOS 0x0400
!define TBM_SETRANGEMIN 0x0407
!define TBM_SETRANGEMAX 0x0408
!addplugindir "."
!insertmacro MUI_LANGUAGE "Russian"
Name "transparent plugin example"
OutFile "transparent.exe" 
XPStyle on
Var transparent
Var Slider
Var Move
Var Label
Var Button
Page custom Create
Function Slider
  SendMessage $Slider ${TBM_GETPOS} 0 0 $Move
  transparent::SetTransparentWindowStyle "$Move"
  ${NSD_SetText} $Label "$Move"
FunctionEnd
Function Create
  nsDialogs::Create 1018
  Pop $transparent
  nsDialogs::CreateControl "msctls_trackbar32" "0x50010000|0x00000018" "" 80u 100u 200 60 ""
  Pop $Slider
  SendMessage $Slider ${TBM_SETRANGEMIN} 1 50
  SendMessage $Slider ${TBM_SETRANGEMAX} 1 255
  SendMessage $Slider ${TBM_SETPOS} 1 255
  transparent::SetTransparentWindowStyle "255"
  ${NSD_CreateLabel} 215u 104u 30u 30u ""
  Pop $Label
  ${NSD_CreateButton} 20u 103u 51u 12u "Обзор"
  Pop $Button
  ${NSD_OnClick} $Button Example
  ${NSD_CreateTimer} Slider 50
  nsDialogs::Show $transparent
FunctionEnd
Function Example
  nsDialogs::SelectFolderDialog /NOUNLOAD "" ""
  Pop $0
FunctionEnd
Section
SectionEnd







Прозрачность работает, но после нажатия кнопки "Обзор" transparent плагин перестаёт работать.

В чём может быть проблема?
Аватара пользователя
Dodakaedr

Re: .: NSIS - все вопросы :. часть 2.

Сообщение Dodakaedr »

Цитата Sancho5555:



Прозрачность работает, но после нажатия кнопки "Обзор" transparent плагин перестаёт работать.
.: NSIS - все вопросы :. часть 2.




Нет такой проблемы, по крайней мере у меня, всё работает

Попробуйте
так
Аватара пользователя
MaGoth

Re: .: NSIS - все вопросы :. часть 2.

Сообщение MaGoth »

Цитата K.A.V.:



Нет такой проблемы, по крайней мере у меня, всё работает
.: NSIS - все вопросы :. часть 2.




Заметил у себя на Win8 X64 работает через раз, после загрузки системы, буду разбираться.
Ответить

Вернуться в «Автоматическая установка приложений»