PDA

Показать полную графическую версию : .: NSIS - все вопросы :. часть 2.


Страниц : 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

MKN
17-07-2015, 13:24
На NSD можно сделать? »
Можно. Навскидку - так :


!include "MUI2.nsh"
!include "CommCtrl.nsh" ; из Спрвочника !
OutFile "LISTVIEW-CHECKBOXES.exe"
RequestExecutionLevel user
Page custom CreatePage
!insertmacro MUI_LANGUAGE "English"

Function CreatePage
!insertmacro MUI_HEADER_TEXT "LISTVIEW-CHECKBOXES" "LISTVIEW-CHECKBOXES"
nsDialogs::Create 1018
Pop $0
${NSD_CreateListView} 0u 0u 300u 120u "ListView"
Pop $1
SendMessage $1 ${LVM_SETBKCOLOR} 0 0xC7EDCC
SendMessage $1 ${LVM_SETTEXTBKCOLOR} 0 0xC7EDCC
${NSD_LV_InsertColumn} $1 0 150 "Заголовок - Столбец 1"
!define /math _LISTVIEW_TEMP_STYLE ${LVS_EX_CHECKBOXES} | ${LVS_EX_FULLROWSELECT}
SendMessage $1 ${LVM_SETEXTENDEDLISTVIEWSTYLE} 0 ${_LISTVIEW_TEMP_STYLE}
!undef _LISTVIEW_TEMP_STYLE
; =========================================================================
FileOpen $4 "$EXEDIR\myfile.txt" r
loop:
FileRead $4 $9 ; в $9 заносится содержимое строк из файла $4 ( построчно, с каждым циклом)
IntOp $R3 $R3 + 1 ; счетчик Item_ов
${NSD_LV_InsertItem} $1 $R3 "$9" ; создание Item_ов в ListView
IfErrors +1 loop
FileClose $4
; =================================================================
; Установить состояние чекбоксов
${NSD_LV_SetCheckState} $1 0 1 ; отмечен
${NSD_LV_SetCheckState} $1 1 0 ; не отмечен
${NSD_LV_SetCheckState} $1 2 1 ; отмечен
; и т.д.
; кнопка контроля состояния чекбоксов
${NSD_CreateButton} 0u 124u 300u 15u "Проверка состояния чекбоксов" ;
Pop $2
${NSD_OnClick} $2 CheckItemState
nsDialogs::Show
System::Call `comctl32::ImageList_Destroy(iR0)`
FunctionEnd

Function CheckItemState
${NSD_LV_GetCheckState} $1 0 $R0
${NSD_LV_GetCheckState} $1 1 $R1
${NSD_LV_GetCheckState} $1 2 $R2
; и т.д.
IntCmp $R0 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 0"
IntCmp $R1 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 1"
IntCmp $R2 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 2"
; и т.д.
MessageBox MB_OK|MB_ICONINFORMATION "$R4"
FunctionEnd

Section
SectionEnd


CheckItemState наверняка можно сделать универсальной для любого кол-ва Item_ов. Неохота заморачиваться...

BuZzOFF
17-07-2015, 14:34
Можно. Навскидку - так : »
Круто! Настолько круто, что допилить до ума моих скудных знаний не хватит...
http://fs2.directupload.net/images/150717/temp/l3tyhpjy.png (http://fs2.directupload.net/images/150717/l3tyhpjy.png)

upd. Помогите, пожалуйста с CheckBox'ами. Как сделать проверку отметки универсальной, чтоб не руками вписывать, т.к. их количество будет каждый раз разное.

MKN
17-07-2015, 15:58
Как сделать проверку отметки универсальной »
Не совсем понятна твоя конечная цель... От этого ведь зависит алгоритм кода...
Можно такой вариант (если чисто для информации) - инфа об исходном, дефолтовом (до того, как пользователь их отметит или снимет отметку !) состоянии чекбоксов (можно по всякому сделать, в зависимости от цели) :

Function CheckItemState
StrCpy $R5 0
loop:
IntOp $R5 $R5 + 1 ; счетчик номеров чекбоксов для GetCheckState
${NSD_LV_GetCheckState} $1 $R5 $R0 ; в $R0 - 1 или 0, в зависимости от исходной отметки чекбокса
StrCmp $R5 "$R3" Done ; выход из цикла после опроса последнего чекбокса
MessageBox MB_OK "Состояние чекбокса №$R5 - $R0"
Goto Loop
Done:
FunctionEnd

