Автор Тема: Консольный прогресс бар с интерфейсом[GUI]  (Прочитано 410 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн arabnesso [?]

  • Новичок
  • *
  • Сообщений: 15
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.

Описание:
Здравствуйте, необходимо сделать часовое копирование в виде прогресс бара как у CMD, при нажатии на кнопку "Запустить" пример ниже:
(нажмите для показа/скрытия)

Так же гененировать рандомный текст в txt при нажатии на кнопку "Запустить", так же на протяжении часа. Как только нажали на кнопку запустить, 2 окна text должны быть нередактируемые.

Примечания:
Бюджет 500 рублей.

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

Консольный прогресс бар с интерфейсом[GUI]
« Отправлен: Август 01, 2018, 19:09:17 »

Оффлайн hedji [?]

  • Продвинутый
  • ***
  • Сообщений: 311
  • Репутация: 53
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #1, Отправлен: Август 02, 2018, 09:22:46 »
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Программа", 617, 449, 192, 114)
$Label1 = GUICtrlCreateLabel("text", 40, 32, 25, 17)
$Label2 = GUICtrlCreateLabel("text", 40, 88, 25, 17)
$Input1 = GUICtrlCreateInput("", 72, 32, 121, 21)
$Input2 = GUICtrlCreateInput("", 72, 88, 113, 21)
$Button1 = GUICtrlCreateButton("Сохранить txt в", 344, 32, 105, 25)
$Label3 = GUICtrlCreateLabel("Сохранить txt в", 456, 40, 80, 17)
$Button2 = GUICtrlCreateButton("Запустить", 344, 80, 105, 25)
$Edit1 = GUICtrlCreateEdit("", 8, 128, 601, 305)
GUISetState(@SW_SHOW)

GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($Button2, "poehali")

$times = 1
$start = False

While 1
    Sleep(36000)
    If $start and $times <= 100 Then
        GUICtrlSetData ($Edit1, $times & "%..." & @CRLF, "1")
        $times = $times + 1
        $str = ""
        For $i=0 To 8
            $str = $str & Chr(Random(224, 255, 1))
        Next
        GUICtrlSetData($Input1, $str)
        $str = ""
        For $i=0 To 8
            $str = $str & Chr(Random(224, 255, 1))
        Next
        GUICtrlSetData($Input2, $str)
    EndIf
    If $times = 100 Then
        GUICtrlSetState($Button2, $GUI_ENABLE)
    EndIf
WEnd

Func CLOSEClicked()
  Exit
EndFunc

Func poehali()
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetData($Edit1, "")
    $times = 1
    GUICtrlSetData ($Edit1, "Извлечение...." & @CRLF & "0%..." & @CRLF, "1")
    GUICtrlSetState($Button2, $GUI_DISABLE)
    $start = True
    $str = ""
    For $i=0 To 8
        $str = $str & Chr(Random(224, 255, 1))
    Next
    GUICtrlSetData($Input1, $str)
    $str = ""
    For $i=0 To 8
        $str = $str & Chr(Random(224, 255, 1))
    Next
    GUICtrlSetData($Input2, $str)
EndFunc
 


Оффлайн arabnesso [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #2, Отправлен: Август 02, 2018, 12:38:27 »
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Программа", 617, 449, 192, 114)
$Label1 = GUICtrlCreateLabel("text", 40, 32, 25, 17)
$Label2 = GUICtrlCreateLabel("text", 40, 88, 25, 17)
$Input1 = GUICtrlCreateInput("", 72, 32, 121, 21)
$Input2 = GUICtrlCreateInput("", 72, 88, 113, 21)
$Button1 = GUICtrlCreateButton("Сохранить txt в", 344, 32, 105, 25)
$Label3 = GUICtrlCreateLabel("Сохранить txt в", 456, 40, 80, 17)
$Button2 = GUICtrlCreateButton("Запустить", 344, 80, 105, 25)
$Edit1 = GUICtrlCreateEdit("", 8, 128, 601, 305)
GUISetState(@SW_SHOW)

GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($Button2, "poehali")

$times = 1
$start = False

While 1
    Sleep(36000)
    If $start and $times <= 100 Then
        GUICtrlSetData ($Edit1, $times & "%..." & @CRLF, "1")
        $times = $times + 1
        $str = ""
        For $i=0 To 8
            $str = $str & Chr(Random(224, 255, 1))
        Next
        GUICtrlSetData($Input1, $str)
        $str = ""
        For $i=0 To 8
            $str = $str & Chr(Random(224, 255, 1))
        Next
        GUICtrlSetData($Input2, $str)
    EndIf
    If $times = 100 Then
        GUICtrlSetState($Button2, $GUI_ENABLE)
    EndIf
WEnd

Func CLOSEClicked()
  Exit
EndFunc

Func poehali()
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetData($Edit1, "")
    $times = 1
    GUICtrlSetData ($Edit1, "Извлечение...." & @CRLF & "0%..." & @CRLF, "1")
    GUICtrlSetState($Button2, $GUI_DISABLE)
    $start = True
    $str = ""
    For $i=0 To 8
        $str = $str & Chr(Random(224, 255, 1))
    Next
    GUICtrlSetData($Input1, $str)
    $str = ""
    For $i=0 To 8
        $str = $str & Chr(Random(224, 255, 1))
    Next
    GUICtrlSetData($Input2, $str)
EndFunc
 


Спасибо)))
Но тут несколько проблем
1) Если я введу текст в два пункта "text" и "text" то при нажатии на "Запустить" мои данные меняются на другие, а нужно чтобы они оставались если и их задал, если я их не задавал, то кнопка "Запустить" не будет запускаться.
2) Когда нажимаю на кнопку "Сохранить в txt", она не работает, а если просто не нажимать на эту кнопку, то txt документ не появляется, а должен появлятся и туда должо записываться набор различных рандомных символов. А если я не указываю куда сохранять txt, то он автоматически сохраняется рядом со скриптом.
3) И как можно поменять цвет окна, где "Извлечение.." и т.д. на черный, а текст сделать белым?


