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

Belial4444
16-08-2010, 06:37
kotkovets
Спасибо большое за информативность. Оказывается дело в другом. Когда я проставил палку в конце \ то все стало работать. То есть надо было так писать: InstallDir "$PROGRAMFILES\Left 4 dead 2\". Может это здесь кому-нибудь из начинающих поможет. Если что я ещё буду вопросы задавать). А за справочник отдельное спасибо, полезная штука.
У меня новый вопрос: если я пишу DirText "Для применения обновления Вам необходимо будет
указать путь к каталогу в котором находится система.
Только если Вы правильно укажете путь,
можно будет установить обновление." И выдает ошибку:
Error: unterminated string parsing line at C:\patch\patch.nsi:17
Error in script "C:\patch\patch.nsi" on line 17 -- aborting creation process
Если по английски пишу, то норм все)

kotkovets
16-08-2010, 09:22
Belial4444,
DirText "text" "subtext" "browse_button_text" "browse_dlg_text"

Давайте скрипт взглянем.
Пожалуйста скрипты заключайте в тег [CODE],легче читать

Tolian
16-08-2010, 09:24
люди добрые помогите написать плагин...очень нужно... :cry:

CyberMaster
16-08-2010, 10:07
Помогите пожалуйста решить такую задачу:
Есть файл с атрибутом "Только чтение" File.ext в нем нужно найти и заменить две строчки

Text1 "bla bla bla"
Text2 "bla bla bla"

Заменить на

Text3 "ololo"
Text4 "ololo"

Как это сделать?
P.s атрибут "Только чтение" файлу File.ext нужно вернуть обратно после его редактирования.
P.p.s замена этого файла, на заранее отредактированный файл не катит.

kotkovets
16-08-2010, 10:34
Tolian,
Не изобретайте,велосипед,все давно уже сделано:
WriteiniStr - записывает данные в *.ini или *.inf файлы
ReadINIStr - читает секции из *.ini или *.inf файлов и помещает данные в переменную
FileWrite - запись данных в файл
FileRead - чтение данных из файла и помещает данные в переменную
Откройте help самой программы,введите в указатель эти команды.
Дополнительно,почитайте о переменных :
их аж целых 20 штук ,которые не надо объявлять..удобно размещать в них даннные
Справочник по NSIS (http://www.oszone.net/go.php?url=http://forum.oszone.net/thread-168287.html)

Tolian
16-08-2010, 10:37
Я все понимаю просто задание такое...написать плагин, который будет сохранять введенные данные в файл... :cry:

kotkovets
16-08-2010, 11:04
Tolian, интересное задание.... :clapping:

CyberMaster
Файл *.ini или *.inf ?

Tolian
16-08-2010, 11:12
в конкретный ini файл, он дан...вот такие задания для начинающих даются :sorry:

kotkovets
16-08-2010, 11:23
Tolian а где такие задания даются ?

Tolian
16-08-2010, 11:30
kotkovets да товарищу на учебе, попросил помочь, вот голову и грею...и самому интересно стало разобраться... :)

kotkovets
16-08-2010, 11:47
Tolian
Абсолютно,не стоит того,чтобы писать плагин,
Юзайте WriteiniStr , а примеры я уже вам давал...
Или просите помощи здесь (http://forum.oszone.net/forum-21.html)

Tolian
16-08-2010, 11:58
kotkovets спасибо хоть на этом...буду ломать мозг

kotkovets
16-08-2010, 13:22
Tolian,Специально для вас:


!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"
ReadINIStr $0 "$PLUGINSDIR\Dialog.ini" "Field 1" "State" ;чтение секции и помещение результата в переменную $0
ReadINIStr $1 "$PLUGINSDIR\Dialog.ini" "Field 2" "State" ;чтение секции и помещение результата в переменную $1
StrCmp $1 1 0 +2 ;сравнение если $1 =1 - отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox1 "Отмечен" ;запись
StrCmp $0 1 0 +2 ;сравнение если $0 =1 - отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox "Отмечен" ;запись
StrCmp $1 0 0 +2 ;если $1 =0 - не отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox1 "Не oтмечен" ;запись
StrCmp $0 0 0 +2 ;если $0 =0 - не отмечен
WriteINIStr "$EXEDIR\Test.ini" "Настройка программы" Checkbox "Не oтмечен" ;запись
ExecShell "Open" "$EXEDIR\Test.ini"
Next:
FunctionEnd

Dialog.ini

[Settings]
NumFields=2

[Field 1]
Type=Checkbox
Text=Checkbox
Left=18
Right=82
Top=30
Bottom=41
State=0

[Field 2]
Type=Checkbox
Text=Checkbox1
Left=18
Right=82
Top=55
Bottom=65
State=0


В результате рядом с инсталятором файл Test.ini

Tolian
16-08-2010, 14:32
kotkovets спасибо большое. посмотрим что и как :cool:

Tolian
16-08-2010, 15:45
Да kotkovets и не надо ничего выдумывать :) но все же можешь помочь разобраться как работать с delhi для написания плагина?лучше на примере.

kotkovets
16-08-2010, 16:08
Tolian, с Delphi не помогу...сам пока учусь что и как...
гугл вам в помощь :tongue:

Tolian
16-08-2010, 16:22
kotkovets, ну ладно спасибо и на том:)

если что попадется подобное сообщи:)

Tolian
16-08-2010, 17:04
kotkovets ты может быть знаешь как записать данные со страницы в файл?страницу созданная мной.на ней ввожу некоторые данные

kotkovets
16-08-2010, 17:47
Tolian, я примером показал как делать...

CyberMaster
16-08-2010, 17:50
CyberMaster
Файл *.ini или *.inf ? »
Файл вообще с расширением .gam, но там текст.

Насчет редактирования забыл сказать: Если это упростит задачу, Те две строки можно удалить и записать две новые в конец файла

Собственно вот содержимое того файла:

game "Counter-Strike"
url_info "www.counter-strike.net"
url_dl ""
version "1.6"
size "184000000"
svonly "0"
secure "0"
type "multiplayer_only"
cldll "1"
hlversion "1111"
nomodels "1"
nohimodel "1"
mpentity "info_player_start"
gamedll "dlls\mp.dll"
gamedll_linux "dlls/cs_i386.so"
trainmap "tr_1"


Две строки которые нужно заменить
gamedll "dlls\mp.dll"
gamedll_linux "dlls/cs_i386.so"




© OSzone.net 2001-2012