DyadyaGenya
Знающий
- Сообщения
- 300
- Репутация
- 10
Пробую реализовать такую проверку. Кнопка "Откуда" открывает окно выбора папки и делает выбор. Кнопка "Старт" заносит выбор в файл ini. В этом файле формируется 4 переменных запоминающих выбранный путь: $GPath1, $GPath2, $GPath3, $GPath4. Первое нажатие "Старт" проверяет есть переменная $GPath1 и чему она равна. Если её нет или она пустая, то записывается в файл путь. Потом делается второй выбор и по нажатию кнопки "Старт" вторая переменная $GPath2 проверяется существует или нет, пустая она или нет и не равна ли первой переменной $GPath1. Если $GPath2 пустая, то записывается в файл выбранный путь. Если равна $GPath1, то выдает сообщение, что уже такой путь существует. Потом аналогично проверяется $GPath3 на существование и равенство $GPath1 и $GPath2. Если $GPath3 пустая и не равна $GPath1 и $GPath2, то записывается в файл путь. Если нет, то выдается сообщение, что такой путь уже есть. То же самое и проверка $GPath4.
Но у меня не получается проверка на равенство предыдущих переменных. И в результате если переменной не было, но путь был равен значению какой-то предыдущей, то все равно записывается выбранный путь.
Вот мой код:
В идеале хотелось бы в конце сообщение, что все переменные существуют. Но его тоже не получается проверить и вызвать.
Но у меня не получается проверка на равенство предыдущих переменных. И в результате если переменной не было, но путь был равен значению какой-то предыдущей, то все равно записывается выбранный путь.
Вот мой код:
Код:
#RequireAdmin
#include <GUIConstantsEx.au3>
#include <Date.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>
#include <StaticConstants.au3>
#include <WinAPIProc.au3>
#Include <ScreenCapture.au3>
#include <WinAPI.au3>
#include <Clipboard.au3>
#include <GDIPlus.au3>
Global $sPS
Global $iPid, $iTM
Global $GP = IniRead("Setting.ini","GPat","Pat","")
$hGui = GUICreate('Секундомер', 700, 680, -1, -1, -1, $WS_EX_TOPMOST)
Local $btStart = GUICtrlCreateButton('Старт', 392, 8, 75, 25)
Local $sPathSS = GUICtrlCreateInput('', 8, 96, 325, 21)
Local $sPathS = GUICtrlCreateButton('Откуда', 392, 96, 75, 25)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ProcessClose($iPid)
Exit
Case $sPathS
GUICtrlSetData($sPathSS, '')
$sPS = FileSelectFolder('Выбор копируемой папки', '', 0, '', $hGui)
If Not @error Then GUICtrlSetData($sPathSS, $sPS)
Case $btStart
_GetPath()
EndSwitch
WEnd
Func _GetPath()
Local $GPath1 = ''
Local $GPath2 = ''
Local $GPath3 = ''
Local $GPath4 = ''
If $GPath1 = IniRead("Setting.ini","Путь1", "Путь","") Then
$GPath1 = $sPS
IniWrite("Setting.ini", "Путь1", "Путь", $sPS)
ElseIf $GPath2 = IniRead("Setting.ini","Путь2", "Путь","") Or $GPath1<>$sPS Then
$GPath2 = $sPS
IniWrite("Setting.ini", "Путь2", "Путь", $sPS)
ElseIf $GPath3 = IniRead("Setting.ini","Путь3", "Путь","") Then
$GPath3 = $sPS
IniWrite("Setting.ini", "Путь3", "Путь", $sPS)
ElseIf $GPath4 = IniRead("Setting.ini","Путь4", "Путь","") Then
$GPath4 = $sPS
IniWrite("Setting.ini", "Путь4", "Путь", $sPS)
EndIf
EndFunc
В идеале хотелось бы в конце сообщение, что все переменные существуют. Но его тоже не получается проверить и вызвать.