Datum über Kommandozeilenparameter übergeben

  • Hallo,

    Ich hab erneut ein kleines Problem mit der Übergabe von Variablen an ein weiteres Script. Genauer gesagt handelt es sich um das Problem, dass ich ein Datum an ein weiteres Script übergeben möchte und das auch soweit funktioniert, nur kommt leider immer ein "Verstümmeltes" Datum an. Konkret hab ich mittlerweile festgestellt, dass er die"1" aus dem Datum löscht bsp.: 17.4.2009 wird zum 7.4.2009 usw.
    Die Eingabe des Datums erfolgt über ein GUI:

    Code
    GUICtrlCreateLabel("Datum : ",180, 220)
    $Datum = GUICtrlCreateDate("",180, 240, 150, 20)
    $DTM_SETFORMAT_ = 0x1032 
    $style = "yyyy/MM/dd"
    GUICtrlSendMsg(15, $DTM_SETFORMAT_, 0, $style)
    GUICtrlSetOnEvent($Datum, "Datum")
    Code
    Func Datum()
    $Datum=GUICtrlRead(15)
    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    $Datum=_DateTimeFormat($Datum,0)
    Send($Datum)
    EndFunc

    Die Funktionsweise von "$DTM_SETFORMAT_ = 0x1032" ist mir noch nicht ganz klar, hab es aus der Hilfe von AutoItv3.

    Ziel soll sein, dass das Datum ausgewählt/eingegeben werden kann und an ein weiters Script via Kommandozeilenparameter übergeben wird, damit es da weiter verechnet werden kann (Datum + 4Wochen o.ä.)

    Herzlichen Dank

    • Offizieller Beitrag

    Hallo,

    bitte den Quellcode zu zur Verfügung stellen das man zumindest ein lauffähiges Testprogramm hat, man ist sonst immer länger damit beschäftigt ein lauffähiges Programm zu schreiben als sich mit dem Fehler zu beschäftigen.

  • Die "Test2.au3" besteht aus

    Code
    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    Send($CmdLine[0])

    Ich hoffe das hilft weiter.

    • Offizieller Beitrag

    Hallo,

    na klar hilft das weiter.
    Im 1. Script hast Du $Datum einmal als Control und zur gleichen Zeit als String verwendet und in der Funktion Startbutton nicht das Controlfeld ausgelesen.
    Im 2. Script hast Du die Anzahl der übergebenen Parameter ausgegeben und nicht den 1. Paramter.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <EditConstants.au3>
    #Include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
    $mainwindow = GUICreate("Auto Changer", 400, 320)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Datum : ",180, 220)
    $Datum= GUICtrlCreateDate("",180, 240, 150, 20)
    $DTM_SETFORMAT_ = 0x1032
    $style = "yyyy/MM/dd"
    GUICtrlSendMsg($Datum, $DTM_SETFORMAT_, 0, $style)
    ;$Datum=_DateTimeFormat($Datum,0)
    GUICtrlSetOnEvent($Datum, "Datum")

    [/autoit] [autoit][/autoit] [autoit]

    ;Start-Button zur Bestätigung
    $Startbutton = GUICtrlCreateButton("Script-Start", 50, 270, 90)
    GUICtrlSetOnEvent($Startbutton, "Startbutton")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(1000) ; Idle around
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func Datum()
    $szDatum=GUICtrlRead($Datum)
    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    $szDatum=_DateTimeFormat($szDatum,0)
    Send($szDatum)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Startbutton()
    RUN('AutoIt3.exe Test2.au3 ' & GUICtrlRead($Datum))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]
    Test2.au3
    [autoit]

    RUN("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    Send($CmdLine[1])

    [/autoit]