Advertisement
untoha

звонок для уроков

Jan 28th, 2021
2,580
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 4.02 KB | None | 0 0
  1. ; программа для отслеживания конца и начала уроков
  2.  
  3. ;#Include <_DateDiff_2.au3>
  4. #include <Date.au3>
  5. #include <Array.au3>
  6.  
  7. ;HotKeySet("{ESC}", "stop")
  8. HotKeySet("`", "ilya")
  9. SoundSetWaveVolume(30)
  10.  
  11. local $d = [["9:00","9:45"],["09:55","10:40"],["10:50","11:35"],["11:45","12:30"],["12:40","13:25"],["13:45","14:30"],["14:40","15:25"],["15:35","16:20"]]
  12. ;local $d = [["20:01","20:10"]];,["17:22","17:25"]]
  13. local $d2 =["10 углубленная","10 углубленная","10 углубленная","10 углубленная","10 углубленная (дизайн)","10 база","11 база","11 база"]
  14. local $state = 2        ; global 1-урок идет 0-перемена 2-уроков нет (закончились или не начались)
  15. local $prevstate = -1   ; чтобы отслеживать изменение что было и что стало
  16. local $lessonID         ; индекс урока в массиве $d
  17. local $str1 = ["До начала урока: ", "До конца: ", "Уроки закончились!"]
  18. local $str2 = ["Перемена ", "Идет урок ", "Уроки закончились!"]
  19. local $lol = false
  20.  
  21. while true  ;///////////////////////////////////////////////////////////////
  22.    getstate()
  23.    ;msg("$state: "&$state)
  24.    ;msg("$lessonID: "&$lessonID)
  25.    if $state = 2 then
  26.       TrayTip("Уроки закончились!", "Всем спасибо! Все свободны!", 0, 9)
  27.       $prevstate = 123
  28.       alert()
  29.       exit
  30.    EndIf
  31.    $diffM = _DateDiff('n', _NowCalc(), @YEAR&"/"&@MON&"/"&@MDAY&" "&$d[$lessonID][$state])
  32.    $diffS = _DateDiff('s', _NowCalc(), @YEAR&"/"&@MON&"/"&@MDAY&" "&$d[$lessonID][$state])
  33.    $diffS = $diffS - 60*Int($diffS/60)
  34.    TrayTip($str2[$state], $str1[$state] & $diffM&" минут "&$diffS & " сек."&@CRLF&"№ урока: "&($lessonID+1)&@CRLF&"Группа: "&$d2[$lessonID], 1)
  35.    alert()
  36.    Sleep(5000)
  37. Wend
  38.  
  39. Func alert()
  40.    if $prevstate <> $state then
  41.       $prevstate = $state
  42.       ;showbig()
  43.       SoundPlay("zvonok.mp3", 1)
  44.    EndIf
  45. EndFunc
  46.  
  47. Func getstate()
  48.    For $i = 0 To UBound($d)-1
  49.       if _timeBetween(@HOUR & ':' & @MIN, $d[$i][0], $d[$i][1]) = 1 then
  50.          $lessonID = $i
  51.          $state = 1
  52.          return
  53.       EndIf
  54.    Next
  55.    For $i = 0 To UBound($d)-1
  56.       If _DateDiff('s', @YEAR&"/"&@MON&"/"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC, @YEAR&"/"&@MON&"/"&@MDAY&" "&$d[$i][0]) >= 0 Then
  57.          $lessonID = $i
  58.          $state = 0
  59.          ;$prevstate = 0
  60.          Return
  61.       EndIf
  62.    Next
  63.    $state = 2   ; уроков нет
  64. EndFunc
  65.  
  66. Func showbig()
  67.    SplashTextOn("", $str1[$state] & $diff & " (минут).", -1, 100, -1, -1, $DLG_TEXTLEFT, "", 24, 700)
  68.    Sleep(5000)
  69.    SplashOff()
  70. EndFunc
  71.  
  72. Func msg($str)
  73.    ConsoleWrite($str&@CRLF)
  74. EndFunc
  75.  
  76. Func stop()
  77.     Exit
  78. EndFunc
  79.  
  80. Func _timeBetween($cTime, $sTime, $eTime)
  81.  If Not _DateIsValid('2000/01/01 ' & $cTime) Then Return -1
  82.  If Not _DateIsValid('2000/01/01 ' & $sTime) Then Return -2
  83.  If Not _DateIsValid('2000/01/01 ' & $eTime) Then Return -3
  84.  ;~  ConsoleWrite(_DateDiff('s', '2000/01/01 ' & $cTime & ':00', '2000/01/01 ' & $sTime & ':00') & @CRLF)
  85.  ;~  ConsoleWrite(_DateDiff('s', '2000/01/01 ' & $cTime & ':00', '2000/01/01 ' & $eTime & ':00') & @CRLF)
  86.  If _DateDiff('s', '2000/01/01 ' & $cTime & ':00', '2000/01/01 ' & $sTime & ':00') <= 0 And _
  87.     _DateDiff('s', '2000/01/01 ' & $cTime & ':00', '2000/01/01 ' & $eTime & ':00') > 0 Then
  88.      Return 1
  89.  Else
  90.      Return 0
  91.   EndIf
  92. EndFunc
  93.  
  94. ;////////////////////////////////// misc ///////////////////////////////////
  95.  
  96. Func ilya()
  97.    if not $lol then
  98.       SplashTextOn("Илья", "Илья!"&@CRLF&@CRLF&"Внимание на доску!!!1"&@CRLF&@CRLF&"Сядь ближе, если плохо видно!", -1, -1, -1, -1, 33, "", 24)
  99.       ;SplashImageOn("Splash Screen", "Закат.jpg", 250, 50)
  100.       ;ShellExecute("c:/DEV/temp/calculator.vbs")       ; TO DO voice
  101.       ; Ilyyau! !  sobereess! smotree na doskuuu! zaasraanets!!!
  102.       ;Sleep(4000)
  103.       $lol = true
  104.    Else
  105.       SplashOff()
  106.       $lol = false
  107.    EndIf
  108. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement