Jump to content

TrayItem checking and unchecking?


Recommended Posts

Heya, one last question (I hope) for today :)

I want to create a trayitem that can be checked and unchecked by clicking on it...

I tried this but it doesn't work, what's wrong?

Case $traymsg = $MAlarm
        If TrayItemGetState ( $MAlarm ) <> 68 Then
            TrayItemSetState ( $MAlarm, $TRAY_UNCHECKED )
        ElseIf TrayItemGetState ( $MAlarm ) = 68 Then
            TrayItemSetState ( $MAlarm, $TRAY_CHECKED )
        EndIf
Link to comment
Share on other sites

  • Developers

Try:

Case $traymsg = $MAlarm
   If BitAND(TrayItemGetState($MAlarm), $TRAY_UNCHECKED) = $TRAY_UNCHECKED Then
      TrayItemSetState ( $MAlarm, $TRAY_CHECKED )
   Else
      TrayItemSetState ( $MAlarm, $TRAY_UNCHECKED )
   EndIf

Mvg

jos

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Nope :)

This is the full code, the case starts at line 156...

Anyone??

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#Include <Constants.au3>
#include <Date.au3>
#include <EditConstants.au3>
#Include <File.au3>
#include <GUIConstantsEx.au3>
#include <GUICtrlSetOnHover_UDF.au3>
#Include <Misc.au3>
#include <StaticConstants.au3>
#include <Sound.au3>
#include <WindowsConstants.au3>

Opt ( "GUIResizeMode", 802 )
Opt ( "TrayMenuMode", 1 )
AdlibEnable ( "Updater", 1000 )

#Region Variables
$Title = "AlarmClock"
$IniDirectory = @MyDocumentsDir & "\AlarmClock.ini"
$i = 0
$x = 0
$n = 0
$q = 0
$w = 0
$p = 0
$u = 0
#EndRegion