Добавлено: Август 02, 2018, 12:58:41
Еще почему-то резко с 24% соскочило на 8%, если можно и это тоже(
« Последнее редактирование: Август 02, 2018, 12:58:41 от arabnesso, Причина: Объединение сообщений »

Оффлайн hedji [?]

  • Продвинутый
  • ***
  • Сообщений: 311
  • Репутация: 53
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #3, Отправлен: Август 02, 2018, 13:02:37 »
Цитировать
Но тут несколько проблем
1) Если я введу текст в два пункта "text" и "text" то при нажатии на "Запустить" мои данные меняются на другие, а нужно чтобы они оставались если и их задал, если я их не задавал, то кнопка "Запустить" не будет запускаться.
2) Когда нажимаю на кнопку "Сохранить в txt", она не работает, а если просто не нажимать на эту кнопку, то txt документ не появляется, а должен появлятся и туда должо записываться набор различных рандомных символов. А если я не указываю куда сохранять txt, то он автоматически сохраняется рядом со скриптом.
3) И как можно поменять цвет окна, где "Извлечение.." и т.д. на черный, а текст сделать белым?

Это не проблемы, это изменение изначального ТЗ  ;D

1) Заблокировать кнопку запуска до ввода текста в оба поля, а после нажатия кнопки заблокировать сами поля?
2) А что куда сохранять то? И в какой момент?
3)
Код: AutoIt [Выделить]
$Edit1 = GUICtrlCreateEdit("", 8, 128, 601, 305)
GUICtrlSetBkColor($Edit1, "0x000000")
GUICtrlSetColor($Edit1, "0xFFFFFF")
 

4) Мышкой кликнули на строку 7%, для запрета редактирования Edit1 на время работы:
Код: AutoIt [Выделить]
Func poehali() 
    GUICtrlSetState($Edit1, $GUI_DISABLE)
;..... остальное тело функции
 

« Последнее редактирование: Август 02, 2018, 13:12:42 от hedji, Причина: дополнение »

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

Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #3 Отправлен: Август 02, 2018, 13:02:37 »

Оффлайн arabnesso [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #4, Отправлен: Август 02, 2018, 13:55:58 »
Это не проблемы, это изменение изначального ТЗ  ;D

Да, я забыл ТЗ дописать(
И кстати txt так же не сохраняется, нужно, чтобы сохранялось)

Оффлайн hedji [?]

  • Продвинутый
  • ***
  • Сообщений: 311
  • Репутация: 53
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #5, Отправлен: Август 02, 2018, 14:02:25 »
И кстати txt так же не сохраняется, нужно, чтобы сохранялось)

Никакой функции на кнопке "Сохранить txt в" не висит, она не будет работать.

Поясните:
- Что нужно сохранить в txt?
- Куда сохранить сам txt?
- В какой момент нужно сохранять?
- Что в момент сохранения делать с полем Edit1 и остальными полями?

Оффлайн arabnesso [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #6, Отправлен: Август 02, 2018, 14:55:47 »
И кстати txt так же не сохраняется, нужно, чтобы сохранялось)

