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. AlphavibeZ

Beiträge von AlphavibeZ

  • Text in iFrame schreiben

    • AlphavibeZ
    • 8. Februar 2018 um 21:48

    Wahnsinn. Richtig nostalgisches Gefühl. Verdammt :D

  • Text in iFrame schreiben

    • AlphavibeZ
    • 8. Februar 2018 um 18:48

    Keine Ahnung, ne 10 euro giftcard für irgendwas oder so. kann ich ja morgen beim einkaufen mitnehmen

  • Text in iFrame schreiben

    • AlphavibeZ
    • 8. Februar 2018 um 18:36

    Okay, habe es verstanden. Dankeschön! :) Für heute reichts mir, aber morgen werde ich mal meinen Update hier reinposten. Kann ich mich irgendwie für deine Hilfe erkenntlich zeigen?

  • Text in iFrame schreiben

    • AlphavibeZ
    • 8. Februar 2018 um 17:29

    Ich merke schon, dass ich schon wieder etwas nicht verstehe. Ich werde mein Wissen nacharbeiten und sobald ich weiß was du damit meinst - und ich das umsetzen konnte, werde ich mich hier mit dem Resultat melden.

    LG

  • Text in iFrame schreiben

    • AlphavibeZ
    • 8. Februar 2018 um 16:52

    Hallo, ich bins nochmal.

    Hab jetzt alles überarbeitet und die variablen z.b. alle (zumindest fast alle) local oben im script deklariert. und die global deklaration aus den funktionen rausgenommen. Danke nochmal für die ganze Hilfe.


    Habe jetzt eine kleine Schwierigkeit mit den GUIs.

    ich ruf die jetzt alle am Anfang meines Scriptes auf (nach der deklaration der variablen), also so :

    AutoIt
    ; Hier deklarieren wir unsere Variablen
    #Region Variablen
    Local $hersteller, $hGUI1, $hGUI_Login, $hGUI2, $menu, $CheckMasse1, $CheckMasse2, $CheckMasse3, $sCheckFarbe, $checkDimmbar, $artnr, $preis, $effizienz, $flammen, $material, $farbe
    Local $masse1, $masse2, $masse3, $kelvin, $lumen, $watt, $racri, $racriwert, $serie, $kategorie, $istdimmbar, $dimmbar, $artikelname, $google2, $lagerbestand, $email, $passwort
    #EndRegion Variablen
    
    
    ; Wir öffnen unser GUIs.
    #Region GUIs
    guiLogin()
    guiMenu()
    guiHersteller()
    guiArtikelanlegen()
    guiErfolg()
    
    #EndRegion GUIs
    Alles anzeigen


    Das Problem welches ich jetzt habe ist, dass ich jetzt bei der GUI Login auf Einloggen drücken kann - sich allerdings nicht wie gewünscht das GUI Menü öffnet, sondern erneut das GUI Login.

    Hier ist der Code der beiden GUIs


    AutoIt
    Func guiLogin()
    
        $hGUI_Login = GUICreate("Bitte Anmelden", 455, 210, 178, 166)
    
                    $Pic1 = GUICtrlCreatePic("C:\Artikelmanager\Projekt Artikelmanager\Data\Pictures\Wohnkult24Logo.jpg", 8, 8, 436, 100, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    
                        $sEmail = GUICtrlCreateLabel("E-Mail", 8, 128, 33, 17)
                        GUICtrlSetTip(-1, "Bitte Anmelde E-Mail von Wohnkult24.com eingeben.")
    
                        $sPasswort = GUICtrlCreateLabel("Passwort", 8, 168, 47, 17)
                        GUICtrlSetTip(-1, "Bitte Passwort eingeben. Das Passwort entspricht dem Anmeldepasswort der Homepage Wohnkult24.com")
                        $s_email = GUICtrlCreateInput("", 64, 128, 121, 21)
                        $s_Passwort = GUICtrlCreateInput("", 64, 168, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    
                        $ButtonEinloggen = GUICtrlCreateButton("Einloggen", 320, 128, 123, 25, $WS_GROUP)
                        $ButtonBeenden = GUICtrlCreateButton("Beenden", 320, 168, 123, 25, $WS_GROUP)
    
        GUISetState(@SW_SHOW)
    
    
        While 1
            $nMsg = GUIGetMsg()
            Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    Exit 0
                    _IEQuit($oIE)
    
                Case $ButtonEinloggen
    
                        $email = GuiCtrlRead ($s_email)
                        $passwort = GuiCtrlRead ($s_Passwort)
    
                            If $email = "" Or $passwort = "" Then
                                MsgBox($MB_SYSTEMMODAL, "Bitte E-Mail und Passwort eingeben", "Sie haben entweder die E-Mail oder das Passwort nicht eingegeben.", 10)
                            Else
                                _abschickenLogin()
                                GUISetState(@SW_HIDE,$hGUI_Login)
                                GUISetState(@SW_SHOW,$menu)
                            EndIf
    
                Case $ButtonBeenden
                    _IEQuit($oIE)
                    Exit 0
            EndSwitch
        WEnd
    EndFunc   ;==>guiLogin
    Alles anzeigen
    AutoIt
    Func guiMenu()
    $menu = GUICreate("Hauptmenü", 590, 409, 195, 126)
    
        $Pic1 = GUICtrlCreatePic("C:\Artikelmanager\Projekt Artikelmanager\Data\Pictures\Wohnkult24Logo.jpg", 8, 8, 572, 116, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
        $bt_newarticle = GUICtrlCreateButton("Neuen Artikel Anlegen", 8, 136, 171, 41, $WS_GROUP)
        $bt_editarticle = GUICtrlCreateButton("Artikel Bearbeiten", 208, 136, 171, 41, $WS_GROUP)
        $bt_editattributes = GUICtrlCreateButton("Attribute Bearbeiten", 408, 136, 171, 41, $WS_GROUP)
        $bt_admin = GUICtrlCreateButton("Adminbereich öffnen", 8, 200, 171, 41, $WS_GROUP)
        $bt_articledelete = GUICtrlCreateButton("Artikel Löschen", 208, 200, 171, 41, $WS_GROUP)
        $bt_editcategorie = GUICtrlCreateButton("Kategorien Bearbeiten", 408, 200, 171, 41, $WS_GROUP)
        $bt_beenden = GUICtrlCreateButton("Beenden", 408, 360, 171, 41, $WS_GROUP)
        GUISetState(@SW_HIDE)
    
    
        While 1
            $nMsg = GUIGetMsg()
            Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    _IEQuit($oIE)
                    Exit
                Case $bt_newarticle
                    GUISetState(@SW_HIDE, $menu)
                    GUISetState(@SW_SHOW, $hersteller)
                Case $bt_editarticle
                    MsgBox($MB_SYSTEMMODAL, "Fehler", "Dieses Feature ist noch nicht fertig.", 10)
                Case $bt_editattributes
                    MsgBox($MB_SYSTEMMODAL, "Fehler", "Dieses Feature ist noch nicht fertig.", 10)
                Case $bt_admin
    
                    Do
                        $oIE2 = _IECreate("https://www.wohnkult24.com/admin/start.php")
    
                    Until IsObj($oIE2)
                Case $bt_editcategorie
                    MsgBox($MB_SYSTEMMODAL, "Fehler", "Dieses Feature ist noch nicht fertig.", 10)
                Case $bt_articledelete
                    MsgBox($MB_SYSTEMMODAL, "Fehler", "Dieses Feature ist noch nicht fertig.", 10)
    
                Case $bt_beenden
                    _IEQuit($oIE)
                    Exit 0
            EndSwitch
        WEnd
    EndFunc
    Alles anzeigen


    Vermutlich ist das wieder irgendein dämlicher Fehler.. aber ich komm einfach nicht drauf. Möchte aber auch nicht weiterhin die Funktionen immer wieder neu Aufrufen, damit ich nicht diesen von Oscar angesprochenen Stack Overflow error bekomme.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 14:44

    Werde ich versuchen, vielen dank :)

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 11:46

    Ok, werde ich berücksichtigen und demnächst den Code nochmals hochladen. Dankeschön!

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 11:39

    Hier ist er : https://pastebin.com/xJZSyb7v

    Hält aber nur ne Stunde.


    Bin gerade dabei, zu schauen welche Variablen ich tatsächlich Global brauche und welche ich auf local stellen kann.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 11:35

    Er zeigt ihn nicht formatiert als AutoIT code an, selbst wenn ich es auswähle. Dadurch sieht es total unübersichtlich aus.


    Habe nur Scite Lite, glaube da gibt es die Tidy funktion nicht.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 11:31

    Habe schon angefangen den Code neu zu formatieren. Habe auch den Code neu geschrieben um es übersichtlicher zu halten. Wollte ihn gerade hier posten aber irgendwie will das nicht so recht.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 11:24

    Danke für das Wachrütteln. Habe es endlich hinbekommen! Habe es so gelöst :

    Der button Abschicken ruft die Funktion "Artikelbeschreibung"

    Diese sieht so aus

    AutoIt
    func Artikelbeschreibung()
    $sArtikeltext = ("Das ist Zeile 1<br>Das ist Zeile2<br>Das ist Zeile3<br>"&$artikelname&" heisst die Lampe")
    $oDivision = _IEGetObjById ($oIE, "cke_1_contents") 
    $oFrame = _IEFrameGetCollection ($oDivision , 0) 
    _IEBodyWriteHTML($oFrame, $sArtikeltext)
    
    EndFunc

    Die Variable $artikelname holt er sich aus der Eingabe im GUI. Ich möchte quasi, dass man alle Daten nur ein mal eingeben muss un er daraus den kompletten Artikeltext mit den variablen generiert.

    Freue mich grad total :D

  • Text in iFrame schreiben

    • AlphavibeZ
    • 2. Februar 2018 um 08:58

    Ja du hast recht. Ich mache das erst seit ein paar Tagen und wusste nicht, wie ich am besten Anfange zu lernen. Bin deshalb noch nie mit dem Send befehl in Berührung gekommen, aber da er nur einen Tastenanschlag simuliert ist das natürlich vollkommener quatsch.

    Ich bin das falsch angegangen. Trotzden Danke für deine Hilfe.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 20:46

    Hab mal den Beitrag editiert. Bin ich vlt auf dem richtigen weg?

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 20:33

    Eine Frage (von vielen, aber für heute reichts) habe ich noch.

    kann ich im Prinzip, statt den Text direkt zu schreiben, eine func aufrufen?

    also im Prinzip statt

    AutoIt
    _IEBodyWriteHTML($oFrame, "text")

    sowas wie

    AutoIt
    _IEBodyWriteHTML($oFrame, call Text())


    €: halt bitte nichts verraten hab glaub ne idee will das zuerst selbst probieren


    €2: ok hab das jetzt so gemacht


    Funktion erstellt die was schreibt

    Code
    func Artikeltext()
       SEND ("test")
    endfunc

    Variable deklariert

    Code
    $oArtikelbeschreibung = Artikeltext()

    und dann eben bei BodyWriteHTML das so gemacht

    Code
    _IEBodyWriteHTML($oFrame, $oArtikelbeschreibung)


    Allerdings gibt er mir nun statt dem "test" ein 0 im textfeld aus. Bin ich auf dem richtigen weg? möchte die lösung gerne selbst finden, allerdings wäre es hilfreich zu wissen ob ich in die richtige richtung gehe.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 20:26

    Tatsache. Vielen Dank!! für deine Hilfe und deine Geduld mit mir.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 20:19

    So hats jetzt geklappt :


    AutoIt
    func Artikelbeschreibung()
    
    $oDivision = _IEGetObjById ($oIE, "cke_1_contents") ;ich hol mir aus dem Internet Explorer die div "cke_1_contents" in dem der iFrame sitzt
    $oFrame = _IEFrameGetCollection ($oDivision , 0) ;ich hol mir aus der division "cke_1_contents" den iFrame "WYSIWYG-Editor, products_description[2]"
    _IEBodyWriteHTML($oFrame, "Kein bock mehr auf den <b><font color=red>Dreck!</font></b>")
    
    EndFunc

    Hab mal hinten kommentiert, was ich denke was da passiert. Kannst du mir zum Verständnis sagen ob das so korrekt ist? Und ist es notwendig, dass ich zuerst die div hole oder kann ich es direkt über den frame im ie machen?


    Abgeschickt wird es dann über den button abschicken und call Artikelbeschreibung()

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 19:46

    Ich weiß nicht, was ich nicht verstehe.


    HTML
    <iframe src="" frameborder="0" class="cke_wysiwyg_frame cke_reset" title="WYSIWYG-Editor, products_description[2]" aria-describedby="cke_90" tabindex="0" allowtransparency="true" style="width: 100%; height: 100%;"></iframe>

    Das ist das iFrame. Da ist keine div drin, sondern das iframe sitzt in einer div und zwar cke_1_contents. Im iframe sitzt quasi nur ein Body, über den ich den text dann ändern kann. Kann ich dann nicht direkt auf den Body zugreifen?


    Muss ich dann statt zuerst das Frame zu holen wie hier

    AutoIt
    $oFrame = _IEFrameGetObjByName($oIE, "WYSIWYG-Editor, products_description[2]") 
    $oBeschreibung = _IEGetObjById($oFrame, "cke_1_contents")

    vlt zuerst die div holen, also

    AutoIt
    $oDivision = _IEGetObjById ($oIE, "cke_1_contents")
    $oFrame = _IEFrameGetObjByName ($oDivision , "WYSIWYG-Editor, products_description[2]")

    oder bin ich grad einfach wieder komplett auf dem Holzweg und verstehs einfach nicht?

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 16:37

    ups :|

    habe gedacht, dass der frame nochmal auf ner seperaten ie instanz geladen werden muss und ach kein plan da hat mein hirn bisschen abgeschalten

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 15:52

    So, habe es nun versucht so zu lösen :

    Habe den Code angepasst und eine Funktion erzeugt, damit ich sie später über den Button "Abschicken" mit abrufen kann

    HTML
    ;Wir greifen auf das iFrame zu
    
    func Artikelbeschreibung()
    Do
        $oIE2 = _IECreate("about:blank","",0,1)
    Until IsObj($oIE2)
    _IEDocWriteHTML($oIE2, "<html><body><iframe name=""WYSIWYG-Editor, products_description[2]""></iframe></body></html>")
    ; Erzeuge div mit id="Beschreibung" im iframe
    $oFrame = _IEFrameGetObjByName($oIE2, "WYSIWYG-Editor, products_description[2]")
    _IEBodyWriteHTML($oFrame, "<div id=""Beschreibung"">""</div>")
    ; Manipuliere div im iframe
    $oObject = _IEGetObjById($oFrame, "Beschreibung")
    $oObject.innerHTML = "Testtext"
    EndFunc
    Alles anzeigen


    Wenn ich nun bei meinem GUI auf "abschicken" clicke, wird die Funktion _abschicken getriggered. die Funktion schaut so aus :


    Code
    $oForm = _IEGetObjById($oIE, "new_product")
    
    
        $oQuantity = _IEFormElementGetObjByName($oForm, "products_quantity") ; Lagerbestand
        _IEFormElementSetValue($oQuantity, $lagerbestand) ; Lagerbestand
    
        $oModel = _IEFormElementGetObjByName($oForm, "products_model") ; Artikelnummer
        _IEFormElementSetValue($oModel, $artnr) ; Artikelnummer
    
        $oName = _IEFormElementGetObjByName($oForm, "products_name[2]") ; Artikelname
        _IEFormElementSetValue($oName, $artikelname) ; Artikelname
    
        $oPreis = _IEFormElementGetObjByName ($oForm, "products_price") ; Preis
        _IEFormElementSetValue ($oPreis, $preis) ;Preis
    
        $oEfficiency = _IEFormElementGetObjByName ($oForm, "agi_google_energy_efficiency") ;Effizienz
        _IEFormElementSetValue ($oEfficiency, $effizienz) ;Effizienz
    
        call ("Artikelbeschreibung")
    Alles anzeigen


    Nun bekomme ich aber den Fehler :


    [Blockierte Grafik: http://www.bilder-upload.eu/thumb/d41f85-1517497079.jpg]

    und ich habe keine Ahnung wieso.

  • Text in iFrame schreiben

    • AlphavibeZ
    • 1. Februar 2018 um 14:37

    Danke für deine erneute nette und schnelle Hilfe. Werde mir das anschauen und es versuchen zu verstehen.


    LG

    Alpha

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™