$GUI = GUICreate ( $Title, 360, 345 ) ;65 ;345
#Region Options ///////////////////////////////////////////////////////////////////////////////////////////#
GUICtrlCreateGroup ( "Time", 10, 70, 150, 48 )
GUICtrlCreateLabel ( "Play alarm at:", 23, 90 )
GUICtrlCreateLabel ( ":", 116, 90 )
$Hours = GUICtrlCreateInput ( "07", 95, 88, 20, 20, $ES_NUMBER )
$Minutes = GUICtrlCreateInput ( "30", 120, 88, 20, 20, $ES_NUMBER )
GUICtrlSetLimit ( $Hours, 2, 2 )
GUICtrlSetLimit ( $Minutes, 2, 2 )
GUICtrlSetTip ( $Hours, "Select a number in a range from 00 to 23.", "Hours", 1, 2 )
GUICtrlSetTip ( $Minutes, "Select a number in a range from 00 to 59.", "Minutes", 1, 2 )
GUICtrlCreateGroup ( "Alarm", 170, 70, 180, 48 )
$File = GUICtrlCreateInput ( "No file selected!", 183, 88, 100, 20, $ES_READONLY )
GUICtrlSetTip ( $File, GUICtrlRead ( $File ) )
$Browse = GUICtrlCreateButton ( "Browse", 285, 87, 50, 21 )
GUICtrlSetColor ( $File, 0xFF0000 )
GUICtrlCreateGroup ( "Days", 10, 128, 340, 48 )
$Mon = GUICtrlCreateCheckbox ( "Mon", 23, 146 )
$Tue = GUICtrlCreateCheckbox ( "Tue", 23*2+23, 146 )
$Wed = GUICtrlCreateCheckbox ( "Wed", 23*3+23*2, 146 )
$Thu = GUICtrlCreateCheckbox ( "Thu", 23*4+23*3, 146 )
$Fri = GUICtrlCreateCheckbox ( "Fri", 23*5+23*4, 146 )
$Sat = GUICtrlCreateCheckbox ( "Sat", 23*6+23*5, 146 )
$Sun = GUICtrlCreateCheckbox ( "Sun", 23*7+23*6, 146 )
GUICtrlCreateGroup ( "Repeat", 10, 185, 255, 48 )
GUICtrlCreateLabel ( "Repeat alarm every", 23, 205 )
$RepeatMin = GUICtrlCreateInput ( "5", 120, 203, 20, 20 )
GUICtrlSetLimit ( $RepeatMin, 2 )
$MLabel = GUICtrlCreateLabel ( " minutes for", 145, 205, 54 )
$RepeatNum = GUICtrlCreateInput ( "10", 202, 203, 20, 20 )
GUICtrlSetLimit ( $RepeatNum, 2 )
$TLabel = GUICtrlCreateLabel ( "times.", 226, 205 )
$SetAlarm = GUICtrlCreateButton ( "Set alarm", 270, 191, 80, 41 )
$SWW = GUICtrlCreateCheckbox ( "Start with Windows", 20, 238 )
$POP = GUICtrlCreateCheckbox ( "Pop-up on exit", 140, 238 )
$SaveOptions = GUICtrlCreateLabel ( "[Save options]", 263, 242.5 )
GUICtrlSetColor ( $SaveOptions, 0xC0C0C0 )
GUICtrlSetCursor( $SaveOptions, 0 )
_GUICtrl_SetOnHover ( $SaveOptions, "_Hover_Func", "_Hover_Func" )
GUICtrlCreateGroup ( "Volume", 10, 263, 200, 70 )
$VolumeSlider = GUICtrlCreateSlider ( 23, 305, 200-23*2+15, 20 )
$VolumeCheckbox = GUICtrlCreateCheckBox ( "Adjust volume to " & GUICtrlRead ( $VolumeSlider ) & " percent.", 25, 280, 180 )
GUICtrlCreateGroup ( "Snoozer", 220, 263, 130, 70 )
$SnoozeCombo = GUICtrlCreateCombo ( "1 minute", 233, 300, 100, 20, $CBS_DROPDOWNLIST )
GUICtrlSetData ( $SnoozeCombo, "2 minutes|3 minutes|4 minutes|5 minutes|6 minutes|7 minutes|8 minutes|9 minutes|10 minutes|30 minutes|60 minutes" )
GUICtrlCreateLabel ( "Snooze for", 233, 280, 70, 13 )
$SnoozeLabel = GUICtrlCreateLabel ( GUICtrlRead ( $SnoozeCombo ), 286, 280, 60, 12 )
#EndRegion
#Region Dummy //////////////////////////////////////////////////////////////////////////////////////////////#
$Hours2 = GUICtrlCreateLabel ( GUICtrlRead ( $Hours ), 10, 375 )
$Minutes2 = GUICtrlCreateLabel ( GUICtrlRead ( $Minutes ), 30, 375 )
$FileFullPath = GUICtrlCreateLabel ( GUICtrlRead ( $File ), 10, 395, 300, 30 )
$RepeatMin2 = GUICtrlCreateLabel ( GUICtrlRead ( $RepeatMin ), 10, 425 )
$RepeatNum2 = GUICtrlCreateLabel ( GUICtrlRead ( $RepeatNum ), 30, 425 )
#EndRegion
#Region Changes from Ini ///////////////////////////////////////////////////////////////////////////////////#
GUICtrlSetData ( $Hours, IniRead ( $IniDirectory, "Time", "Hours", "07" ) )
GUICtrlSetData ( $Minutes, IniRead ( $IniDirectory, "Time", "Minutes", "30" ) )
GUICtrlSetData ( $File, IniRead ( $IniDirectory, "File", "Name", "No file selected!" ) )
If IniRead ( $IniDirectory, "File", "Name", "No file selected!" ) = "No file selected!" Then
    GUICtrlSetColor ( $File, 0xFF0000 )
Else
    GUICtrlSetColor ( $File, 0x000000 )
