Что я пытаюсь выполнить?
Ответ - опишите задачу
Есть скрипт, который работает как тест. Он постоянно висит в трее и раз в 10 минут выскакивает в виде окна, предлагая ответить на один из вопросов.
Вопросы скрипт берет из текстового файла.
Сейчас в txt - содержатся только тексты вопросов, возможных ответов и тексты правильных ответов.
И вопрос заключается в том - как заставить скрипт еще реагировать на картинку, если она представлена в одном из заданий в виде адреса на файл ?
Как разместить на этой форме - под последней кнопкой ответа - уменьшенную копию картинки, лежащей по данному адресу ?
Как я это пытался/ась выполнить?
Ответ - опишите какие действия были предприняты
Скрипт выглядит вот так:
Содержимое файла txt - выглядит вот так:
Что я ожидаю от выполненных действии?
Ответ
Чтобы картинка по адресу из txt -подгружалась на форму.
Что происходит на самом деле?
Ответ - опишите подробнее что происходит
Сейчас ничего не происходит.
Не знаю как заставить эту форму - учитывать наличие картинки в txt.
Ответ - опишите задачу
Есть скрипт, который работает как тест. Он постоянно висит в трее и раз в 10 минут выскакивает в виде окна, предлагая ответить на один из вопросов.
Вопросы скрипт берет из текстового файла.
Сейчас в txt - содержатся только тексты вопросов, возможных ответов и тексты правильных ответов.
И вопрос заключается в том - как заставить скрипт еще реагировать на картинку, если она представлена в одном из заданий в виде адреса на файл ?
Как разместить на этой форме - под последней кнопкой ответа - уменьшенную копию картинки, лежащей по данному адресу ?
Как я это пытался/ась выполнить?
Ответ - опишите какие действия были предприняты
Скрипт выглядит вот так:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
FileChangeDir(@ScriptDir)
Global $sRead = FileRead('Тестовые вопросы и ответы.txt')
Global $aData = StringRegExp($sRead, '(?s)(Вопрос \d+\r?\n[^\r\n]+\r?\nОтветы:\r?\n.*?\r?\nПравильный:\r?\n[^\r\n]+)', 3)
Global $aQuestion_Bttn[10], $iQuestion_Lbl, $sCorret_Answer
Global $iTimer
Global $iCrctAnswr_Sleep = 10 ;Minutes
Global $iInCrctAnswr_Sleep = 1 ;Minutes
Opt('TrayMenuMode', 1)
TraySetState(2)
$hGUI = GUICreate('Questions', 250, 300)
$iStatus_Lbl = GUICtrlCreateLabel('', 20, 270, 210, 30)
GUICtrlSetColor(-1, 0xFF0000)
_Questions_SetRandom()
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case 0
ContinueLoop
Case $GUI_EVENT_CLOSE
Exit
Case $aQuestion_Bttn[1] To $aQuestion_Bttn[9]
If GUICtrlRead($nMsg) = $sCorret_Answer Then
TraySetState(1)
GUISetState(@SW_HIDE)
Sleep(1000 * 60 * $iCrctAnswr_Sleep)
GUISetState(@SW_SHOW)
TraySetState(2)
Else
$iTimer = TimerInit()
AdlibRegister('_Status_Timer', 1000)
_Status_Timer()
_Questions_SetState($GUI_DISABLE)
Sleep(1000 * 60 * $iInCrctAnswr_Sleep)
_Questions_SetState($GUI_ENABLE)
AdlibUnRegister('_Status_Timer')
GUICtrlSetData($iStatus_Lbl, '')
EndIf
_Questions_SetRandom()
EndSwitch
WEnd
Func _Status_SetData($sData)
If GUICtrlRead($iStatus_Lbl) <> $sData Then
GUICtrlSetData($iStatus_Lbl, $sData)
EndIf
EndFunc
Func _Status_Timer()
_Status_SetData('Неверный ответ, до нового вопроса осталось: ' & (($iInCrctAnswr_Sleep * 60) - Round(TimerDiff($iTimer) / 1000)) & ' сек.')
EndFunc
Func _Questions_SetRandom()
Local Static $fFirst = True
Local Static $iLast_Random
Local $iRandom
Do
$iRandom = Random(0, UBound($aData) - 1, 1)
Until $iRandom <> $iLast_Random
$iLast_Random = $iRandom
Local $sQuestion = StringRegExpReplace($aData[$iRandom], '(?s)Вопрос \d+\r?\n([^\r\n]+).*', '\1')
Local $aQuestions = StringSplit(StringStripCR(StringRegExpReplace($aData[$iRandom], '(?s).*?Ответы:\r?\n(.*?)\r?\nПравильный:.*', '\1')), @LF)
$sCorret_Answer = StringRegExpReplace($aData[$iRandom], '(?s).*?\r?\nПравильный:\r?\n([^\r\n]+)', '\1')
If $fFirst Then
$fFirst = False
$iQuestion_Lbl = GUICtrlCreateLabel('', 20, 20, 200, 20)
For $i = 1 To 9
$aQuestion_Bttn[$i] = GUICtrlCreateButton('', 20, $i * 40, 200, 20)
GUICtrlSetState($aQuestion_Bttn[$i], $GUI_HIDE)
Next
EndIf
GUICtrlSetData($iQuestion_Lbl, $sQuestion)
For $i = 1 To 9
GUICtrlSetData($aQuestion_Bttn[$i], '')
GUICtrlSetState($aQuestion_Bttn[$i], $GUI_HIDE)
Next
For $i = 1 To $aQuestions[0]
GUICtrlSetData($aQuestion_Bttn[$i], $aQuestions[$i])
GUICtrlSetState($aQuestion_Bttn[$i], $GUI_SHOW)
Next
EndFunc
Func _Questions_SetState($iState)
For $i = 1 To 9
If $aQuestion_Bttn[$i] Then
GUICtrlSetState($aQuestion_Bttn[$i], $iState)
EndIf
Next
EndFunc
Вопрос 1
Сколько длятся сутки?
Ответы:
Они длятся 23 часа
Они длятся 20 часов
Они длятся 25 часов
Они длятся 24 часа
Ни один из ответов
Правильный:
Они длятся 24 часа
Вопрос 2
Сколько минут в часе?
Ответы:
В часе 50 минут
В часе 60 минут
В часе 40 минут
Ни один из ответов
Правильный:
В часе 60 минут
Вопрос 3
Сколько времени показано на картинке?
Адрес:
C:\папка с картинками\1.jpg
Ответы:
1 час 50 минут
7 часов 15 минут
12 часов 10 минут
Ни один из ответов
Правильный:
7 часов 15 минут
Сколько длятся сутки?
Ответы:
Они длятся 23 часа
Они длятся 20 часов
Они длятся 25 часов
Они длятся 24 часа
Ни один из ответов
Правильный:
Они длятся 24 часа
Вопрос 2
Сколько минут в часе?
Ответы:
В часе 50 минут
В часе 60 минут
В часе 40 минут
Ни один из ответов
Правильный:
В часе 60 минут
Вопрос 3
Сколько времени показано на картинке?
Адрес:
C:\папка с картинками\1.jpg
Ответы:
1 час 50 минут
7 часов 15 минут
12 часов 10 минут
Ни один из ответов
Правильный:
7 часов 15 минут
Что я ожидаю от выполненных действии?
Ответ
Чтобы картинка по адресу из txt -подгружалась на форму.
Что происходит на самом деле?
Ответ - опишите подробнее что происходит
Сейчас ничего не происходит.
Не знаю как заставить эту форму - учитывать наличие картинки в txt.