Что нового

GUICtrlCreateDate и проблема с планировщиком windows

Пост номер 4 был отмечен как лучший ответ.

sarge

Новичок
Сообщения
13
Репутация
0
Здравствуйте,
У меня есть одна задача, которая забивается в планировщик через менюшку
Время там задается так:
$Time2 = GUICtrlCreateDate("", 337, 56, 82, 21, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT), $WS_EX_STATICEDGE)

Задача в планировщик вводится командой:
ShellExecute('schtasks.exe', '/create /TN "Finish" /TR "' & @ScriptDir & '\test.exe about:blank ' & $sin & '" /SC ONCE /SD "' & $sDate2 & '" /ST "' & $sTime2 & '" /RU "NT AUTHORITY\LOCALSERVICE" /v1 /Z')

И все работало(и работает) ровно до тех пор, пока я планировал задачи после 10 утра.
А потом, когда понадобилось выполнять задачу ночью, оказалось что GUICtrlCreateDate при написании времени съедает первый 0.
То есть формат например девяти утра выглядит как 9:00, и по другому в окне ввода не забивается(ноль исчезает).
А shtasks (планировщик в винде) хочет формат 09:00 и соот-о по другому ничего планировать не хочет!

Подскажите пожалуйста, возможно ли это исправить?
 

Cytrus

Новичок
Сообщения
110
Репутация
3
Покажите скрипт GUI полностью.
 
Автор
S

sarge

Новичок
Сообщения
13
Репутация
0
Вот так выглядит:

Код:
#Region ### START Koda GUI section ### Form=C:\test\Form1.kxf
$Form1 = GUICreate("Режим работы", 454, 306, 192, 124)
$URL = GUICtrlCreateInput("https://yandex.ru/internet/", 40, 8, 377, 21)
GUICtrlCreateLabel("Введите в окне полную ссылку", 40, 32, 377, 21)
GUICtrlCreateLabel("От", 42, 58, 17, 17)
$Date1 = GUICtrlCreateDate("2020/00/00", 60, 56, 85, 21, 0, $WS_EX_STATICEDGE)
$Time1 = GUICtrlCreateDate("", 143, 56, 76, 21, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT), $WS_EX_STATICEDGE)
GUICtrlCreateLabel("До", 237, 58, 17, 17)
$Date2 = GUICtrlCreateDate("2020/00/00", 255, 56, 85, 21, 0, $WS_EX_STATICEDGE)
$Time2 = GUICtrlCreateDate("", 337, 56, 82, 21, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT), $WS_EX_STATICEDGE)
$Start = GUICtrlCreateButton("Start!", 40, 92, 169, 33, -1, $WS_EX_DLGMODALFRAME)
$in = GUICtrlCreateInput("1", 216, 94, 23, 29)
$Schedule = GUICtrlCreateButton("Запланировать", 248, 92, 169, 33, -1, $WS_EX_DLGMODALFRAME)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


По кнопке запланировать читаются дата и время и вводится задание в планировщик.
Все работает, если задания после 10.00 т.е. если первый нолик во времени не убирается и schtasks нормально воспринимает время.
 

Tempo

Скриптер
Сообщения
597
Репутация
190
Установите нужный формат с помощью _GUICtrlDTP_SetFormat
Код:
#include <GUIConstants.au3>
#include <GuiDateTimePicker.au3>

Example()

Func Example()
    GUICreate(@ScriptName, 300, 300)
    Local $idDTP = GUICtrlCreateDate("00:00:00", 5, 5, 290, 30, BitOR($DTS_UPDOWN, $DTS_TIMEFORMAT), $WS_EX_STATICEDGE)
    _GUICtrlDTP_SetFormat(GUICtrlGetHandle($idDTP), "HH:mm:ss")

    Local $idBtnRead = GUICtrlCreateButton("GUICtrlRead($idDTP)", 10, 40, 280, 25)
    GUISetState()

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $idBtnRead
                MsgBox(0, Default, GUICtrlRead($idDTP))
        EndSwitch
    WEnd
EndFunc   ;==>Example
 
Автор
S

sarge

Новичок
Сообщения
13
Репутация
0
Спасибо Вам огромное.
Все получилось!
_GUICtrlDTP_SetFormat - прекрасно работает:acute:
 
Верх