EndIf
Sleep ( 10 )
GUICtrlSetData ( $FileFullPath, IniRead ( $IniDirectory, "File", "Path", "No file selected!" ) )
GUICtrlSetState ( $Mon, IniRead ( $IniDirectory, "Days", "Mon", 1 ) )
GUICtrlSetState ( $Tue, IniRead ( $IniDirectory, "Days", "Tue", 1 ) )
GUICtrlSetState ( $Wed, IniRead ( $IniDirectory, "Days", "Wed", 1 ) )
GUICtrlSetState ( $Thu, IniRead ( $IniDirectory, "Days", "Thu", 1 ) )
GUICtrlSetState ( $Fri, IniRead ( $IniDirectory, "Days", "Fri", 1 ) )
GUICtrlSetState ( $Sat, IniRead ( $IniDirectory, "Days", "Sat", 4 ) )
GUICtrlSetState ( $Sun, IniRead ( $IniDirectory, "Days", "Sun", 4 ) )
GUICtrlSetData ( $RepeatMin, IniRead ( $IniDirectory, "Repeat", "Minutes", "5" ) )
GUICtrlSetData ( $RepeatNum, IniRead ( $IniDirectory, "Repeat", "Times", "3" ) )
GUICtrlSetState ( $VolumeCheckbox, IniRead ( $IniDirectory, "Volume", "Checkbox", 1 ) )
GUICtrlSetData ( $VolumeSlider, IniRead ( $IniDirectory, "Volume", "Slider", 50 ) )
GUICtrlSetData ( $SnoozeCombo, IniRead ( $IniDirectory, "Snooze", "Time", "5 minutes" ) )
If RegRead ( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "AlarmClock" ) Then
    GUICtrlSetState  ( $SWW, $GUI_CHECKED )
Else
    GUICtrlSetState  ( $SWW, $GUI_UNCHECKED )
EndIf
GUICtrlSetState ( $POP, IniRead ( $IniDirectory, "Options", "Popup", 4 ) ) 
#EndRegion
#Region Base ///////////////////////////////////////////////////////////////////////////////////////////////#
$ReadHours = GUICtrlRead ( $Hours )
$ReadMinutes = GUICtrlRead ( $Minutes )
$HeaderTimeInfoLabel = GUICtrlCreateLabel ( "Alarm set at:", 10, 10, 340, 15, $SS_CENTER )
$InformationLabel = GUICtrlCreateLabel ( $ReadHours & ":" & $ReadMinutes, 60, 23, 240, 30, $SS_CENTER )
$WinPos = WinGetPos ( $Title )
If $WinPos[3] = 91 Then
    $SettingsLabel = GUICtrlCreateLabel ( "Show Settings", 260, 41, 80, 15, $SS_RIGHT )
Else
    $SettingsLabel = GUICtrlCreateLabel ( "Hide Settings", 260, 41, 80, 15, $SS_RIGHT )
EndIf
_GUICtrl_SetOnHover ( $SettingsLabel, "_Hover_Func", "_Hover_Func" )
GUICtrlSetFont ( $InformationLabel, 24, 400, "Arial" )
GUICtrlSetColor ( $SettingsLabel, 0xC0C0C0 )
GUICtrlSetCursor( $SettingsLabel, 0 )
#EndRegion
GUICtrlSetState ( $FileFullPath, $GUI_FOCUS )
Updater()
GUISetState ( @SW_SHOW )

#Region Tray Menu
$Open = TrayCreateItem ( "Open " & $Title )
TrayCreateItem ( "" )
$MAlarm = TrayCreateItem ( "Alarm   [" & GUICtrlRead ( $InformationLabel ) & "]" )
$MPopup = TrayCreateItem ( "Pop-up on exit", -1, -1, 1 )
$MAdVol = TrayCreateItem ( "Auto-adjust volume", -1, -1, 1 )

TrayCreateItem ( "" )
$About  = TrayCreateItem ( "About" )
$Devart = TrayCreateItem ( "DeviantArt" )
TrayCreateItem ( "" )
$TExit  = TrayCreateItem ( "Exit" )
TrayItemSetState ( $Open, $TRAY_DEFAULT )
TraySetClick ( 8 )
TraySetToolTip ( $Title )
#EndRegion

