Stundenplan GUI

  • nabend leute also wie der titel schon sagt will ich nen prog basteln was mir meinen stundenplan anzeigt und ich will des ganze ganz einfach mit ner GUI realisiert...
    so da des programm nicht nur für mich sein soll steh ich grad vor einem problem..ich kann auf der ersten seite sozusagen meine klasse auswählen(jede klasse die man auf der website anklicken könnte sollte in der GUI über >eine<(nicht mehrere) Combobox "angesprochen" werden können.Wenn man dann in der GUI auf Möglichkeit A klickt dann passiert des ganze auch im IE.
    Beispiel: ich kann auf Seite A zwischen Äpfeln und Birnen auswählen nun will ich dass ich auch in der GUI zwischen Äpfeln und Birnen auswählen kann.Wenn auf Seite A jetzt noch ein angebot von Gurken dazu kommen sollte will ich ebenfalls nach neustart des programm zwischen Äpfeln und Birnen und Gurken auswählen^^
    hier einmal die website zum testen und sourcecode anschauen
    http://www.oszimt.de/0-schule/stundenplan/KPlan.php
    da kann von mir aus alles zerstört werden ist egal^^

    PS: diese komische tabellen auslese funktion der IE.au3 wollte nicht wirklich gehen -.-

  • Hi,

    ist noch nicht perfekt, aber sicher ein Anfang ;)

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #region - global
    #include <IE.au3>
    #Include <GuiCombo.au3>
    Global $oIE
    #endregion

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

    #region - gui

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

    #include <GUIConstants.au3>
    $oszimt_gui = GUICreate("www.oszimt.de - KlassenOrakel :)", 300, 45, 300, 125)
    $cmbo_klassen = GUICtrlCreateCombo("", 16, 12, 150, 21)
    $but_select = GUICtrlCreateButton("go",180,12,100,21)
    _getForm()
    GUISetState(@SW_SHOW)
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $but_select
    _showClass()
    Case Else
    ;;;;;;;
    EndSelect
    WEnd
    Exit

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

    #endregion

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

    #region - functions

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

    ;===============================================================================
    ;
    ; Function Name: getFrom()
    ; Description::
    ; Parameter(s):
    ; Requirement(s):
    ; Return Value(s):
    ; Author(s): <jonk>
    ;
    ;===============================================================================
    ;
    Func _getForm()
    $sBaseURL = "http://www.oszimt.de/0-schule/stundenplan/KPlan.php"
    $oIE = _IECreate ($sBaseURL)
    _IELoadWait($oIE)
    $oTable = _IETableGetCollection ($oIE, 1)
    $aTableData = _IETableWriteToArray ($oTable)

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

    If @error = 0 Then
    ;~ MsgBox(16,"","ubound1: "&UBound($aTableData,1)& " ubound2: "&UBound($aTableData,2))
    For $r = 1 To UBound($aTableData,2) -2
    For $c = 1 To UBound($aTableData,1) -2
    GUICtrlSetData($cmbo_klassen,$aTableData[$r][$c])
    Next
    Next
    Else
    MsgBox(16,"Fehler","Die Daten konnten nicht ausgelesen werden")
    EndIf
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: _showClass()
    ; Description::
    ; Parameter(s):
    ; Requirement(s):
    ; Return Value(s):
    ; Author(s): <jonk>
    ;
    ;===============================================================================
    ;
    Func _showClass()
    Local $class
    $sBaseURLForm = "http://www.oszimt.de/0-schule/stundenplan/KPlan1.php?Klasse="
    _GUICtrlComboGetLBText($cmbo_klassen,_GUICtrlComboGetCurSel($cmbo_klassen),$class)
    _IENavigate($oIE,$sBaseURLForm&$class)
    EndFunc

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

    #endregion

    [/autoit]

    Einmal editiert, zuletzt von jonk (12. November 2006 um 18:59)

  • uhh yeah geil ich bastel mir den rest so wie ich das brauch^^
    funktioniert super danke danke danke :) hihi :keks:


    @edit:
    so nun ja jetzt kommt problem nummer 2...
    http://www.oszimt.de/0-schule/stund…php?Klasse=OG+5
    wie könnt ich das jedenfalls versuchen zu realisieren....hab mir grad schon nen sachen aufgeschreiben aber jetzt gibts erstmal was zu futtern mach nachher noch hier weiter und poste dann meine vollständige lösung^^

  • Du könntest zum Beispiel das Skript hier anpassen ;)


    ... so zum Beispiel:

    [autoit]


    #include <ie.au3>

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

    $oIE = _IECreate ("http://www.oszimt.de/0-schule/stundenplan/KPlan1.php?Klasse=OG+5")
    _IELoadWait($oIE)
    $oForm = _IEFormGetCollection ( $oIE, 0 )
    $oFormElements = _IEFormElementGetCollection ( $oForm)
    For $oElement In $oFormElements
    $oElement.checked=True
    Next

    [/autoit]
  • so ich hab jetzt mir andere lösung zusammengebastelt weil ich des doch nen bisschen anders machen wollte...also noch kurz zur erlkärung in der gui sollen auch so ne checkboxen erscheinen(so wie auf der website) nur dass man nicht die umgebung der website hat^^
    so jetzt aber mein problem wenn ich "_IETableWriteToArray" verwende kommt schon beim ersten versuch ein mir bisher unbekannter fehler...

    [autoit]


    ;programmausschnitt:

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

    $oIE = _IECreate("http://www.oszimt.de/0-schule/stundenplan/KPlan1.php?Klasse=OG+5")
    $oTable = _IETableGetCollection ($oIE, 1)
    $aTableData_courses = _IETableWriteToArray ($oTable)
    For $r = 1 To UBound($aTableData_courses,2) -2
    For $c = 1 To UBound($aTableData_courses,1) -2

    If $r = 2 And $c =2 Then
    MsgBox(0,"",$aTableData_courses[$r][$c]);siehe unten was das liefert
    $Checkbox5 = GUICtrlCreateCheckbox($aTableData_courses[$r][$c], 32, 80, 57, 17);usw....

    [/autoit]


    So die MessageBox liefert folgendes:
    DE11
    EN11
    MA11
    PH11...usw
    die checkbox hat auch so nen komischen namen:
    DE11¡¡EN11¡¡MA11..usw
    so wie kann ich jetzt checkbox1 wert DE11,checkbox2 wert EN11..etc zuweisen mit StringSlpit(),_ArrayToString(),und den rest hab ich vergessen hats nicht funktioniert!!
    also sicherlich liegt das problem daran dass mehrere werte in einerr tabellenspalte stehen ich aber nicht weiß mit welchem zeichen die dann getrennt werden :/

    oder hat jemand nen plan wie ich vielleicht die value von der inputbox herbekomme...vll _IEFormElementGetObjByIndex() aber die abgeändert wurde damit ich damit was sinnvolles anfangen kann sorry kein plan vll arbeite ich einfach schon zu lange an dem teil und find die einfachsten fehler nicht mehr-.-