BuZzOFF
17-07-2015, 16:09
Не совсем понятна твоя конечная цель... От этого ведь зависит алгоритм кода... »
Пользователь выберет нужные элементы, и дальше инсталлятор будет работать только с отмеченными (копирование файлов, запись в БД и т.д.).

MKN
17-07-2015, 17:46
Пользователь выберет нужные элементы, и дальше инсталлятор будет работать только с отмеченными »
Тогда, первым делом переименуй кнопку ${NSD_CreateButton} 0u 124u 300u 15u "Install" . :)
Этой кнопкой будешь запускать инсталляцию после отметки чекбоксов, а родную кнопку Install - удаляешь со страницы

Функция почти такая же :

Function CheckItemState
StrCpy $R5 -1
loop:
IntOp $R5 $R5 + 1 ; счетчик номеров чекбоксов для GetCheckState
${NSD_LV_GetCheckState} $1 $R5 $R0 ; в $R0 - 1 или 0 , в зависимости от отметки чекбокса
StrCmp $R5 "$R3" Done ; выход из цикла после опроса последнего чекбокса
;MessageBox MB_OK "Состояние чекбокса №$R5 - $R0"
StrCpy $R8 "$R8 $R0"
Goto Loop
Done:
StrCpy $R8 $R8 -1 ; отсекаем 1 последний символ строки
MessageBox MB_OK "$R8" ; в $R8 - строка с последовательностью 1 и 0 , т.е. отмеченных или не отмеченных чекбоксов
SendMessage $HWNDPARENT 0x408 1 0
FunctionEnd


Вот это: StrCpy $R5 -1 и вот это: StrCpy $R8 $R8 -1 - коррекция издержек счёта... Может можно и по другому, не разбирался, т.к. так работает нормально...

В итоге : в $R8 - строка с последовательностью 1 и 0 , т.е. отмеченных или не отмеченных всех чекбоксов
А далее, в зависимости от того, который по счёту символ в строке будет 1, т.е. отмеченным чекбоксом, то простой логикой, если символ под номером таким то (а это номер точно известного компонента) равен 1 , то он и устанавливается. Конечно можно и по другому. Но так , как мне кажется, будет проще...

BuZzOFF
17-07-2015, 18:02
первым делом переименуй кнопку »Интерфейс ещё будет меняться. С этим разберусь, это я могу (http://forum.oszone.net/thread-302473.html) :)
Огромнейшее спасибо! Я про этот ListView вообще не знал... Буду дальше разбираться.

BuZzOFF
17-07-2015, 19:41
А ещё можно сделать так чтоб при выделении элемента отмечался/снимался CheckBox?
SendMessage $ListView ${LVM_SETEXTENDEDLISTVIEWSTYLE} ${LVS_EX_AUTOCHECKSELECT} ${LVS_EX_AUTOCHECKSELECT}
http://fs2.directupload.net/images/150717/temp/vq48jq5r.png (http://fs2.directupload.net/images/150717/vq48jq5r.png)

Но не то. Оно вон как отображается. CheckBox появляется только при наведении.

K.A.V.
17-07-2015, 20:50
А ещё можно сделать так чтоб при выделении элемента отмечался/снимался CheckBox? »
Если хотите творить на NSIS "по-настоящему" - углубляйтесь в познание WinAPI (что такое сообщения/уведомления и т.д.) и будет вам счастье


!include "MUI2.nsh"
!include "CommCtrl_.nsh" ; из Спрвочника !
OutFile "LISTVIEW-CHECKBOXES.exe"
RequestExecutionLevel user
Page custom CreatePage
!insertmacro MUI_LANGUAGE "English"

Function CreatePage
!insertmacro MUI_HEADER_TEXT "LISTVIEW-CHECKBOXES" "LISTVIEW-CHECKBOXES"
nsDialogs::Create 1018
Pop $0
${NSD_CreateListView} 0u 0u 300u 120u "ListView"
Pop $1
SendMessage $1 ${LVM_SETBKCOLOR} 0 0xC7EDCC
SendMessage $1 ${LVM_SETTEXTBKCOLOR} 0 0xC7EDCC
${NSD_LV_InsertColumn} $1 0 150 "Заголовок - Столбец 1"
!define /math _LISTVIEW_TEMP_STYLE ${LVS_EX_CHECKBOXES} | ${LVS_EX_FULLROWSELECT}
SendMessage $1 ${LVM_SETEXTENDEDLISTVIEWSTYLE} 0 ${_LISTVIEW_TEMP_STYLE}
!undef _LISTVIEW_TEMP_STYLE

${NSD_OnNotify} $1 OnClickListView

; =========================================================================
FileOpen $4 "$EXEDIR\myfile.txt" r
loop:
FileRead $4 $9 ; в $9 заносится содержимое строк из файла $4 ( построчно, с каждым циклом)
IntOp $R3 $R3 + 1 ; счетчик Item_ов
${NSD_LV_InsertItem} $1 $R3 "$9" ; создание Item_ов в ListView
IfErrors +1 loop
FileClose $4
; =================================================================
; Установить состояние чекбоксов
${NSD_LV_SetCheckState} $1 0 1 ; отмечен
${NSD_LV_SetCheckState} $1 1 0 ; не отмечен
${NSD_LV_SetCheckState} $1 2 1 ; отмечен
; и т.д.
; кнопка контроля состояния чекбоксов
${NSD_CreateButton} 0u 124u 300u 15u "Проверка состояния чекбоксов" ;
Pop $2
${NSD_OnClick} $2 CheckItemState
nsDialogs::Show
System::Call `comctl32::ImageList_Destroy(iR0)`
FunctionEnd

Function CheckItemState
${NSD_LV_GetCheckState} $1 0 $R0
${NSD_LV_GetCheckState} $1 1 $R1
${NSD_LV_GetCheckState} $1 2 $R2
; и т.д.
IntCmp $R0 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 0"
IntCmp $R1 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 1"
IntCmp $R2 1 0 +2
StrCpy $R4 "$R4$\r$\n отмечен 2"
; и т.д.
MessageBox MB_OK|MB_ICONINFORMATION "$R4"
FunctionEnd




Function OnClickListView
System::Store SR2R1R0
${Select} $R1
${Case} ${NM_CLICK} ; если событие - клик мыши
SendMessage $R2 ${LVM_GETHOTITEM} 0 0 $0 ; узнаём, на какой элемент пользователь нажал
${NSD_LV_GetCheckState} $1 $0 $2 ; узнаём статус галочки - стоит или не стоит
${If} $2 == "1" ; если галочка стоит
${NSD_LV_SetCheckState} $1 $0 0 ; снимаем галочку
${Else}
${NSD_LV_SetCheckState} $1 $0 1 ; ставим галочку, если не стоит
${EndIf}
${EndSelect}
System::Store L
FunctionEnd



Section
SectionEnd

MKN
18-07-2015, 11:30
Когда то kotkovets сотворил интересный и полезный код - кнопочный тулбар из bmp


!include "CommCtrl.nsh"
!include "MUI2.nsh"

OutFile "ToolbarButton-test.exe"
ShowInstDetails Show

Page custom CreatePage
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
xpstyle off

var dlg
var toolbar

!define ID_0 100
!define ID_1 101
!define ID_2 102
!define ID_3 103
!define ID_4 104
!define ID_5 105
!define ID_6 106
!define ID_7 107
!define ID_8 108
!define ID_9 109

Function CreatePage
System::Call "comctl32::ImageList_Create(i32,i32,i${ILC_MASK}|${ILC_COLORDDB},i1,i0)i.R8" ;создаем имеджлист
System::Call 'user32::LoadImage(i0,t"image-line.bmp",i${IMAGE_BITMAP},i0,i0,i${LR_LOADFROMFILE}|${LR_DEFAULTSIZE})i.R9'
;загружаем картинку в имеджлист первая картинку имеет индекс - 0
System::Call "comctl32::ImageList_AddMasked(iR8,iR9,i${CLR_DEFAULT})"
System::Call "gdi32::DeleteObject(iR9)"
nsDialogs::Create 1044
Pop $dlg
${NSD_CreateToolbar} 20u 5u 100% 40u ""
Pop $toolbar
${NSD_AddStyle} $toolbar ${WS_BORDER}
SendMessage $toolbar ${TB_BUTTONSTRUCTSIZE} 20 0
SendMessage $toolbar ${TB_SETIMAGELIST} 0 $R8 ;созданный имеджлист помещаем на тулбар
${NSD_OnNotify} $toolbar toolbar

${NSD_TB_ADDBUTTONS} $toolbar ${ID_0} 0 ; ${NSD_TB_ADDBUTTONS} [хэндл контрола] [ID кнопки] [индекс картинки]
${NSD_TB_ADDSEPARATOR} $toolbar ; добавляем сепаратор(разделитель)
${NSD_TB_ADDBUTTONS} $toolbar ${ID_1} 1
${NSD_TB_ADDBUTTONS} $toolbar ${ID_2} 2
${NSD_TB_ADDBUTTONS} $toolbar ${ID_3} 3
${NSD_TB_ADDBUTTONS} $toolbar ${ID_4} 4
${NSD_TB_ADDBUTTONS} $toolbar ${ID_5} 5
${NSD_TB_ADDBUTTONS} $toolbar ${ID_6} 6
${NSD_TB_ADDBUTTONS} $toolbar ${ID_7} 7
${NSD_TB_ADDBUTTONS} $toolbar ${ID_8} 8
${NSD_TB_ADDBUTTONS} $toolbar ${ID_9} 9

nsDialogs::Show
System::Call "comctl32::ImageList_Destroy(iR8)"
FunctionEnd

Function ID_LOAD
MessageBox MB_OK "$R1 --> ID_0" IDOK
FunctionEnd

Function ID_1
MessageBox MB_OK "$R1 --> ID_1" IDOK
FunctionEnd

Function ID_2
MessageBox MB_OK "$R1 --> ID_2" IDOK
FunctionEnd

Function ID_3
MessageBox MB_OK "$R1 --> ID_3" IDOK
FunctionEnd

Function ID_4
MessageBox MB_OK "$R1 --> ID_4" IDOK
FunctionEnd

Function ID_5
MessageBox MB_OK "$R1 --> ID_5" IDOK
FunctionEnd

Function ID_6
MessageBox MB_OK "$R1 --> ID_6" IDOK
FunctionEnd

Function ID_7
MessageBox MB_OK "$R1 --> ID_7" IDOK
FunctionEnd

Function ID_8
MessageBox MB_OK "$R1 --> ID_8" IDOK
FunctionEnd

Function ID_9
MessageBox MB_OK "$R1 --> ID_9" IDOK
FunctionEnd

Function toolbar
System::Store SR2R1R0
; NM_CLICK уведомляет родительское окно органа управления, что пользователь щелкнул левой кнопкой мыши в пределах органа управления
${If} $R1 == ${NM_CLICK} ;уведомление о клике мыши по тулбару
System::Call "*$R0(i,i,i,i.R1)"
${Select} $R1 ; в $R1 - возвращенный идентификатор кнопки
${Case} ${ID_0}
Call ID_LOAD
${Case} ${ID_1}
Call ID_1
${Case} ${ID_2}
Call ID_2
${Case} ${ID_3}
Call ID_3
${Case} ${ID_4}
Call ID_4
${Case} ${ID_5}
Call ID_5
${Case} ${ID_6}
Call ID_6
${Case} ${ID_7}
Call ID_7
${Case} ${ID_8}
Call ID_8
${Case} ${ID_9}
Call ID_9
${EndSelect}
${EndIf}
System::Store L
FunctionEnd

Section ""
SectionEnd


http://s015.radikal.ru/i333/1507/40/661a9989a505.jpg

Но к сожалению этот код нормально компилится только в версии NSIS 2.46. В NSIS 3 получаем ошибку...

И дело похоже в CommCtrl.nsh. Даже откорректированная для NSIS 3 ( из справочника) - не работает.
А не работает наверное потому , что в этом варианте CommCtrl.nsh нет макросов для Toolbar_а (__NSD_TB_ADDBUTTONS и сопутствующее добро... )

Как бы это дело подретушировать для NSIS 3 ? Я в сети находил вариант CommCtrl.nsh с нужными макросами, но подстановка их в CommCtrl.nsh всё равно приводит к ошибке...


${DEFINE} CMB_MASKED 0x02
${DEFINE} TBSTATE_CHECKED 0x01
${DEFINE} TBSTATE_PRESSED 0x02
${DEFINE} TBSTATE_ENABLED 0x04
${DEFINE} TBSTATE_HIDDEN 0x08
${DEFINE} TBSTATE_INDETERMINATE 0x10
${DEFINE} TBSTATE_WRAP 0x20
${DEFINE} TBSTATE_ELLIPSES 0x40
${DEFINE} TBSTATE_MARKED 0x80

${DEFINE} TB_ADDBUTTONS 1044
${DEFINE} TB_INSERTBUTTON 1045
${DEFINE} TB_DELETEBUTTON 1046
${DEFINE} TB_GETBUTTON 1047
${DEFINE} TB_BUTTONCOUNT 1048
${DEFINE} TB_COMMANDTOINDEX 1049
${DEFINE} TB_HITTEST 1093


#################################################################
# ${NSD_TB_ADDBUTTONS} #
#################################################################

!macro __NSD_TB_ADDBUTTONS htoolbar_ ID_CODE_ IMAGE_
!verbose push
!verbose ${_COMMCTRL_NSH_VERBOSE}
Push `${htoolbar_}`
Push `${ID_CODE_}`
Push `${IMAGE_}`
${CallArtificialFunction} __NSD_TB_ADDBUTTONS_Call
!verbose pop
!macroend
!macro __NSD_TB_ADDBUTTONS_Call
System::Store SR2R1R0
System::Call "*(iR2, iR1, i${TBSTATE_ENABLED}, i${TBSTYLE_BUTTON}, i0, i0)i.R1"
SendMessage $R0 ${TB_ADDBUTTONS} 1 $R1
System::Free $R1
System::Store L
!macroend
${DEFINE} NSD_TB_ADDBUTTONS "!insertmacro __NSD_TB_ADDBUTTONS"
#################################################################
!macro __NSD_TB_ADDSEPARATOR htoolbar_
!verbose push
!verbose ${_COMMCTRL_NSH_VERBOSE}
Push `${htoolbar_}`
${CallArtificialFunction} __NSD_TB_ADDSEPARATOR_Call
!verbose pop
!macroend
!macro __NSD_TB_ADDSEPARATOR_Call
System::Store SR0
System::Call "*(i-1, i0, i0, i${TBSTYLE_SEP}, i0, i0)i.R1"
SendMessage $R0 ${TB_ADDBUTTONS} 1 $R1
System::Free $R1
System::Store L
!macroend
${DEFINE} NSD_TB_ADDSEPARATOR "!insertmacro __NSD_TB_ADDSEPARATOR"

!define __NSD_Toolbar_CLASS ${TOOLBARCLASSNAME}
;!define __NSD_Toolbar_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${TBSTYLE_TOOLTIPS}|${TBSTYLE_TRANSPARENT} ;|${CCS_NORESIZE}|${CCS_ADJUSTABLE}
!define __NSD_Toolbar_STYLE ${DEFAULT_STYLES}|${WS_TABSTOP}|${TBSTYLE_TOOLTIPS}|${TBSTYLE_TRANSPARENT}|${CCS_NORESIZE}|${CCS_ADJ USTABLE}|${CCS_NODIVIDER}
!define __NSD_Toolbar_EXSTYLE 0

!insertmacro __NSD_DefineControl Toolbar

K.A.V.
18-07-2015, 12:09
Даже откорректированная для NSIS 3 ( из справочника) - не работает »
:tongue:

MKN
18-07-2015, 12:19
K.A.V.,
И этот хедер не работает... Ну что такое...
!insertmacro: __NSD_TB_ADDBUTTONS
!verbose: Invalid verbose level
Error in macro __NSD_TB_ADDBUTTONS on macroline 2
Error in script "\ToolBarWindow32.nsi" on line 41 -- aborting creation process
41 строка : (${NSD_TB_ADDBUTTONS} $toolbar ${ID_0} 0 ; ${NSD_TB_ADDBUTTONS} [хэндл контрола] [ID кнопки] [индекс картинки])

K.A.V.
18-07-2015, 12:48
И этот хедер не работает... »
Врёшь
В этом хидере в макросе ${NSD_TB_ADDBUTTONS} нет команды !verbose, смотри внимательней, что/куда копируешь и какой код компилируешь

MKN
18-07-2015, 12:52
K.A.V.,
Разобрался. Опять у меня -25. Если рядом с файлом скрипта другой CommCtrl.nsh - ошибка. Что за хрень... Уже ведь такое было.
Но есть такой момент - пол тулбара теперь обрезано...
http://s020.radikal.ru/i709/1507/bd/0c131c96658d.jpg
И нет никакой реакции у ${NSD_CreateToolbar} на изменение размера и позиции...
То же, при компиляции в 2.46 - работает нормально...

ps раскомментировал в CommCtrl.nsh ;|${CCS_NORESIZE}|${CCS_ADJUSTABLE} - и всё заработало. (нужно было ${CCS_NORESIZE} )

BuZzOFF
18-07-2015, 16:58
углубляйтесь в познание WinAPI »
Да, походу надо :) Зря институ бросал. Учился когда-то на программиста. Но даже первый курс не закончил - работать пошёл.
Спасибо за помощь.