While 1
    $msg = GUIGetMsg()
    $traymsg = TrayGetMsg()
    Select
    Case $traymsg = $MAlarm
        If BitAND(TrayItemGetState($MAlarm), $TRAY_UNCHECKED) = $TRAY_UNCHECKED Then
           TrayItemSetState ( $MAlarm, $TRAY_CHECKED )
        Else
           TrayItemSetState ( $MAlarm, $TRAY_UNCHECKED )
        EndIf
    Case $traymsg = $About
        About()
    Case $traymsg = $Devart
        ShellExecute ( "http://rawox.deviantart.com" )
    Case $traymsg = $TExit
        Exit
    Case $traymsg = $Open
        $Size = WinGetClientSize ( $Title )
        If $Size[1] = 345 Then
            GUICtrlSetData ( $SettingsLabel, "Show Settings" )
            $Pos = WinGetPos ( $Title )
            WinMove ( $Title, "", $Pos[0], $Pos[1]+140, $Pos[2], $Pos[3]-280 )
            GUISetState ( @SW_SHOW )
        Else
            GUISetState ( @SW_SHOW )
        EndIf
    Case $msg = $SetAlarm
        If GUICtrlRead ( $File ) = "No file selected!" Then
            MsgBox ( 48, $Title, "You haven't selected an alarm!" )
        Else
            If GUICtrlRead ( $SetAlarm ) = "Set alarm" Then
                GUICtrlSetData ( $SetAlarm, "Clear alarm" )
            ElseIf GUICtrlRead ( $SetAlarm ) = "Clear alarm" Then
                GUICtrlSetData ( $SetAlarm, "Set Alarm" )
            EndIf
        EndIf
    Case $msg = $GUI_EVENT_CLOSE
        GUISetState ( @SW_HIDE )
    Case $msg = $SettingsLabel
        $Size = WinGetClientSize ( $Title )
        If $Size[1] = 65 Then
            GUICtrlSetData ( $SettingsLabel, "Hide Settings" )
            $Pos = WinGetPos ( $Title )
            WinMove ( $Title, "", $Pos[0], $Pos[1]-140, $Pos[2], $Pos[3]+280 )
        Else 
            GUICtrlSetData ( $SettingsLabel, "Show Settings" )
            $Pos = WinGetPos ( $Title )
            WinMove ( $Title, "", $Pos[0], $Pos[1]+140, $Pos[2], $Pos[3]-280 )
        EndIf
    Case $msg = $Browse
        $SoundFile = FileOpenDialog ( "Select alarm", "", "MP3 files (*.mp3)|WAV files (*.wav)|MID files (*.mid)", 3 )
        If @error <> 1 Then
            GUICtrlSetColor ( $File, 0x000000 )
            Dim $szDrive, $szDir, $szFName, $szExt
            _PathSplit ( $SoundFile, $szDrive, $szDir, $szFName, $szExt )
            GUICtrlSetData ( $File, $szFName & $szExt )
            GUICtrlSetData ( $FileFullPath, $SoundFile )
            GUICtrlSetTip ( $File, GUICtrlRead ( $File ) )
            GUICtrlSetState ( $MLabel, $GUI_FOCUS )
        EndIf
    Case $msg = $SaveOptions
        If IsAdmin ( ) Then
            If GUICtrlRead ( $SWW ) = $GUI_CHECKED Then
                RegWrite ( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "AlarmClock", "REG_SZ", @ScriptFullPath )
            Else
                RegDelete ( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "AlarmClock" )
            EndIf
        Else
            If GUICtrlRead ( $SWW ) = $GUI_CHECKED Then
                GUICtrlSetState ( $SWW, $GUI_UNCHECKED )
                IniWrite ( $IniDirectory, "Options", "Startup", GUICtrlRead ( $SWW ) )
                MsgBox ( 64, "Admin rights required", "If you want to start " & $Title & " with Windows you'll need admin rights." & @CRLF & @CRLF & "When you're using Vista please right-click the executable, select 'run as administrator' and save your configuration again." )
            EndIf
        EndIf
        IniWrite ( $IniDirectory, "Options", "Popup", GUICtrlRead ( $POP ) )
        MsgBox ( 64, "Saved succesfull", "Your configuration has been saved." )
    EndSelect
WEnd