Никакой функции на кнопке "Сохранить txt в" не висит, она не будет работать.

Поясните:
- Что нужно сохранить в txt?
- Куда сохранить сам txt?
- В какой момент нужно сохранять?
- Что в момент сохранения делать с полем Edit1 и остальными полями?

1) После того как нажали на кнопку "Запустить", автоматически появляется рядом txt документ и туда записываются всякие разные рандомные символы(крякозябры и т.д. можно что угодно)
2) Сохранять txt рядом со скриптом, это в том случае, если не указали куда будет идти сохранение.
3) В момент сохранения с полем ничего не происходит, оно просто недоступно, просто идет процесс "Извлечение..." и пока он не завершится, все это время идет сохранение в txt документ рандомных символов.
« Последнее редактирование: Август 02, 2018, 15:00:59 от arabnesso »

Помечен как лучший ответ пользователем arabnesso Отправлен Август 02, 2018, 15:32:19

Оффлайн hedji [?]

  • Продвинутый
  • ***
  • Сообщений: 311
  • Репутация: 53
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #7, Отправлен: Август 02, 2018, 15:16:26 »
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Программа", 617, 449, 192, 114)
$Label1 = GUICtrlCreateLabel("text", 40, 32, 25, 17)
$Label2 = GUICtrlCreateLabel("text", 40, 88, 25, 17)
$Input1 = GUICtrlCreateInput("", 72, 32, 121, 21)
$Input2 = GUICtrlCreateInput("", 72, 88, 113, 21)
$Button1 = GUICtrlCreateButton("Сохранить txt в", 344, 32, 105, 25)
$Label3 = GUICtrlCreateLabel("Сохранить txt в", 456, 40, 80, 17)
$Button2 = GUICtrlCreateButton("Запустить", 344, 80, 105, 25)
$Edit1 = GUICtrlCreateEdit("", 8, 128, 601, 305)
GUICtrlSetBkColor($Edit1, "0x000000")
GUICtrlSetColor($Edit1, "0xFFFFFF")
GUISetState(@SW_SHOW)

GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($Button1, "txt_file")
GUICtrlSetOnEvent($Button2, "poehali")


$times = 1
$start = False
$dir = @ScriptDir

While 1
    Sleep(36000)
    If $start and $times <= 100 Then
        GUICtrlSetData ($Edit1, $times & "%..." & @CRLF, "1")
        $str = ""
        For $i=0 To 8
            $str = $str & Chr(Random(97, 122, 1))
        Next
        FileWriteLine($dir & "\saved.txt", $str)
        $times = $times + 1
    EndIf
    If $times = 100 Then
        GUICtrlSetState($Button2, $GUI_ENABLE)
    EndIf
WEnd

Func CLOSEClicked()
  Exit
EndFunc

Func txt_file()
    $dir = FileSelectFolder("Выберете папку для сохоанения txt", @ScriptDir)
EndFunc

Func poehali()
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Edit1, $GUI_DISABLE)
    GUICtrlSetData($Edit1, "")
    $times = 1
    GUICtrlSetData ($Edit1, "Извлечение...." & @CRLF & "0%..." & @CRLF, "1")
    GUICtrlSetState($Button2, $GUI_DISABLE)
    GUICtrlSetState($Button1, $GUI_DISABLE)
    $start = True
EndFunc
 


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

Re: Консольный прогресс бар с интерфейсом[GUI]
« Ответ #7 Отправлен: Август 02, 2018, 15:16:26 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
4184 Просмотров
Последний ответ Февраль 25, 2010, 23:21:04
от Luke
5 Ответов
6251 Просмотров
Последний ответ Август 26, 2013, 19:56:47
от AZJIO
3 Ответов
4522 Просмотров
Последний ответ Сентябрь 03, 2011, 22:44:30
от madmasles
1 Ответов
2106 Просмотров
Последний ответ Август 09, 2011, 21:03:31
от Gena
1 Ответов
7031 Просмотров
Последний ответ Апрель 03, 2012, 13:11:52
от RUVATA
11 Ответов
4471 Просмотров
Последний ответ Январь 30, 2012, 15:44:39
от gora
4 Ответов
2739 Просмотров
Последний ответ Сентябрь 11, 2012, 06:32:20
от F9
4 Ответов
2502 Просмотров
Последний ответ Апрель 04, 2012, 19:16:45
от AZJIO
10 Ответов
4937 Просмотров
Последний ответ Июль 22, 2012, 00:01:47
от joiner
2 Ответов
2934 Просмотров
Последний ответ Июль 02, 2013, 20:16:59
от AZJIO