Показать полную графическую версию : [архив].: NSIS - все вопросы :.
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],легче читать
люди добрые помогите написать плагин...очень нужно... :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)
Я все понимаю просто задание такое...написать плагин, который будет сохранять введенные данные в файл... :cry:
kotkovets
16-08-2010, 11:04
Tolian, интересное задание.... :clapping:
CyberMaster
Файл *.ini или *.inf ?
в конкретный ini файл, он дан...вот такие задания для начинающих даются :sorry:
kotkovets
16-08-2010, 11:23
Tolian а где такие задания даются ?
kotkovets да товарищу на учебе, попросил помочь, вот голову и грею...и самому интересно стало разобраться... :)
kotkovets
16-08-2010, 11:47
Tolian
Абсолютно,не стоит того,чтобы писать плагин,
Юзайте WriteiniStr , а примеры я уже вам давал...
Или просите помощи здесь (http://forum.oszone.net/forum-21.html)
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
kotkovets спасибо большое. посмотрим что и как :cool:
Да kotkovets и не надо ничего выдумывать :) но все же можешь помочь разобраться как работать с delhi для написания плагина?лучше на примере.
kotkovets
16-08-2010, 16:08
Tolian, с Delphi не помогу...сам пока учусь что и как...
гугл вам в помощь :tongue:
kotkovets, ну ладно спасибо и на том:)
если что попадется подобное сообщи:)
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC