#NoTrayIcon #RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=kalarm.ico #AutoIt3Wrapper_Compression=4 #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: Matwachich Script Function: Reveil matin simple, uilisant comme sonerie un fichier sur le disque #ce ---------------------------------------------------------------------------- Opt("GUIOnEventMode", 1) #include #include #include #include #include #Include #Include #Region ### START Koda GUI section ### Form= $gui = GUICreate("Reveil matin, By Matwachich", 355, 89, -1, -1, -1, $WS_EX_ACCEPTFILES) GUICtrlCreateLabel("Heur", 8, 8, 27, 17) GUICtrlCreateLabel("(Au format HH:MM)", 144, 8, 95, 17) GUICtrlCreateLabel("Sonnerie", 8, 32, 46, 17) GUICtrlCreateLabel("Delai de répétition (en secondes)", 8, 64, 159, 17) $I_heur = GUICtrlCreateInput(_NowTime(4), 56, 8, 81, 21) GUICtrlSetFont(-1, Default, Default) $I_song = GUICtrlCreateInput(_getConfig("LastSong"), 56, 32, 257, 21) GUICtrlSetFont(-1, Default, Default) GUICtrlSetState(-1, $GUI_DROPACCEPTED) GUICtrlSetTip(-1, "Faire glisser un fichier ici") $I_repet = GUICtrlCreateInput(_getConfig("LastRepetDelay"), 168, 64, 81, 21) $B_go = GUICtrlCreateButton("Go!", 272, 64, 75, 17) GUICtrlSetOnEvent(-1, "_go") $B_brows = GUICtrlCreateButton("", 320, 32, 27, 25, BitOR($BS_ICON,$WS_GROUP)) GUICtrlSetOnEvent(-1, "_brows") GUICtrlSetImage(-1, "Shell32.dll", 5, 0) Global $aGuiAccels[1][2] $aGuiAccels[0][0] = "{enter}" $aGuiAccels[0][1] = $B_go GUISetAccelerators($aGuiAccels, $gui) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### GUISetOnEvent($GUI_EVENT_DROPPED, "_droped") GUISetOnEvent(-3, "__quit") Global $media_hndl = 0, $iRepet, $trayItem_Quit OnAutoItExitRegister("_closeMedia") While 1 Sleep(10) WEnd Func _brows() Local $ret = FileOpenDialog("Réveil matin", @DesktopDir, "Musique (*.mp3;*.wav;*.wma;*.aac;*.ogg)", 3, "", $gui) If @error Then Return 0 GUICtrlSetData($I_song, $ret) EndFunc Func _go() If Not _verifTime() Then Return _erreur($I_heur) If Not FileExists(GUICtrlRead($I_song)) Then Return _erreur($I_song) $media_hndl = _SoundOpen(GUICtrlRead($I_song)) If Not IsArray($media_hndl) Then Return _erreur($I_song) $iRepet = GUICtrlRead($I_repet) If $iRepet < 30 Then $iRepet = 30 If $iRepet > 1800 Then $iRepet = 1800 GUISetState(@SW_HIDE, $gui) Local $sonne = GUICtrlRead($I_heur) TraySetState(1) $trayItem_Quit = TrayCreateItem("Quitter") TrayItemSetOnEvent(-1, "_trayQuit") TraySetToolTip("Réveil à " & $sonne & @CRLF & "Répétition toutes les " & $iRepet & " sec") Opt("TrayMenuMode", 9) Opt("TrayOnEventMode", 1) TrayTip("Réveil matin", "Réveil à " & $sonne & @CRLF & "Répétition toutes les " & $iRepet & " sec", 1) _saveConfig("LastSong", GUICtrlRead($I_song)) _saveConfig("LastRepetDelay", GUICtrlRead($I_repet)) While 1 If $sonne = _NowTime(4) Then _sonne() Sleep(1000) WEnd EndFunc Func _droped() GUICtrlSetData($I_song, @GUI_DragFile) EndFunc Func _sonne() _SoundPlay($media_hndl) AdlibRegister("_replay", $iRepet * 1000) TrayItemSetOnEvent($trayItem_Quit, "__quit") ;~ MsgBox(48, "Réveil matin", "A sonné à " & _NowTime(4) & @CRLF & "Va maintenant quitter...") SplashTextOn("Réveil matin", "Debout!!! Il est " & _NowTime(4), 200, 42, Default, Default, 1) TrayTip("", "Clique droit, Quitter", 5) While 1 Sleep(100) WEnd EndFunc Func _replay() ConsoleWrite("Replay" & @CRLF) _SoundStop($media_hndl) Sleep(5000) AdlibRegister("_replay", $iRepet * 1000) _SoundSeek($media_hndl, 0, 0, 0) _SoundPlay($media_hndl) EndFunc Func _trayQuit() If MsgBox(36, "Réveil matin", "Vraiment?") = 6 Then Exit EndFunc Func __quit() Exit EndFunc Func _verifTime() Local $split = StringSplit(GUICtrlRead($I_heur), ":") If $split[0] <> 2 Then Return 0 If StringLen($split[1]) <> 2 Or StringLen($split[2]) <> 2 Then Return 0 Return 1 EndFunc Func _erreur($ctrl) ConsoleWrite("Erreur!" & @CRLF) GUICtrlSetBkColor($ctrl, 0xFF0000) GUICtrlSetColor($ctrl, 0xFFFFFF) AdlibRegister("_unColor", 5000) EndFunc Func _unColor() GUICtrlSetBkColor($I_heur, 0xFFFFFF) GUICtrlSetFont($I_heur, Default, Default) GUICtrlSetColor($I_heur, 0x000000) GUICtrlSetBkColor($I_song, 0xFFFFFF) GUICtrlSetFont($I_song, Default, Default) GUICtrlSetColor($I_song, 0x000000) AdlibUnRegister("_unColor") EndFunc Func _saveConfig($config, $value) IniWrite(@TempDir & "\reveilMatinConfig.ini", "", $config, $value) EndFunc Func _getConfig($config) Local $default = "" Switch $config Case "LastRepetDelay" $default = "600" EndSwitch Return IniRead(@TempDir & "\reveilMatinConfig.ini", "", $config, $default) EndFunc Func _closeMedia() _SoundClose($media_hndl) EndFunc