PDA

Показать полную графическую версию : [решено] Как сделать так, чтобы текст формы появлялся по мере выполнения операций?


D_Master
16-01-2009, 08:57
Господа, нуждаюсь в вашей помощи :)
Как сделать так, чтобы текст формы появлялся по мере выполнения операций? Вот пример моей формы:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=C:\Documents and Settings\User\Мои документы\MyAutoIt\GUIs\Form2.kxf
$Form2 = GUICreate("Интеграция", 183, 252, 189, 120)
$Label1 = GUICtrlCreateLabel("Начало операции", 8, 24, 92, 17)
$Label2 = GUICtrlCreateLabel("Копирование дистрибутива...", 8, 40, 152, 17)
$Label3 = GUICtrlCreateLabel("Интеграция обновлений...", 8, 72, 136, 17)
$Label4 = GUICtrlCreateLabel("Удаление папок...", 8, 56, 96, 17)
$Label5 = GUICtrlCreateLabel("Изменение контрольной суммы", 8, 88, 168, 17)
$Label6 = GUICtrlCreateLabel("Создание ISO-образа", 8, 104, 113, 17)
$Label7 = GUICtrlCreateLabel("Запись лога....", 8, 120, 79, 17)
$Label8 = GUICtrlCreateLabel("Завершение операции", 8, 136, 118, 17)
$Label9 = GUICtrlCreateLabel("Завершено!", 8, 168, 64, 17)
$Button1 = GUICtrlCreateButton("Отмена", 8, 208, 73, 25, 0)
$Button2 = GUICtrlCreateButton("Закрыть окно", 88, 208, 81, 25, 0)
$Label10 = GUICtrlCreateLabel("Подготовка к интеграции", 8, 8, 134, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd
Допустим, начинается копирование дистрибутива - появляется надпись "Копирование дистрибутива", скопировался, началась интеграция обновлений - появилась соответствующая надпись и т.д.
[hr]
И ещё вот:
есть код, запускаю (или компилирую), грузит процессор на 50-60%. В чем может быть проблема? (За код прошу не пинать, я только учусь :))

#NoTrayIcon
#include <GUIConstants.au3>
$ConfigFile = @ScriptDir & "\Oem.ini"
$GetDistrPath = IniRead($ConfigFile, "main", "DistrPath", "")
$GetUpdatesPath = IniRead($ConfigFile, "main", "UpdatesPath", "")
$GetNewDistrPath = IniRead($ConfigFile, "main", "CopyToPath", "")
$GetDeleteFolders = IniRead($ConfigFile, "options", "PurgeFolders", "1")
$GetUpdateXP = IniRead($ConfigFile, "options", "UpdatesXP", "4")
$GetDeleteDistrPath = IniRead($ConfigFile, "options", "DeleteOrigDistrPath", "4")
$GetCopyDistr = IniRead($ConfigFile, "options", "CopyDistr", "1")
$GetWriteLog = IniRead($ConfigFile, "options", "LogWrite", "1")
$GetUpdatesSet = IniRead($ConfigFile, "options", "UpdateDistr", "4")

