How to select a date in a sysmonth Control in autohotkey

131 Views Asked by At

i'm trying to select a date in a monthcal with the sendmessage cmd from AHK. Unfortunately, this is not working and i don't know where is my mistake or my misunderstanding. Anyone could help ? Here's what i already try.

    ConvertNormalDateToSystemTime(YYYYMMDD)
; this return a  SystemTime format date from a normal date
{
    YYYYMMDD.=000000
    YYYYMMDDHHMISS:=YYYYMMDD
    
    
    VarSetCapacity(SystemTime, 16, 0)  ; This struct consists of 8 UShorts (i.e. 8*2=16).
    Int := SubStr(YYYYMMDDHHMISS, 1, 4)  ; YYYY (year)
    NumPut(Int, SystemTime, 0, "UShort")
    Int := SubStr(YYYYMMDDHHMISS, 5, 2)  ; MM (month of year, 1-12)
    NumPut(Int, SystemTime, 2, "UShort")
    Int := SubStr(YYYYMMDDHHMISS, 7, 2)  ; DD (day of month)
    NumPut(Int, SystemTime, 6, "UShort")
    Int := SubStr(YYYYMMDDHHMISS, 9, 2)  ; HH (hour in 24-hour time)
    NumPut(Int, SystemTime, 8, "UShort")
    Int := SubStr(YYYYMMDDHHMISS, 11, 2) ; MI (minute)
    NumPut(Int, SystemTime, 10, "UShort")
    Int := SubStr(YYYYMMDDHHMISS, 13, 2) ; SS (second)
    NumPut(Int, SystemTime, 12, "UShort")
    
    return % &SystemTime
    
}


MCM_FIRST:= 0x1000 
MCM_SETCURSEL:= MCM_FIRST + 2
MyDate:= 20211115
WinActivate ahk_class AutoHotkeyGUI, ExempleCalendrier.ahk

dateASelectionnerDansCalendrier := ConvertNormalDateToSystemTime(20211115)



try
{
            SendMessage MCM_SETCURSEL , ,  &dateASelectionnerDansCalendrier, SysMonthCal321, ahk_class AutoHotkeyGUI ; THIRD TRIAL  
            MsgBox % ErrorLevel
}
catch e
{
    MsgBox % ErrorLevel
}
        

An other strange thing is that i always get the MCM_SETCURSEL message back in MyReturn variable. I already try to compile the script and run it as admin. I know that there is no multiselected option on my monthcal. Someone on Discord suggest me that MCM_SETCURSEL lparam was pointing to a systemtime. So how could i send my date to my monthcal ? Should i convert my actual date into a systemTime in an other way ? (speaking as a noob) Thanks for any help !

0

There are 0 best solutions below