Func Updater()
    #Region Header
    If GUICtrlRead ( $SetAlarm ) = "Clear alarm" Then
        GUICtrlSetData ( $HeaderTimeInfoLabel, "Alarm set at:" )
    Else
        GUICtrlSetData ( $HeaderTimeInfoLabel, "Alarm not set, time:" )
    EndIf
    #EndRegion
    #Region Alarm
    If GUICtrlRead ( $SetAlarm ) = "Clear Alarm" Then
        AlarmCheck()
    EndIf
    #EndRegion
    #Region Snoozer
    If GUICtrlRead ( $SnoozeCombo ) <> GUICtrlRead ( $SnoozeLabel ) Then
        GUICtrlSetData ( $SnoozeLabel, GUICtrlRead ( $SnoozeCombo ) )
    EndIf
    #EndRegion
    #Region Volume
    If GUICtrlRead ( $VolumeCheckbox ) = $GUI_CHECKED Then
        GUICtrlSetState ( $VolumeSlider, $GUI_ENABLE )
    Else
        GUICtrlSetState ( $VolumeSlider, $GUI_DISABLE )
    EndIf
    GUICtrlSetData ( $VolumeCheckbox, "Adjust volume to " & GUICtrlRead ( $VolumeSlider ) & " percent." )
    #EndRegion
    #Region Filename
    If GUICtrlRead ( $File ) = "" Then
        GUICtrlSetData ( $File, "No file selected!" )
        GUICtrlSetColor ( $File, 0xFF0000 )
    ElseIf GUICtrlRead ( $File ) = "No file selected!" Then
        GUICtrlSetColor ( $File, 0xFF0000 )
    ElseIf $x = 2 Then
        GUICtrlSetColor ( $File, 0x000000 )
    Else 
        $x +=1
    EndIf
    #EndRegion
    #Region Time
    If $i = 2 Then
        $ReadHours = GUICtrlRead ( $Hours )
        $ReadMinutes = GUICtrlRead ( $Minutes )
        $Read = GUICtrlRead ( $Hours )
        $Read2 = GUICtrlRead ( $Hours2 )
        $Read3 = GUICtrlRead ( $Minutes )
        $Read4 = GUICtrlRead ( $Minutes2 )
        If $Read <> $Read2 Then
            If $Read > 23 Then 
                GUICtrlSetData ( $Hours, "23" )
            ElseIf $Read = "" Then
                GUICtrlSetData ( $Hours, "00" )
            ElseIf $Read = "0" Or $Read = "1" Or $Read = "2" Or $Read = "3" Or $Read = "4" Or $Read = "5" Or $Read = "6" Or $Read = "7" Or $Read = "8" Or $Read = "9" Then
                $Read = GUICtrlRead ( $Hours )
                GUICtrlSetData ( $Hours, "0" & $Read )
            EndIf
            $Read = GUICtrlRead ( $Hours )
            GUICtrlSetData ( $Hours2, $Read )
            GUICtrlSetData ( $InformationLabel, $Read & ":" & $ReadMinutes )
        EndIf
        If $Read3 <> $Read4 Then
            If $Read3 > 59 Then 
                GUICtrlSetData ( $Minutes, "59" )
            ElseIf $Read3 = "" Then
                GUICtrlSetData ( $Minutes, "00" )
            ElseIf $Read3 = "0" Or $Read3 = "1" Or $Read3 = "2" Or $Read3 = "3" Or $Read3 = "4" Or $Read3 = "5" Or $Read3 = "6" Or $Read3 = "7" Or $Read3 = "8" Or $Read3 = "9" Then
                $Read3 = GUICtrlRead ( $Minutes )
                GUICtrlSetData ( $Minutes, "0" & $Read3 )
            EndIf
            $Read3 = GUICtrlRead ( $Minutes )
            GUICtrlSetData ( $Minutes2, $Read3 )
            GUICtrlSetData ( $InformationLabel, $ReadHours & ":" & $Read3 )
        EndIf
        $i = 0
    Else
        $i += 1
    EndIf
    #EndRegion
    #Region Repeat
    $ReadMin = GUICtrlRead ( $RepeatMin )
    $ReadNum = GUICtrlRead ( $RepeatNum )
    If $ReadMin <> GUICtrlRead ( $RepeatMin2 ) Then
        GUICtrlSetData ( $RepeatMin2, $ReadMin )
    EndIf
    If $ReadNum <> GUICtrlRead ( $RepeatNum2 ) Then
        GUICtrlSetData ( $RepeatNum2, $ReadNum )
    EndIf
    If $ReadNum < 2 Then
        GUICtrlSetState ( $RepeatMin, $GUI_DISABLE )
    Else
        GUICtrlSetState ( $RepeatMin, $GUI_ENABLE )     
    EndIf
    If $ReadMin < 1 Then
        GUICtrlSetData ( $RepeatMin, 1 )
    EndIf
    If $ReadNum < 1 Then
        GUICtrlSetData ( $RepeatNum, 1 )
    EndIf
    #EndRegion
    #Region IniWrite
    IniWrite ( $IniDirectory, "Time", "Hours", GUICtrlRead ( $Hours ) )
    IniWrite ( $IniDirectory, "Time", "Minutes", GUICtrlRead ( $Minutes ) )
    IniWrite ( $IniDirectory, "File", "Name", GUICtrlRead ( $File ) )
    IniWrite ( $IniDirectory, "File", "Path", GUICtrlRead ( $FileFullPath ) )
    IniWrite ( $IniDirectory, "Days", "Mon", GUICtrlRead ( $Mon ) )
    IniWrite ( $IniDirectory, "Days", "Tue", GUICtrlRead ( $Tue ) )
    IniWrite ( $IniDirectory, "Days", "Wed", GUICtrlRead ( $Wed ) )
    IniWrite ( $IniDirectory, "Days", "Thu", GUICtrlRead ( $Thu ) )
    IniWrite ( $IniDirectory, "Days", "Fri", GUICtrlRead ( $Fri ) )
    IniWrite ( $IniDirectory, "Days", "Sat", GUICtrlRead ( $Sat ) )
    IniWrite ( $IniDirectory, "Days", "Sun", GUICtrlRead ( $Sun ) )
    IniWrite ( $IniDirectory, "Repeat", "Minutes", GUICtrlRead ( $RepeatMin ) )
    IniWrite ( $IniDirectory, "Repeat", "Times", GUICtrlRead ( $RepeatNum ) )
    IniWrite ( $IniDirectory, "Volume", "Checkbox", GUICtrlRead ( $VolumeCheckbox ) )
    IniWrite ( $IniDirectory, "Volume", "Slider", GUICtrlRead ( $VolumeSlider ) )
    IniWrite ( $IniDirectory, "Snooze", "Time", GUICtrlRead ( $SnoozeCombo ) )
    #EndRegion
