1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Scotty

Beiträge von Scotty

  • Datum in DateTimePicker in externer Anwendung ändern

    • Scotty
    • 2. Juli 2017 um 19:39

    Moin :)

    Ich möchte gerne in einer etwas verkorksten Anwendung mehrere Datumsfelder automatisch setzen. Hier Zuhause habe ich mir ein kleines Demoprogramm geschrieben, aber es hakt noch am Feinschliff.

    In einer selbst erstellten GUI kann ich ganz einfach das aktuelle Datum setzen:

    AutoIt
    #include <ButtonConstants.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Meine Test Anwendung", 340, 227, 379, 431)
    $Button1 = GUICtrlCreateButton("Setze Datum", 120, 85, 89, 25)
    $Date2 = GUICtrlCreateDate("1970/01/01 14:33:54", 87, 176, 186, 21)
    $Label2 = GUICtrlCreateLabel("WRITE", 40, 178, 40, 21)
    $Label3 = GUICtrlCreateLabel("Text: ", 35, 129, 31, 17)
    $Input1 = GUICtrlCreateInput("Neues Datum...", 88, 128, 185, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    
    
    
    
    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
    	  Case $GUI_EVENT_CLOSE
    		 Exit
    
    
    	  Case $Button1
    		 $neuesDatum = @YEAR & "/" & @MON & "/" & @MDAY
    		 GUICtrlSetData($Input1, $neuesDatum)
    		 GUICtrlSetData($Date2,$neuesDatum)
    
    
       EndSwitch
    WEnd
    Alles anzeigen

    Soweit so gut.
    Das Ganze habe ich als exe kompiliert und möchte nun das Feld $Date2 mit einem weiteren Skript ändern (das Tool, was die eigentliche Software später mit Daten füttern soll).

    Per Window Info habe ich mir die erzeugten Klassennamen besorgt und ein paar Tests gefahren, aber bis auf das Öffnen des Kalenders läuft es noch nicht so wie geplant :/
    Zuerst hatte ich versucht mein Wunschdatum direkt per ControlSend einzupflegen, das hatte aber keine Wirkung. Danach habe ich mir das erscheinende Kalenderfenster nochmal genauer angeschaut und festgestellt, dass es eine komplett neue Klasse ist.

    Als letzte Maßnahme wollte ich wenigstens zuverlässig das aktuelle Datum per ControlClick auswählen, aber auch das hatte keinen Erfolg ?(

    Stehe jetzt etwas auf dem Schlauch. Das hier ist der letzte Stand des Datum-Änderers:


    AutoIt
    #include <MsgBoxConstants.au3>
    
    
    Example()
    
    
    Func Example()
       Run("test gui.exe")
    
    
       Local $hWnd = WinWait("[Title:Meine Test Anwendung]", "", 10)
    
    
       ControlClick("Meine Test Anwendung", "", "[CLASS:SysDateTimePick32; INSTANCE:1]", "primary", 1, 175, 10)
       Sleep(100)
       ControlClick("Meine Test Anwendung", "", "[CLASS:SysMonthCal32; INSTANCE:1]", "primary", 1, 40, 145)
       Sleep(100)
    
    
        Local $sText = ControlGetText($hWnd, "", "SysDateTimePick321")
    
    
        MsgBox($MB_SYSTEMMODAL, "", "The text in Edit1 is: " & $sText)
    
    
        WinClose($hWnd)
    EndFunc
    Alles anzeigen


    Bin für jeden Vorschlag Dankbar :D

    Habe noch einen Screenshot der Zielsoftware und einem der Felder gemacht, die geändert werden sollen.

    Datum_bis (Detailauswahl für Programm).png

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™