Wahnsinn. Richtig nostalgisches Gefühl. Verdammt ![]()
Beiträge von AlphavibeZ
-
-
Keine Ahnung, ne 10 euro giftcard für irgendwas oder so. kann ich ja morgen beim einkaufen mitnehmen
-
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? -
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
-
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
Alles anzeigen; 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 GUIsDas 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
Alles anzeigenFunc 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 ;==>guiLoginAutoIt
Alles anzeigenFunc 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 EndFuncVermutlich 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.
-
Werde ich versuchen, vielen dank

-
Ok, werde ich berücksichtigen und demnächst den Code nochmals hochladen. Dankeschön!
-
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.
-
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.
-
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.
-
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
AutoItfunc 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) EndFuncDie 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

-
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.
-
Hab mal den Beitrag editiert. Bin ich vlt auf dem richtigen weg?
-
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
sowas wie
€: halt bitte nichts verraten hab glaub ne idee will das zuerst selbst probieren
€2: ok hab das jetzt so gemacht
Funktion erstellt die was schreibtVariable deklariert
und dann eben bei BodyWriteHTML das so gemacht
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.
-
Tatsache. Vielen Dank!! für deine Hilfe und deine Geduld mit mir.
-
So hats jetzt geklappt :
AutoItfunc 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>") EndFuncHab 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()
-
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?
-
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
-
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
Alles anzeigen;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" EndFuncWenn ich nun bei meinem GUI auf "abschicken" clicke, wird die Funktion _abschicken getriggered. die Funktion schaut so aus :
Code
Alles anzeigen$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")Nun bekomme ich aber den Fehler :
[Blockierte Grafik: http://www.bilder-upload.eu/thumb/d41f85-1517497079.jpg]
und ich habe keine Ahnung wieso.
-
Danke für deine erneute nette und schnelle Hilfe. Werde mir das anschauen und es versuchen zu verstehen.
LG
Alpha