Автор Тема: Циклическая проверка наличия файла и вывод информации в GUI  (Прочитано 477 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hulk777 [?]

  • Новичок
  • *
  • Сообщений: 44
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
Здравствуйте, форумчане.
Прошу привести пример циклической проверки наличия файла и (или) чтения с ini и вывод информации в форму в зависимости от результата проверки.

Русское сообщество AutoIt


Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 788
  • Репутация: 139
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Как-то так:
(нажмите для показа/скрытия)
Вывод в форму не писал, но это возможно функцией
Код: AutoIt [Выделить]
GUICtrlSetData ( controlID, data [, default ] )


Оффлайн Hulk777 [?]

  • Новичок
  • *
  • Сообщений: 44

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
ra4o, благодарю за ответ. Но мне нужно плюс к этому именно вывод в форму. Ну типа если так, то появляется строка в форме с определенной надписью. Дальше по смене значения другая надпись вместо первой. И это все будет в самом скрипте формы.

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 788
  • Репутация: 139
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Ну типа если так, то появляется строка в форме с определенной надписью.
Допустим , Вы в форме поместили "Label" , вот и меняйте его содержимое в зависимости от результата:
Код: AutoIt [Выделить]
;...............................................................................
;Где-то в создании самой формы Вы создали Label
$MyLabel = GUICtrlCreateLabel ( "Можно оставить пустым, если не нужно никакой надписи изначально",10, 10 , 20 ,300)
;Дальше куча всяких строк заполнения формы итд
;................................................................................
; В нужный момент
        If IniRead($MyFile, 'SomeSection', 'AnyKey', 'AnyDefault') = 'AnyDefault' Then
            ;Выполняем действия , если значение 'AnyKey' не найдено и установлено по умолчанию
            GUICtrlSetData ($MyLabel, 'Надпись в случае, если значение "AnyKey" не найдено и установлено по умолчанию')
        Else
            ; Выполняем действия, если значение 'AnyKey' определено и отлично от значения по умолчанию
             GUICtrlSetData ($MyLabel, 'Надпись в случае, если значение "AnyKey" определено и отлично от значения по умолчанию')
        EndIf

 


Русское сообщество AutoIt

Re: Циклическая проверка наличия файла и вывод информации в GUI
« Ответ #3 Отправлен: Февраль 15, 2018, 21:12:31 »

Оффлайн Hulk777 [?]

  • Новичок
  • *
  • Сообщений: 44

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
Вот теперь все понял. Последний вопрос. Как правильно вставить это в цикл, например в этом скрипте?
Код: AutoIt [Выделить]
#include <GUIConstants.au3>


GUICreate('1', 280, 280)
GUICtrlSetState(-1, $GUI_DISABLE)
$font = "Times new roman"
$Button1 = GUICtrlCreateButton('<1 >', 20, 20, 240, 50)
GUICtrlSetFont(-1, 14, 700, 0, $font)

$Button2 = GUICtrlCreateButton('< 2 >', 20, 85, 240, 50)
GUICtrlSetFont(-1, 14, 700, 0, $font)

$Button3 = GUICtrlCreateButton('< 3 >', 20, 150, 240, 50)
GUICtrlSetFont(-1, 14, 700, 0, $font)

$Button4 = GUICtrlCreateButton('< 4 >', 20, 215, 240, 50)
GUICtrlSetFont(-1, 14, 700, 0, $font)
GUISetState()


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            Run(run ("1"))
        Exit
        Case $Button2
            Run(run ("2"))
        Exit
        Case $Button3
            Run(run ("3"))
        Exit
        Case $Button4
            Run(run ("4"))
        Exit
    EndSwitch
WEnd


Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 788
  • Репутация: 139
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Как правильно вставить это в цикл
Вы хотите кнопки в цикле создавать ?

Оффлайн Hulk777 [?]

  • Новичок
  • *
  • Сообщений: 44

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
Нее. Это я так первый попавшийся. Нужно вставить в скрипт чтобы он постоянно проверял значение ini. Просто наглядно посмотреть хочу куда его в скрипте вставляют если еще один цикл в нем.

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 788
  • Репутация: 139
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
у Вас бесконечный цикл уже есть, в таком случае в нём и проверяйте. Для того, что-бы не загромаждать код - вынесите проверку наличия файла  в отдельную функцию, например так :
(нажмите для показа/скрытия)

Русское сообщество AutoIt

Re: Циклическая проверка наличия файла и вывод информации в GUI
« Ответ #7 Отправлен: Февраль 15, 2018, 21:56:42 »

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 379
  • Репутация: 90
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
Opt("GUIOnEventMode", 1)

Global $g_iState = False, $g_iInput, $g_iButton1, $g_iButton2

GUICreate("Пример", 400, 80)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlCreateLabel("IniRead: ", 10, 10, 45, 20, BitOR($GUI_SS_DEFAULT_LABEL, $SS_CENTERIMAGE, $SS_RIGHT))
$g_iInput = GUICtrlCreateInput(Null, 55, 10, 335, 20, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
GUICtrlCreateButton("Старт", 50, 40, 95, 30)
GUICtrlSetOnEvent(-1, "_Toggle")
$g_iButton1 = GUICtrlCreateButton("Кнопка 1", 155, 40, 95, 30)
GUICtrlSetOnEvent(-1, "_Events")
$g_iButton2 = GUICtrlCreateButton("Кнопка 2", 260, 40, 95, 30)
GUICtrlSetOnEvent(-1, "_Events")
GUISetState()

While Sleep(10)
WEnd

Func _Toggle()
    If Not $g_iState Then
        $g_iState = True
        GUICtrlSetData(@GUI_CtrlId, "Стоп")
        AdlibRegister("_Update")
    Else
        $g_iState = False
        AdlibUnRegister("_Update")
        GUICtrlSetData(@GUI_CtrlId, "Старт")
    EndIf
EndFunc   ;==>_Toggle

Func _Events()
    Switch @GUI_CtrlId
        Case $g_iButton1
            ToolTip("Кнопка 1" & @CRLF & "Control ID: " & @GUI_CtrlId)
        Case $g_iButton2
            TrayTip("Кнопка 2", "Control ID: " & @GUI_CtrlId, 5)
            ToolTip(Null)
    EndSwitch
EndFunc   ;==>_Event

Func _Update()
    IniWrite("Temp.ini", "Section", "Key", Random(0, 65535))

    GUICtrlSetData($g_iInput, IniRead("Temp.ini", "Section", "Key", Null))
EndFunc   ;==>_Update

Func _Exit()
    Exit FileDelete("Temp.ini")
EndFunc   ;==>_Exit
 


Оффлайн Hulk777 [?]

  • Новичок
  • *
  • Сообщений: 44

  • Автор темы
  • Репутация: 1
    • Награды
  • Версия AutoIt: 3.3.12.0
ra4o, Мозайка сложилась. Все получилось. Весьма благодарен.
Tempo, ваш скрипт интересен для меня в плане разбора что да как.

Русское сообщество AutoIt

Re: Циклическая проверка наличия файла и вывод информации в GUI
« Ответ #9 Отправлен: Февраль 15, 2018, 22:20:58 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
2449 Просмотров
Последний ответ Май 08, 2011, 22:14:20
от Ranos1982
3 Ответов
4350 Просмотров
Последний ответ Июль 05, 2011, 05:56:56
от c-n1x
2 Ответов
3531 Просмотров
Последний ответ Июль 05, 2011, 11:12:50
от Maks
7 Ответов
3428 Просмотров
Последний ответ Октябрь 08, 2011, 04:28:24
от den-x
5 Ответов
3392 Просмотров
Последний ответ Ноябрь 03, 2011, 16:26:09
от Yuriy
2 Ответов
3436 Просмотров
Последний ответ Декабрь 03, 2012, 10:33:14
от Germ
2 Ответов
2047 Просмотров
Последний ответ Июль 10, 2014, 14:45:54
от shyra1976
3 Ответов
1632 Просмотров
Последний ответ Август 25, 2014, 15:28:22
от zigzagrus79
4 Ответов
873 Просмотров
Последний ответ Август 01, 2016, 16:06:58
от Vovsla
2 Ответов
377 Просмотров
Последний ответ Сентябрь 28, 2017, 14:55:46
от Alofa