#Region ### START Koda GUI section ### Form=
Opt("GUIOnEventMode", 1) ; Подключаем режим OnEvent
$Form1_1 = GUICreate("Интеграция обновлений", 505, 343, 191, 113)
$Label1 = GUICtrlCreateLabel("Путь к папке с дистрибутивом", 32, 32, 159, 17)
$DistrPath = GUICtrlCreateInput($GetDistrPath, 288, 24, 161, 21)
$Label2 = GUICtrlCreateLabel("Путь к папке с обновлениями", 32, 56, 156, 17)
$UpdatesPath = GUICtrlCreateInput($GetUpdatesPath, 288, 48, 161, 21)
$Label3 = GUICtrlCreateLabel("Путь копирования дистрибутива", 32, 80, 169, 17)
$NewDistrPath = GUICtrlCreateInput($GetNewDistrPath, 288, 72, 161, 21)
$Group1 = GUICtrlCreateGroup("Пути", 8, 8, 489, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Опции обработки", 8, 120, 489, 169)
;проверяем пункт "Удалить ненужные папки"
If $GetDeleteFolders=1 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetDeleteFolders=4 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
EndIf

;Проверяем пункт "Убрать возможность обновления"
If $GetUpdateXP=1 Then
$Checkbox2 = GUICtrlCreateCheckbox("Убрать возможность обновления", 32, 168, 193, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetUpdateXP=4 Then
$Checkbox2 = GUICtrlCreateCheckbox("Убрать возможность обновления", 32, 168, 193, 17)
EndIf

;Проверям пункт "Удалить исходный дистрибутив"
If $GetDeleteDistrPath=1 Then
$Checkbox3 = GUICtrlCreateCheckbox("Удалить исходный дистрибутив", 32, 192, 177, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetDeleteDistrPath=4 Then
$Checkbox3 = GUICtrlCreateCheckbox("Удалить исходный дистрибутив", 32, 192, 177, 17)
EndIf

;Проверяем пункт "Копировать дистрибутив"
If $GetCopyDistr=1 Then
$Checkbox4 = GUICtrlCreateCheckbox("Копировать дистрибутив", 32, 216, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetCopyDistr=4 Then
$Checkbox4 = GUICtrlCreateCheckbox("Копировать дистрибутив", 32, 216, 153, 17)
EndIf

;Проверяем пункт "Писать лог"
If $GetWriteLog=1 Then
$Checkbox5 = GUICtrlCreateCheckbox("Писать лог", 32, 240, 81, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetWriteLog=4 Then
$Checkbox5 = GUICtrlCreateCheckbox("Писать лог", 32, 240, 81, 17)
EndIf

;Проверяем пункт "Интегрировать обновления"
If $GetUpdatesSet=1 Then
$Checkbox6 = GUICtrlCreateCheckbox("Интегрировать обновления", 32, 264, 161, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetUpdatesSet=4 Then
$Checkbox6 = GUICtrlCreateCheckbox("Интегрировать обновления", 32, 264, 161, 17)
EndIf

GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Начать процесс!", 32, 304, 99, 25, 0)
$Button2 = GUICtrlCreateButton("Выход", 144, 304, 97, 25, 0)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($Button1, "OkButton")
GUICtrlSetOnEvent($Button2, "CLOSEClicked")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd


Func OKButton()
;проверяем наличие флага на запись лога
If $GetWriteLog=1 Then
$WriteLog="1"
$Log=@ScriptDir &"\LOG.TXT"
Else
$WriteLog="2"
EndIf

;проверяем, стоит ли галочка в пункте "Копировать дистрибутив". Если нет - обрабатываем исходник.
If $GetCopyDistr=0 Then
$GetNewDistrPath=$GetDistrPath
EndIf

If FileExists($GetNewDistrPath) Then
$EchoDirExist = StringFormat("Внимание! папка %s уже существует!\nПродолжение операции невозможно!", $GetNewDistrPath)
MsgBox(64, "Внимание! Папка существует!", $EchoDirExist, 10)
Exit
EndIf
If Not FileExists($GetNewDistrPath) Then
DirCreate($GetNewDistrPath)
EndIf
;копируем дистрибутив в новую папку
DirCopy($GetDistrPath, $GetNewDistrPath, 1)
;проверяем наличие флага на удаление лишних папок
If $GetDeleteFolders=1 Then
$DeleteFolderNames1 = StringFormat("%s\\Docs", $GetNewDistrPath)
$DeleteFolderNames2 = StringFormat("%s\\Dotnetfx", $GetNewDistrPath)
$DeleteFolderNames3 = StringFormat("%s\\Support", $GetNewDistrPath)
$DeleteFolderNames4 = StringFormat("%s\\ValueAdd", $GetNewDistrPath)
DirRemove($DeleteFolderNames1)
DirRemove($DeleteFolderNames2)
DirRemove($DeleteFolderNames3)
DirRemove($DeleteFolderNames4)
EndIf
;проверяем наличие флага на удаление возможности обновления WinXP
If $GetUpdateXP=0 Then
$DeleteUpdates1 = StringFormat("%s\\i386\WIN9XMIG", $GetNewDistrPath)
$DeleteUpdates2 = StringFormat("%s\\i386\WIN9XUPG", $GetNewDistrPath)
$DeleteUpdates3 = StringFormat("%s\\i386\WINNTUPG", $GetNewDistrPath)
DirRemove($DeleteUpdates1)
DirRemove($DeleteUpdates2)
DirRemove($DeleteUpdates3)
EndIf

MsgBox(0, "GUI Event", "You pressed OK!")
;прежде тем, как закроется окно, сохраним изменения в конфиг-файл
$IniWriteDistrPath = GUICtrlRead($DistrPath)
$IniWriteUpdatesPath = GUICtrlRead($UpdatesPath)
$IniWriteNewDistrPath = GUICtrlRead($NewDistrPath)
$IniWritePurgeFolders = GUICtrlRead($Checkbox1)
$IniWriteUpdatesXP = GUICtrlRead($Checkbox2)
$IniWriteDeleteOrigPath = GUICtrlRead($Checkbox3)
$IniWriteCopyDistr = GUICtrlRead($Checkbox4)
$IniWriteWriteLog = GUICtrlRead($Checkbox5)
$IniWriteUpdateDistr = GUICtrlRead($Checkbox6)
If FileExists($ConfigFile) Then
FileDelete($ConfigFile)
EndIf
FileOpen($ConfigFile, 1)
$IniWriteEcho = StringFormat("[main]\nDistrPath=%s\nUpdatesPath=%s\nCopyToPath=%s\n\n[options]\nPurgeFolders=%s\nUpdatesXP=%s\nDeleteOrigDistrPath=%s\nCopyDistr=%s\nLogWrite=%s\nUpdateDistr=%s\n", $IniWriteDistrPath, $IniWriteUpdatesPath, $IniWriteNewDistrPath, $IniWritePurgeFolders, $IniWriteUpdatesXP, $IniWriteDeleteOrigPath, $IniWriteCopyDistr, $IniWriteWriteLog, $IniWriteUpdateDistr)
FileWrite($ConfigFile, $IniWriteEcho)
FileClose($ConfigFile)
Exit
EndFunc

Func CLOSEClicked()
;пользователь решил закрыть окно, но прежде тем, как закроем, сохраним изменения в конфиг-файл
$IniWriteDistrPath = GUICtrlRead($DistrPath)
$IniWriteUpdatesPath = GUICtrlRead($UpdatesPath)
$IniWriteNewDistrPath = GUICtrlRead($NewDistrPath)
$IniWritePurgeFolders = GUICtrlRead($Checkbox1)
$IniWriteUpdatesXP = GUICtrlRead($Checkbox2)
$IniWriteDeleteOrigPath = GUICtrlRead($Checkbox3)
$IniWriteCopyDistr = GUICtrlRead($Checkbox4)
$IniWriteWriteLog = GUICtrlRead($Checkbox5)
$IniWriteUpdateDistr = GUICtrlRead($Checkbox6)
If FileExists($ConfigFile) Then
FileDelete($ConfigFile)
EndIf
FileOpen($ConfigFile, 1)
$IniWriteEcho = StringFormat("[main]\nDistrPath=%s\nUpdatesPath=%s\nCopyToPath=%s\n\n[options]\nPurgeFolders=%s\nUpdatesXP=%s\nDeleteOrigDistrPath=%s\nCopyDistr=%s\nLogWrite=%s\nUpdateDistr=%s\n", $IniWriteDistrPath, $IniWriteUpdatesPath, $IniWriteNewDistrPath, $IniWritePurgeFolders, $IniWriteUpdatesXP, $IniWriteDeleteOrigPath, $IniWriteCopyDistr, $IniWriteWriteLog, $IniWriteUpdateDistr)
FileWrite($ConfigFile, $IniWriteEcho)
FileClose($ConfigFile)
Exit
EndFunc

Maza Faka
16-01-2009, 10:30
D_Master
Код-1
Пример:
#include <GUIConstantsEx.au3>

$Form2 = GUICreate("Интеграция", 183, 252, 189, 120)

$cLabel_Info = GUICtrlCreateLabel("", 11, 11, 159, 180)

$Button2 = GUICtrlCreateButton("Закрыть окно", 88, 208, 81, 25, 0)

GUISetState(@SW_SHOW)

_SetupProgressSet("Начало операции")
Sleep(1000)
_SetupProgressSet("Копирование дистрибутива...")
Sleep(1000)
_SetupProgressSet("Интеграция обновлений...")
Sleep(1000)
_SetupProgressSet("Удаление папок...")
Sleep(1000)
_SetupProgressSet("Изменение контрольной суммы...")
Sleep(1000)
_SetupProgressSet("Создание ISO-образа...")
Sleep(1000)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

Func _SetupProgressSet($sText)
Local $iPrevText = GUICtrlRead($cLabel_Info)

If $iPrevText = "" Then
GUICtrlSetData($cLabel_Info, $sText & @CRLF)
Else
GUICtrlSetData($cLabel_Info, $iPrevText & $sText & @CRLF)
EndIf
EndFunc ;==>_SetupProgressSet

Код-2
Зачем ты используешь 2 типа опроса GUI? Отсюда и тормоза. Используй либо GUI MessageLoop Mode либо GUI OnEvent Mode. И читаем, читаем справку (http://www.autoitscript.com/autoit3/docs/guiref/GUIRef.htm) :)

266903582
16-01-2009, 10:57
Maza Faka, зачем же так изощряться над примерами новичка? Можно просто показать ему на справку:
GUICtrlSetState
--------------------------------------------------------------------------------
Изменить состояние элемента.
GUICtrlSetState ( controlid, state )
Параметры
controlid Идентификатор элемента, возвращаемый вызовом GUICtrlCreate...
state Значение состояния из Таблицы состояний.
где нас интересуют следующие:
$GUI_SHOW - отобразить элемент GUI.
$GUI_HIDE - скрыть элемент

D_Master
16-01-2009, 11:14
Maza Faka, за 1й код спасибо :)
Зачем ты используешь 2 типа опроса GUI? »
Ээээ... вы про это?
If $GetDeleteFolders=1 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetDeleteFolders=4 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
EndIf

Maza Faka
16-01-2009, 11:57
Да интересно я некого ни чем необьязывал но вы даже непросмотрели мой вопрос!! »
Имейте терпение уважаемый, я скачал ваши текстовые файлы, но ещё не успел их просмотреть, своих дел тоже хватает :)

P.S.
Обязательно постараюсь помочь ;)

зачем же так изощряться над примерами новичка? »
Где, в моём примере вы увидели изощрения?

Можно просто показать ему на справку:
GUICtrlSetState »
А на кой создавать кучу одинаковых контролов и изменять их состояние, когда можно использовать всего один?

На вкус и цвет - товарищей нет.
Выложите свой вариант, а D_Master пусть сам решает, какой из примеров ему подходит :)

Ээээ... вы про это? »
Закомментируй строку Opt("GUIOnEventMode", 1) ; Подключаем режим OnEvent

D_Master
16-01-2009, 12:00
Закомментируй строку Opt("GUIOnEventMode", 1) ; Подключаем режим OnEvent »
Так ведь у меня там кнопки запуска и закрытия окна, без этого они не срабатывают
Извиняюсь, если глупость сморозил :)

Maza Faka
16-01-2009, 16:53
Так ведь у меня там кнопки запуска и закрытия окна, без этого они не срабатывают »
Правильно, потому, что они не опрашиваются в этом месте кода:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
:)

Как я уже писал, нельзя использовать GUIOnEventMode и GUIGetMsg одновременно.


#NoTrayIcon
#include <GUIConstants.au3>
$ConfigFile = @ScriptDir & "\Oem.ini"
$GetDistrPath = IniRead($ConfigFile, "main", "DistrPath", "")
$GetUpdatesPath = IniRead($ConfigFile, "main", "UpdatesPath", "")
$GetNewDistrPath = IniRead($ConfigFile, "main", "CopyToPath", "")
$GetDeleteFolders = IniRead($ConfigFile, "options", "PurgeFolders", "1")
$GetUpdateXP = IniRead($ConfigFile, "options", "UpdatesXP", "4")
$GetDeleteDistrPath = IniRead($ConfigFile, "options", "DeleteOrigDistrPath", "4")
$GetCopyDistr = IniRead($ConfigFile, "options", "CopyDistr", "1")
$GetWriteLog = IniRead($ConfigFile, "options", "LogWrite", "1")
$GetUpdatesSet = IniRead($ConfigFile, "options", "UpdateDistr", "4")

#Region ### START Koda GUI section ### Form=
Opt("GUIOnEventMode", 1) ; Подключаем режим OnEvent
$Form1_1 = GUICreate("Интеграция обновлений", 505, 343, 191, 113)
$Label1 = GUICtrlCreateLabel("Путь к папке с дистрибутивом", 32, 32, 159, 17)
$DistrPath = GUICtrlCreateInput($GetDistrPath, 288, 24, 161, 21)
$Label2 = GUICtrlCreateLabel("Путь к папке с обновлениями", 32, 56, 156, 17)
$UpdatesPath = GUICtrlCreateInput($GetUpdatesPath, 288, 48, 161, 21)
$Label3 = GUICtrlCreateLabel("Путь копирования дистрибутива", 32, 80, 169, 17)
$NewDistrPath = GUICtrlCreateInput($GetNewDistrPath, 288, 72, 161, 21)
$Group1 = GUICtrlCreateGroup("Пути", 8, 8, 489, 97)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Опции обработки", 8, 120, 489, 169)
;проверяем пункт "Удалить ненужные папки"
If $GetDeleteFolders = 1 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetDeleteFolders = 4 Then
$Checkbox1 = GUICtrlCreateCheckbox("Удалить ненужные папки", 32, 144, 153, 17)
EndIf

;Проверяем пункт "Убрать возможность обновления"
If $GetUpdateXP = 1 Then
$Checkbox2 = GUICtrlCreateCheckbox("Убрать возможность обновления", 32, 168, 193, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetUpdateXP = 4 Then
$Checkbox2 = GUICtrlCreateCheckbox("Убрать возможность обновления", 32, 168, 193, 17)
EndIf

;Проверям пункт "Удалить исходный дистрибутив"
If $GetDeleteDistrPath = 1 Then
$Checkbox3 = GUICtrlCreateCheckbox("Удалить исходный дистрибутив", 32, 192, 177, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetDeleteDistrPath = 4 Then
$Checkbox3 = GUICtrlCreateCheckbox("Удалить исходный дистрибутив", 32, 192, 177, 17)
EndIf

;Проверяем пункт "Копировать дистрибутив"
If $GetCopyDistr = 1 Then
$Checkbox4 = GUICtrlCreateCheckbox("Копировать дистрибутив", 32, 216, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetCopyDistr = 4 Then
$Checkbox4 = GUICtrlCreateCheckbox("Копировать дистрибутив", 32, 216, 153, 17)
EndIf

;Проверяем пункт "Писать лог"
If $GetWriteLog = 1 Then
$Checkbox5 = GUICtrlCreateCheckbox("Писать лог", 32, 240, 81, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetWriteLog = 4 Then
$Checkbox5 = GUICtrlCreateCheckbox("Писать лог", 32, 240, 81, 17)
EndIf

;Проверяем пункт "Интегрировать обновления"
If $GetUpdatesSet = 1 Then
$Checkbox6 = GUICtrlCreateCheckbox("Интегрировать обновления", 32, 264, 161, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
EndIf
If $GetUpdatesSet = 4 Then
$Checkbox6 = GUICtrlCreateCheckbox("Интегрировать обновления", 32, 264, 161, 17)
EndIf

GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Начать процесс!", 32, 304, 99, 25, 0)
$Button2 = GUICtrlCreateButton("Выход", 144, 304, 97, 25, 0)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($Button1, "OkButton")
GUICtrlSetOnEvent($Button2, "CLOSEClicked")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
Sleep(100)
WEnd


Func OKButton()
;проверяем наличие флага на запись лога
If $GetWriteLog = 1 Then
$WriteLog = "1"
$Log = @ScriptDir & "\LOG.TXT"
Else
$WriteLog = "2"
EndIf

;проверяем, стоит ли галочка в пункте "Копировать дистрибутив". Если нет - обрабатываем исходник.
If $GetCopyDistr = 0 Then
$GetNewDistrPath = $GetDistrPath
EndIf

If FileExists($GetNewDistrPath) Then
$EchoDirExist = StringFormat("Внимание! папка %s уже существует!\nПродолжение операции невозможно!", $GetNewDistrPath)
MsgBox(64, "Внимание! Папка существует!", $EchoDirExist, 10)
Exit
EndIf
If Not FileExists($GetNewDistrPath) Then
DirCreate($GetNewDistrPath)
EndIf
;копируем дистрибутив в новую папку
DirCopy($GetDistrPath, $GetNewDistrPath, 1)
;проверяем наличие флага на удаление лишних папок
If $GetDeleteFolders = 1 Then
$DeleteFolderNames1 = StringFormat("%s\\Docs", $GetNewDistrPath)
$DeleteFolderNames2 = StringFormat("%s\\Dotnetfx", $GetNewDistrPath)
$DeleteFolderNames3 = StringFormat("%s\\Support", $GetNewDistrPath)
$DeleteFolderNames4 = StringFormat("%s\\ValueAdd", $GetNewDistrPath)
DirRemove($DeleteFolderNames1)
DirRemove($DeleteFolderNames2)
DirRemove($DeleteFolderNames3)
DirRemove($DeleteFolderNames4)
EndIf
;проверяем наличие флага на удаление возможности обновления WinXP
If $GetUpdateXP = 0 Then
$DeleteUpdates1 = StringFormat("%s\\i386\WIN9XMIG", $GetNewDistrPath)
$DeleteUpdates2 = StringFormat("%s\\i386\WIN9XUPG", $GetNewDistrPath)
$DeleteUpdates3 = StringFormat("%s\\i386\WINNTUPG", $GetNewDistrPath)
DirRemove($DeleteUpdates1)
DirRemove($DeleteUpdates2)
DirRemove($DeleteUpdates3)
EndIf

MsgBox(0, "GUI Event", "You pressed OK!")
;прежде тем, как закроется окно, сохраним изменения в конфиг-файл
$IniWriteDistrPath = GUICtrlRead($DistrPath)
$IniWriteUpdatesPath = GUICtrlRead($UpdatesPath)
$IniWriteNewDistrPath = GUICtrlRead($NewDistrPath)
$IniWritePurgeFolders = GUICtrlRead($Checkbox1)
$IniWriteUpdatesXP = GUICtrlRead($Checkbox2)
$IniWriteDeleteOrigPath = GUICtrlRead($Checkbox3)
$IniWriteCopyDistr = GUICtrlRead($Checkbox4)
$IniWriteWriteLog = GUICtrlRead($Checkbox5)
$IniWriteUpdateDistr = GUICtrlRead($Checkbox6)
If FileExists($ConfigFile) Then
FileDelete($ConfigFile)
EndIf
FileOpen($ConfigFile, 1)
$IniWriteEcho = StringFormat("[main]\nDistrPath=%s\nUpdatesPath=%s\nCopyToPath=%s\n\n[options]\nPurgeFolders=%s\nUpdatesXP=%s\nDeleteOrigDistrPath=%s\nCopyDistr=%s\nLogWrite=%s\nUpdateDistr=%s\n", $IniWriteDistrPath, $IniWriteUpdatesPath, $IniWriteNewDistrPath, $IniWritePurgeFolders, $IniWriteUpdatesXP, $IniWriteDeleteOrigPath, $IniWriteCopyDistr, $IniWriteWriteLog, $IniWriteUpdateDistr)
FileWrite($ConfigFile, $IniWriteEcho)
FileClose($ConfigFile)
Exit
EndFunc ;==>OKButton

Func CLOSEClicked()
;пользователь решил закрыть окно, но прежде тем, как закроем, сохраним изменения в конфиг-файл
$IniWriteDistrPath = GUICtrlRead($DistrPath)
$IniWriteUpdatesPath = GUICtrlRead($UpdatesPath)
$IniWriteNewDistrPath = GUICtrlRead($NewDistrPath)
$IniWritePurgeFolders = GUICtrlRead($Checkbox1)
$IniWriteUpdatesXP = GUICtrlRead($Checkbox2)
$IniWriteDeleteOrigPath = GUICtrlRead($Checkbox3)
$IniWriteCopyDistr = GUICtrlRead($Checkbox4)
$IniWriteWriteLog = GUICtrlRead($Checkbox5)
$IniWriteUpdateDistr = GUICtrlRead($Checkbox6)
If FileExists($ConfigFile) Then
FileDelete($ConfigFile)
EndIf
FileOpen($ConfigFile, 1)
$IniWriteEcho = StringFormat("[main]\nDistrPath=%s\nUpdatesPath=%s\nCopyToPath=%s\n\n[options]\nPurgeFolders=%s\nUpdatesXP=%s\nDeleteOrigDistrPath=%s\nCopyDistr=%s\nLogWrite=%s\nUpdateDistr=%s\n", $IniWriteDistrPath, $IniWriteUpdatesPath, $IniWriteNewDistrPath, $IniWritePurgeFolders, $IniWriteUpdatesXP, $IniWriteDeleteOrigPath, $IniWriteCopyDistr, $IniWriteWriteLog, $IniWriteUpdateDistr)
FileWrite($ConfigFile, $IniWriteEcho)
FileClose($ConfigFile)
Exit
EndFunc ;==>CLOSEClicked

D_Master
17-01-2009, 13:21
Maza Faka, спасибо за помощь!




© OSzone.net 2001-2012