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

kotkovets
25-07-2010, 17:54
maximum142

WriteINIStr $SYSDIR\Oeminfo.ini "Support Information" Line1 --

Lisabon
25-07-2010, 20:57
kotkovets,

Цитата Lisabon:Мне необходимо сделать проверку перед инсталляцией на пользователя... если это будет "Администратор" ("Admin"), то папка установки c:\Program Files\Программа\ , а если "Пользователь" ("User") - с ограниченными правами, то папка установки c:\Программа\ »
читать дальше » »

За совет конечно спасибо, но это не совсем, то, что нужно... то что вы привели в качестве примера, есть в c:\Program Files\NSIS\Examples\ ... Мне нужно чтоб перед установкой делалась проверка на пользователя... если это будет "Администратор" ("Admin"), то папка установки c:\Program Files\Программа\ , а если "Пользователь" ("User") - с ограниченными правами, то папка установки c:\Программа\ ,

тобишь надо чтоб перед установкой сделалась проверка на пользователя и в зависимости от от пользователя Администратор или Пользователь, менялось значение InstallDir, при Администраторе - InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" , а при пользователе InstallDir "$SYSDRIVE\${PRODUCT_NAME}"

kotkovets
25-07-2010, 22:26
Lisabon ,что вам мешает в функции .onInit менять значение $INSTDIR в зависимости от переменной
$R0 ???


Function .onInit
!insertmacro IsUserAdmin $R0
; с правами администратора
${If} $R0 == 1
StrCpy $INSTDIR "$PROGRAMFILES\Программа"
MessageBox MB_OK "$INSTDIR"
${EndIf}
; c ограниченной учеткой
${If} $R0 == 0
StrCpy $SYSDRIVE $WINDIR 2
StrCpy $INSTDIR "$SYSDRIVE\Программа"
MessageBox MB_OK "$INSTDIR"
${EndIf}
FunctionEnd

XCV
02-08-2010, 13:53
может и глупый вопрос, но всё же, как заставить деинсталятор перед началом удаления убить запущенный процесс удаляемой проги?

kotkovets
02-08-2010, 14:50
как заставить деинсталятор перед началом удаления убить запущенный процесс удаляемой проги »

Function un.onInit
ExecWait 'TASKKILL /F /IM процесс.exe'
FunctionEnd

или Плагин (http://mulder.dummwiedeutsch.de/pub/downloads/testing/NSIS-KillProc-Plugin.2006-12-16.zip)

Tolian
13-08-2010, 09:53
Привет всем!Люди я начинающий в среде NSIS...Подскажите пожалуйста как отобразить страницу с вводом параметров?

kotkovets
13-08-2010, 15:13
отобразить страницу с вводом параметров? »
Параметров чего?

Tolian
13-08-2010, 15:48
при установке выбирается какие программы устанавливать, потом отображается страница ввода параметровнекотрой программы...

Я накидал что то похожее:

Function SozdStr

!insertmacro MUI_HEADER_TEXT "" ""

File /oname=$PLUGINSDIR\Forma.ini "*.ini"

InstallOptions::initDialog "$PLUGINSDIR\*.ini"

InstallOptions::Show

FunctionEnd

Tolian
13-08-2010, 16:22
как сделать чтобы если не выбрана программа для установки из писка, то пропускать определенную страницу?

Tolian
13-08-2010, 17:29
скажите пожалуйста с чего начать написание плагина???

kotkovets
13-08-2010, 18:41
как сделать, чтобы если не выбрана программа для установки из cписка, то пропускать определенную страницу? »
Вот примерчик, изучайте:


!include "MUI.nsh"

!insertmacro MUI_PAGE_COMPONENTS
Page custom Моя_страница
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
!insertmacro MUI_LANGUAGE "Russian"

OutFile "setup.exe"
InstallDir "$PROGRAMFILES\Моя программа"

Section "Настройка программы" test ;test -индефикатор секции
SectionEnd


Function Моя_страница
SectionGetFlags ${test} $9 ;считытывает значение секции и записывает в переменную $9
;если $9 =1 - секция отмечена, $9 =0 - секция не отмечена
StrCmp $9 0 Next ;сравнение: при $9 =0 переход к Next
Initpluginsdir
!insertmacro INSTALLOPTIONS_EXTRACT "Dialog.ini"
!insertmacro MUI_HEADER_TEXT "Установка" "Настройка программы"
!insertmacro MUI_INSTALLOPTIONS_DISPLAY "Dialog.ini"
Next:
FunctionEnd

Dialog.ini

[Settings]
NumFields=8
NextButtonText=Установить
RTL=0

[Field 1]
Type=Label
Text=Вы попали на страницу настройки программы
Left=5
Right=301
Top=1
Bottom=20



скажите пожалуйста с чего начать написание плагина??? »
Изучением NSIS , шапки темы (http://forum.oszone.net/thread-67386.html) и языков программирования

Tolian
14-08-2010, 10:05
например, как пишется плагин на delphi?есть примеры плагинов?

Belial4444
15-08-2010, 12:21
Здравствуйте я новичок в нсис, собрал свой инсталлятор почти нормально). Есть проблема: при выборе пользователем папку установки после нажатия ок к папке установки автоматически приписывается \Left 4 dead 2 Берется это приписывание видимо осюда : InstallDir $PROGRAMFILES\Left4 dead 2 . Как такое возможно? Ведь эта команда просто отвечает за дефолтный путь. Причем если я напишу InstallDir $PROGRAMFILESLeft4 dead 2 то у меня не приписывается ничего, все нормально. Посмотрел примеры в папке нсис, там такая же ситуация). SetOutPath $***INSTDIR у меня стоит, может что-то в ней?