Кстати, у всех сайт не работает? nsis.sourceforge.net (http://nsis.sourceforge.net/)

P.S. Этот ListView для меня как "новые ворота".

K.A.V.
18-07-2015, 17:34
ps раскомментировал в CommCtrl.nsh ;|${CCS_NORESIZE}|${CCS_ADJUSTABLE} - и всё заработало. (нужно было ${CCS_NORESIZE} ) »
ну я не особо проверял работоспособность, лень, откомпилировался проект и создался тулбар - мне хватило :biggrin:

Зря институ бросал. Учился когда-то на программиста »
Чтобы программировать - образование не нужно, это я вам как самоучка говорю :yes:

Кстати, у всех сайт не работает? nsis.sourceforge.net »
У всех

Dodakaedr
21-07-2015, 23:55
Подскажите как записать двойной слеш в ini файл?[Directories]
TempDir=C:\\Users\\Admin\\AppData\\Local\\Temp\\acity_temp

K.A.V.
22-07-2015, 00:52
Подскажите как записать двойной слеш в ini файл? »

Справочку когда читать будем?
Справочник по NSIS (http://forum.oszone.net/thread-168287.html) => Перевод справки NSIS => StrRep
Справочник по NSIS (http://forum.oszone.net/thread-168287.html) => Перевод справки NSIS => WriteINIStr

!include "StrFunc.nsh"
${StrRep}

OutFile "test.exe"

Section
${StrRep} $0 "$TEMP\acity_temp" "\" "\\"
WriteINIStr "$EXEDIR\TEST.ini" "Directories" "TempDir" "$0"
quit
SectionEnd

Dodakaedr
22-07-2015, 16:33
А как с таким быть? [Directories]
TempDir=D:\\����� ����� (2)\\Audacity 2.1\\AppData\\audacity_temp
Поместите скомпилированный файл в папку в названии которой есть кириллица и посмотрите у вас таже фигня:!include "StrFunc.nsh"
${StrRep}

OutFile "test.exe"

Section
SetShellVarContext current
CreateDirectory "$APPDATA\Audacity"
${StrRep} $0 "$EXEDIR\AppData\audacity_temp" "\" "\\"
WriteINIStr "$APPDATA\Audacity\audacity.cfg" "Directories" "TempDir" "$0"
;ExecWait "C:\Program Files\Audacity44\audacity.exe"
quit
SectionEnd

K.A.V.
22-07-2015, 17:02
Поместите скомпилированный файл в папку в названии которой есть кириллица и посмотрите у вас таже фигня: »
Ваш INI файл не в ANSI кодировке

Dodakaedr
22-07-2015, 21:33
Ваш INI файл не в ANSI кодировке »
Да, действительно. В левой программе изменил кодировку и все ок. Теперь осталось эту кодировку оформить в скрипте. Вы не знаете как это сделать?




© OSzone.net 2001-2012