EndFunc

Func AlarmCheck()
    If @HOUR = GUICtrlRead ( $Hours ) And @MIN = GUICtrlRead ( $Minutes ) Then
        If @WDAY = 1 And GUICtrlRead ( $Sun ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 2 And GUICtrlRead ( $Mon ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 3 And GUICtrlRead ( $Tue ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 4 And GUICtrlRead ( $Wed ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 5 And GUICtrlRead ( $Thu ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 6 And GUICtrlRead ( $Fri ) = $GUI_CHECKED Then
            Alarm()
        EndIf
        If  @WDAY = 7 And GUICtrlRead ( $Sat ) = $GUI_CHECKED Then
            Alarm()
        EndIf
    EndIf
EndFunc

Func Alarm()
    $p = 0
    If Not WinExists ( "Wake up!" ) Then
        HotKeySet ( "{SPACE}", "Snoozer" )
        HotKeySet ( "{ENTER}", "Stop" )
        GUISetState ( $Title, @SW_HIDE )
        Global $AlarmGUI = GUICreate ( "Wake up!", 420, 35, -1, -1, $DS_SETFOREGROUND )
        GUISetStyle ( $WS_POPUPWINDOW, $WS_EX_TOPMOST )
        GUISetState ( @SW_SHOW, $AlarmGUI )
        Global $AlarmLabel = GUICtrlCreateLabel ( "Press Space to snooze the alarm and Enter to return to the main window.", 0, 10, 420, 20, $SS_CENTER )
        Global $DAlarmLabel = GUICtrlCreateLabel ( GUICtrlRead ( $RepeatMin ), 0, 40, 420, 20, $SS_CENTER )
        Global $DTimesLabel = GUICtrlCreateLabel ( GUICtrlRead ( $RepeatNum ), 0, 40, 30, 20, $SS_CENTER )
        If GUICtrlRead ( $SnoozeCombo ) = "1 minute" Then
            $SnoozeComboNr = StringTrimRight ( GUICtrlRead ( $SnoozeCombo ), 7 )
        Else
            $SnoozeComboNr = StringTrimRight ( GUICtrlRead ( $SnoozeCombo ), 8 )
        EndIf
        Global $DSnoozeLabel = GUICtrlCreateLabel ( $SnoozeComboNr, 100, 40, 30, 20, $SS_CENTER )
        WinSetOnTop ( "Wake up!", "", 1 )
        If GUICtrlRead ( $VolumeCheckbox ) = $GUI_CHECKED Then
            SoundSetWaveVolume ( GUICtrlRead ( $VolumeSlider ) )
        EndIf
        Global $Read = GUICtrlRead ( $FileFullPath )
        Global $Song = _SoundOpen ( $Read )
        _SoundPlay ( $Song, 0 )
        Do 
            $ReadTime = GUICtrlRead ( $RepeatMin )
            If $p = $ReadTime*120 Then
                $Reader = GUICtrlRead ( $DTimesLabel )
                GUICtrlSetData ( $DTimesLabel, $Reader - 1 )
                $p = 0
                _SoundStop ( $Song )
                _SoundPlay ( $Song, 0 )
            Else
                Sleep ( 500 )
                $p += 1
            EndIf
        Until GUICtrlRead ( $DTimesLabel ) = 0
    EndIf
EndFunc

Func Snoozer()
    _SoundStop ( $Song )
    GUICtrlSetData ( $AlarmLabel, "Alarm is snoozed for " & GUICtrlRead ( $DSnoozeLabel ) & " minutes. Press Enter to return to the main window." )
    Do
        If $u = 20 Then
            $ReadDSnoozeLabel = GUICtrlRead ( $DSnoozeLabel )
            GUICtrlSetData ( $DSnoozeLabel, $ReadDSnoozeLabel - 1 )
            GUICtrlSetData ( $AlarmLabel, "Alarm is snoozed for " & GUICtrlRead ( $DSnoozeLabel ) & " minutes. Press Enter to return to the main window." )
            $u = 0
        Else
            Sleep ( 500 )
            $u += 1
        EndIf
    Until GUICtrlRead ( $DSnoozeLabel ) = 0 Or WinActive ( $Title )
    If GUICtrlRead ( $SnoozeCombo ) = "1 minute" Then
        $SnoozeComboNr = StringTrimRight ( GUICtrlRead ( $SnoozeCombo ), 7 )
    Else
        $SnoozeComboNr = StringTrimRight ( GUICtrlRead ( $SnoozeCombo ), 8 )
    EndIf
    GUICtrlSetData ( $DSnoozeLabel, $SnoozeComboNr )
    GUICtrlSetData ( $AlarmLabel, "Press Space to snooze the alarm and Enter to return to the main window." )
    _SoundPlay ( $Song )
EndFunc

Func Stop()
    HotKeySet ( "{ENTER}" )
    HotKeySet ( "{SPACE}" )
    _SoundStop ( $Song )
    _SoundClose ( $Song )
    GUIDelete ( $AlarmGUI )
    GUICtrlSetData ( $SetAlarm, "Set alarm" )
    GUISetState ( @SW_SHOW, $GUI )
    AdlibEnable ( "Updater", 1000 )
EndFunc

Func About()
    TraySetState ( 2 )
    GUISetState ( @SW_HIDE, $GUI )
    $AboutDialog = GuiCreate ( "About " & $Title, 215, 150, -1, -1, BitOR ( $WS_CAPTION, $WS_SYSMENU ) )
    GUICtrlCreateIcon ( @AutoItExe, -1 , 11, 11 )
    GUICtrlCreateLabel ( $Title, 59 ,11 ,135 ,20 )
    GUICtrlSetFont ( -1, 10, 800, 0, "Arial")
    GUICtrlCreateLabel ( "© 2007 - " & @YEAR & @CRLF & @CRLF & "Cas Cornelissen", 59, 30, 135, 40 )
    GUICtrlSetFont ( -1, 8.5, 400, 0, "Arial")
    $email = GUICtrlCreateLabel ( "supercasje@gmail.com", 59, 72, 135, 15 )
    GuiCtrlSetFont ( $email, 8.5, -1, 4 )
    GuiCtrlSetColor ( $email, 0x0000ff )
    GuiCtrlSetCursor( $email, 0 )  
    $www = GUICtrlCreateLabel ( "http://rawox.deviantart.com", 59, 87, 140, 15 )
    GuiCtrlSetFont ( $www, 8.5, -1, 4 )
    GuiCtrlSetColor ( $www, 0x0000ff )
    GuiCtrlSetCursor ( $www, 0 )
    $CloseAbout = GUICtrlCreateButton  ( "Close", 65, 115, 75, 23, BitOr ( $GUI_SS_DEFAULT_BUTTON, $BS_DEFPUSHBUTTON ) )
    GUICtrlSetState ( -1, $GUI_FOCUS )
    GUISetState ( @SW_SHOW, $AboutDialog )
    While 1
        Switch GUIGetMsg ()
        Case $email
            Run ( @ComSpec & " /c " & 'start mailto:supercasje@gmail.com?subject=' & $Title, "", @SW_HIDE )
        Case $www
            Run ( @ComSpec & " /c " & 'start http://rawox.deviantart.com', "", @SW_HIDE )
        Case $GUI_EVENT_CLOSE
            GUIDelete ( $AboutDialog )
            TraySetState ( 1 )
            ExitLoop
        Case $CloseAbout
            GUIDelete ( $AboutDialog )
            TraySetState ( 1 )
            ExitLoop
        EndSwitch
    WEnd
EndFunc

Func exitprog()
    Exit
EndFunc

Func _Hover_Func ( $iCtrlID, $iParam )
    
    Local $iLabel_Color = 0x000000  
    If $iParam = 2 Then
        $iLabel_Color = 0xC0C0C0
    EndIf
    
    Switch $iCtrlID
        Case $SettingsLabel
            GUICtrlSetColor($iCtrlID, $iLabel_Color)
        Case $SaveOptions
            GUICtrlSetColor ( $iCtrlID, $iLabel_Color )
        Case $Edit
            If GUICtrlRead($iCtrlID) <> $sEdit_Data Then GUICtrlSetData($iCtrlID, $sEdit_Data)
    EndSwitch
EndFunc
Link to comment
Share on other sites

Try:

Case $traymsg = $MAlarm
   If BitAND(TrayItemGetState($MAlarm), $TRAY_UNCHECKED) = $TRAY_UNCHECKED Then
      TrayItemSetState ( $MAlarm, $TRAY_CHECKED )
   Else
      TrayItemSetState ( $MAlarm, $TRAY_UNCHECKED )
   EndIf

Mvg

jos

This does not work.

???

#Include <Constants.au3>

#NoTrayIcon

Opt('TrayMenuMode', 1)

$Item1 = TrayCreateItem('Item1')
TrayCreateItem('')
$ItemExit = TrayCreateItem('Exit')
TraySetState()

While 1
    $Msg = TrayGetMsg()
    Switch $Msg
        Case 0
            ContinueLoop
        Case $Item1
            If BitAND(TrayItemGetState($Item1), $TRAY_UNCHECKED) = $TRAY_UNCHECKED Then
                TrayItemSetState ( $Item1, $TRAY_CHECKED )
            Else
                TrayItemSetState ( $Item1, $TRAY_UNCHECKED )
            EndIf
        Case $ItemExit
            ExitLoop
    EndSwitch
WEnd
Edited by Yashied
Link to comment
Share on other sites

This does not work.

???

#Include <Constants.au3>

#NoTrayIcon

Opt('TrayMenuMode', 1)

$Item1 = TrayCreateItem('Item1')
TrayCreateItem('')
$ItemExit = TrayCreateItem('Exit')
TraySetState()

While 1
    $Msg = TrayGetMsg()
    Switch $Msg
        Case 0
            ContinueLoop
        Case $Item1
            If BitAND(TrayItemGetState($Item1), $TRAY_UNCHECKED) = $TRAY_UNCHECKED Then
                TrayItemSetState ( $Item1, $TRAY_CHECKED )
            Else
                TrayItemSetState ( $Item1, $TRAY_UNCHECKED )
            EndIf
        Case $ItemExit
            ExitLoop
    EndSwitch
WEnd

That's what Jos recommended, I putted it in the second example (full script) but it doesn't work.
Link to comment
Share on other sites

  • Moderators

Rawox,

Try Opt('TrayMenuMode', 3)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

Yashied,

I hope whatever you sipped was as nice as the very good Fitou I had with my barbequed lamb tonight! :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Link to comment
Share on other sites

  • Developers

Rawox,

Try Opt('TrayMenuMode', 3)

M23

Correct you need to disable the auto uncheck.

Jos :)

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...