kotkovets
15-08-2010, 16:03
Belial4444,
команда InstallDir записывает значение в переменную $INSTDIR


OutFile "Test.exe"

Page Directory
Page InstFiles
InstallDir "$PROGRAMFILES\Left4 dead 2"

Section "test"
MessageBox MB_ICONINFORMATION|MB_OK "$INSTDIR"
SectionEnd


Нельзя так писать:
InstallDir $PROGRAMFILESLeft4 dead 2, a то у вас получится C:\Program FilesLeft4 dead 2 :cool:
SetOutPath $INSTDIR , а не SetOutPath $***INSTDIR
P.S
Имена папок,файлов имеющие пробел обязательно брать в "кавычки" - "$PROGRAMFILES\Left4 dead 2"

Tolian
15-08-2010, 17:20
Привет всем!люди как писать плагин?подскажите будьте добры.

Tolian
15-08-2010, 18:52
Ау?!есть кто?:)Не могу сообразить как написать плагин который будет при установке записывать данные в файл с определенной страницы где мы вводили некоторые данные.

Belial4444
15-08-2010, 19:44
kotkovets, видимо я на форум не так скопировал. В скрипте у меня нет звездочек. А про C:\Program FilesLeft4 dead 2, я написал чтобы акцентировать внимание нга том что при выборе папки установки не приписывается \Left 4 dead 2. Ковычки я поставил все равно после выбора папки установки к ней приписывается \ Left 4 dead 2.Вот скрипт http://rapidshare.com/files/413111679/patch.nsi Вот скомпилированный вариант http://rapidshare.com/files/413111981/l4d2_universal_update_2033.exe

kotkovets
15-08-2010, 23:42
Belial4444,
как вариант1:
Eсли вам надо, что бы файлы распаковывались в разные папки:
SetOutPath "Ваш Путь"
File /r *.*
SetOutPath "Ваш Путь1"
File /r *.*
Если не нужно,то страницу выбора директории исключаем
Команду InstallDir также исключаем

как вариант2:

!include "MUI.nsh"
Name "Universal L4D2 Patch"
!define MUI_ABORTWARNING
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "Russian"
OutFile "l4d2_universal_update_2033.exe"
;InstallDir "$PROGRAMFILES\Left 4 dead 2"
Section ""
SetOutPath $INSTDIR
MessageBox MB_ICONINFORMATION|MB_OK "$INSTDIR"
;File /r /x *.nsi *.*
SectionEnd

$PROGRAMFILES - Предопределенная переменная
C:\Program FilesLeft4 dead 2 - вы просто указываете на определенную папку т.е абсолютный путь
А подробней все расскажет:
Справочник по NSIS (http://forum.oszone.net/thread-168287.html)

kotkovets
16-08-2010, 00:20
hb860, вы уж извините ,что за вас в этой теме отвечаю на все посты... :)

hb860
16-08-2010, 00:51
kotkovets, я только ЗА. у меня как раз со временем ппц полный




© OSzone.net 2001-2012