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

  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 27. Januar 2018 um 17:16
    Zitat von gmmg

    Du brauchst dafür ein 2D Array.

    Wenn du Excel hast, kannst du dir ein Dokument mit deinen Daten (Spalte 1, Spalte 2 ) erstellen und das dann auslesen. Beispiele dazu stehen auch in der Hilfe Datei.

    Mit der Funktion _ExcelReadSheetToArray wird das Dokument in ein Array gelesen.


    Code
    Local $oExcelapp = _Excel_Open()
    Local $oExcel = _Excel_BookOpen($oExcelapp, $sFilePath & "Excel Datei")
    
    If @error = 1 Then
    MsgBox(0, "Error!", "Unable to Create the Excel Object")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "Error!", "File does not exist - Shame on you!")
    Exit
    EndIf
    
    ;$aArray = _ExcelReadSheetToArray($oExcel,1) ;Using Default Parameters
    
    Local $aArray = _Excel_RangeRead($oExcel,Default,Default)
    _ArrayDisplay($aArray, "Array using Default Parameters")
    Alles anzeigen

    Gruß gmmg

    habe leider kein excel. aber habe es jetzt hinbekommen. danke für deine hilfe - schon wieder!

  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 26. Januar 2018 um 13:03

    So, habe nochmals eine Frage.

    Ich erstelle wie gesagt grade eine GUI um die diversen Webformulare auszufüllen.

    Das mit den Textboxen bekomm ich auch schon gut hin. Nun habe ich einige Dropdown Menüs und Checkboxen.

    Erstmal zu den Dropdown menüs. Habe es hinbekommen ein Dropdown in die GUI zu integrieren. Habe für die Auswahl ein Array verwendet, das sieht so aus :

    Code
    ;Array Integrieren
    #Include <Array.au3>
    Local $ManufacturersID[54]
       $ManufacturersID[0] = "46" ; Albert
       $ManufacturersID[1] = "73" ; Anta
       $ManufacturersID[2] = "17" ; Artemide
       $ManufacturersID[3] = "32" ; B+M Leuchten
       $ManufacturersID[4] = "80" ; B-Leuchten
       $ManufacturersID[5] = "84" ; Bankamp
       $ManufacturersID[6] = "70" ; Basis Design
       $ManufacturersID[7] = "41" ; Bega Leuchten
       $ManufacturersID[8] = "30" ; Blomus
       $ManufacturersID[9] = "1" ; Böhmer
       $ManufacturersID[10] = "87" ; Bopp
       $ManufacturersID[11] = "82" ; Brilliant
       $ManufacturersID[12] = "91" ; Bruck
       $ManufacturersID[13] = "86" ; BTR
       $ManufacturersID[14] = "54" ; Casablanca
       $ManufacturersID[15] = "59" ; CMD
       $ManufacturersID[16] = "40" ; Delta Light
       $ManufacturersID[17] = "14" ; Eglo
       $ManufacturersID[18] = "44" ; Escale
       $ManufacturersID[19] = "95" ; Evotec
       $ManufacturersID[20] = "37" ; Fabas Luce
       $ManufacturersID[21] = "107" ; Fischer m6 Systeme
       $ManufacturersID[22] = "2" ; Fische Shine
       $ManufacturersID[23] = "7" ; GKS
       $ManufacturersID[24] = "24" ; Grossmann
       $ManufacturersID[25] = "51" ; Helestra
       $ManufacturersID[26] = "8" ; Holtkötter
       $ManufacturersID[27] = "6" ; Honsel
       $ManufacturersID[28] = "9" ; Hufnagel
       $ManufacturersID[29] = "78" ; ICONE
       $ManufacturersID[30] = "25" ; Ingo Maurer
       $ManufacturersID[31] = "62" ; IP44
       $ManufacturersID[32] = "75" ; Kundalini
       $ManufacturersID[33] = "90" ; LCD
       $ManufacturersID[34] = "63" ; Leuchten Direkt
       $ManufacturersID[35] = "42" ; Limburg Leuchten
       $ManufacturersID[36] = "60" ; Lucelab
       $ManufacturersID[37] = "103" ; Lucide
       $ManufacturersID[38] = "101" ; Lutec
       $ManufacturersID[39] = "5" ; Milan
       $ManufacturersID[40] = "71" ; Nemo
       $ManufacturersID[41] = "28" ; Nordlux
       $ManufacturersID[42] = "45" ; Oligo
       $ManufacturersID[43] = "11" ; Philips
       $ManufacturersID[44] = "29" ; Rösle
       $ManufacturersID[45] = "61" ; Serien Lighting
       $ManufacturersID[46] = "81" ; Slamp
       $ManufacturersID[47] = "66" ; SLV
       $ManufacturersID[48] = "99" ; Studio Italia Design
       $ManufacturersID[49] = "57" ; Team Italia
       $ManufacturersID[50] = "13" ; Trio
       $ManufacturersID[51] = "43" ; Vibia
       $ManufacturersID[52] = "35" ; Wofi
       $ManufacturersID[53] = "105" ; Wofi Action
    Alles anzeigen


    Habe das dann so ins GUI integriert :

    Code
    ;wir setzen das Array in eine Liste
       $sList = ""
    For $i = 0 To UBound($ManufacturersID) - 1
        $sList &= "|" & $ManufacturersID[$i]
    Next
    
    
    GuiCtrlCreateLabel ("Hersteller", 20, 100)
    $input_manufacturer = GUICtrlCreateCombo ("", 100, 100, 100, 20)
    GuiCtrlSetData ($input_manufacturer , $sList)
    
    While 2
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Exit
            Case $ManufacturersID
                $sName = GUICtrlRead($input_manufacturer)
                $iIndex = _ArraySearch($ManufacturersID, $sName)
                If Not @error Then
                    GUICtrlSetData($hLabel, $ManufacturersID[$iIndex][1])
                EndIf
        EndSwitch
     WEnd
    Alles anzeigen

    Kann das jetzt auch alles schön im GUI auswählen, allerdings möchte ich nun, dass er die Value vom Array quasi versteckt und diese nur ins Formular übermittelt. Sehen möchte ich den Namen des Herstellers. Wie ist das machbar?


    Lg

    Alpha

  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 26. Januar 2018 um 11:54
    Zitat von alpines

    Das schreit geradezu nach ARRAYS!

    Vielen Dank, da habe ich mich auch schon mal ganz kurz gestern Nacht noch reingelesen. Dann werde ich mich damit auch mal noch intensiver auseinandersetzen :)!

  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 26. Januar 2018 um 11:20

    Ok - nächste Frage. Habe mir da bisschen was zusammengeschustert (mit eurer Hilfe) und das funktioniert auch ganz gut. Es macht quasi folgendes :

    IE öffnen > Homepage öffnen > Anmelden > in den Adminbereich der Homepage wechseln > Textbox öffnen, in welcher man den Hersteller angeben muss > In die gewünschte Herstellerkategorie wechseln und das Formular zum Anlegen eines neues Artikels öffnen.

    Habe das mit der Textbox so gemacht :

    Code
    ;Nun wollen wir zum korrekten Hersteller Navigieren
    ;~ ;
    
    ;Als erstes erstellen wir die Variable "Hersteller"
    
    $s_hersteller = InputBox("Hersteller","Bitte geben Sie den Hersteller an")
    
    ;Nun generieren wir eine IF Funktion um den Artikel beim richtigen Hersteller anzulegen
    ; Bitte HIER Alphabetisch neu angelegte Hersteller mit einpflegen!
    
        if $s_hersteller = "Hersteller1" then
            _IENavigate($oIE, "URL zu Hersteller1")
        EndIf ;1
        if $s_hersteller = "Hersteller2" then
            _IENavigate($oIE, "URL zu Hersteller2")
        EndIf ;2
        if $s_hersteller = "Hersteller3" then
            _IENavigate($oIE, "URL zu Hersteller3")
         EndIf ;3
       if $s_hersteller = "Hersteller4" then
            _IENavigate($oIE, "URL zu Hersteller4")
         EndIf ;4
       if  $s_hersteller = "Hersteller5" then
            _IENavigate($oIE, "URL zu Hersteller5")
         EndIf ;4a
       if  $s_hersteller = "Hersteller6" then
            _IENavigate($oIE, "URL zu Hersteller6")
         EndIf ;5
    Alles anzeigen

    und so weiter - ich denke Ihr wisst was ich meine! (gibt es hierfür eigentlich eine einfachere , übersichtlichere und schnellere Variante?)


    So, nun möchte ich , dass sich ein GUI öffnet in dem man den Artikel pflegen kann. Ich habe hierzu mal die Vorlage von gmmg genommen (danke nochmals dafür!)

    Code
    ; Nun müssen wir die Attribute für das Artikelformular definieren. Wir möchten dies in einem GUI tun.
    
    $Form = GUICreate("Artikel Erstellen " & FileGetVersion(@ScriptName), 650, 550)
    GUISetBkColor(0xC0C0B2)
    ;GUICtrlSetBkColor(-1,0x66CC00)
    GUICtrlCreateLabel("Lagerbestand", 20, 20)
    $Input_lagerbestand = GUICtrlCreateInput("", 100, 20, 100, 20)
    GUICtrlCreateLabel("Art. Nr.", 20, 60)
    $Input_artnr = GUICtrlCreateInput("", 100, 60, 100, 20)
    ;~ $Button_abschicken = GUICtrlCreateButton("Abschicken", 110, 100, 80, 25) 
    ;^habe ich erstmal Inaktiv gesetzt weil ich noch rausfinden muss wie ich den zu meinem Zweck anpasse
    
    GUISetState(@SW_SHOW)
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button_login
                $lagerbestand = GUICtrlRead($Input_Lagerbestand)
                $artnr = GUICtrlRead($Input_artnr)
                If $lagerbestand = "" or $artnr = "" Then
                    MsgBox (0,"Info","Bitte alle Felder auswählen!")
                Else
                    _abschicken($lagerbestand,$artnr)
                    Exit
                EndIf
        EndSwitch
    WEnd
    
    ; wir müssen noch die Funktion "_abschicken" deklarieren. Dies tun wir hier
    Func _abschicken($lagerbestand,$artnr)
        $link = $formularlink  ;<---------------- Das ist nun das was ich eigentlich wissen möchte
        $titel = "Anmelden"
        $oIE = _IECreate ($link)
        WinSetState ($titel, "", @SW_MAXIMIZE)
        _IELoadWait($oIE)
      ;etc
    Endfunc
    Alles anzeigen

    Ich möchte nun, dass sich $link den Wert holt, welcher bei $s_hersteller rausgekommen ist, z.B. "URL zu Hersteller 2".

    Wie kann ich das am besten machen? Tut mir leid, falls die frage doof ist.


    Liebe Grüße

    Alpha


    E: Habe es so gelöst bekommen

    Code
    $formularlink = _IEPropertyGet($oIE,"locationurl")


    Edit 2:

    Durch das herausfinden wie ich das machen kann habe ich gemerkt, dass das totaler Quatsch ist was ich da mache...

    Danke Trotzdem!


    Edit 3 :


    Glaube hab nun was das passt. Bevor ich daran weiterschreibe, fällt jemandem ein gravierender Fehler auf den ich übersehe?

    Code
    ; Nun müssen wir die Attribute für das Artikelformular definieren. Wir möchten dies in einem GUI tun.
    
    $Form = GUICreate("Artikel Erstellen " & FileGetVersion(@ScriptName), 650, 550)
    GUISetBkColor(0xC0C0B2)
    ;GUICtrlSetBkColor(-1,0x66CC00)
    GUICtrlCreateLabel("Lagerbestand", 20, 20)
    $Input_lagerbestand = GUICtrlCreateInput("", 100, 20, 100, 20)
    GUICtrlCreateLabel("Art. Nr.", 20, 60)
    $Input_artnr = GUICtrlCreateInput("", 100, 60, 100, 20)
    $Button_abschicken = GUICtrlCreateButton("Abschicken", 110, 100, 80, 25)
    GUISetState(@SW_SHOW)
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $Button_abschicken
                $lagerbestand = GUICtrlRead($Input_Lagerbestand)
                $artnr = GUICtrlRead($Input_artnr)
                If $lagerbestand = "" or $artnr = "" Then
                    MsgBox (0,"Info","Bitte alle Felder auswählen!")
                Else
                    _abschicken($lagerbestand,$artnr)
                    Exit
                EndIf
        EndSwitch
    WEnd
    
    ; wir müssen noch die Funktion "_abschicken" deklarieren. Dies tun wir hier
    Func _abschicken($lagerbestand,$artnr)
            WinSetState ($titel, "", @SW_MAXIMIZE)
        $oForm = _IEGetObjById($oIE, "new_product")
        $oQuantity = _IEFormElementGetObjByName($oForm, "products_quantity")
        _IEFormElementSetValue($oQuantity, $lagerbestand)
        $oModel = _IEFormElementGetObjByName($oForm, "products_model")
        _IEFormElementSetValue($oModel, $artnr)
        _IEFormSubmit ($oForm)
    Endfunc
    Alles anzeigen
  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 26. Januar 2018 um 09:37

    Hallo, Vielen lieben Dank an euch beide! Das hat mir schon mal sehr geholfen.


    LG Alpha

  • Anfängerfrage - Submit Button

    • AlphavibeZ
    • 25. Januar 2018 um 10:09

    Hallo Liebe Leute,

    ich entschuldige mich im Voraus, sollte die gestellte Frage so dämlich sein wie ich es befürchte. Ich bin ein absoluter Anfänger und versuche mithilfe vom AutoIT Wiki Tutorial und einigen Code Templates die Grundlagen zu lernen.

    Ich möchte nun ein kleines Script schreiben, welche Automatisch IE öffnet und sich automatisch auf einer Webseite einloggt. Ich habe mir hierfür einen kleinen Quellcode aus dem Internet geholt und versucht, ihn anzupassen.

    C
    #NoTrayIcon
    #include <ie.au3>
    $email = InputBox("E-Mail","Bitte geben Sie die E-Mail von Wohnkult24.com ein")
    $pass = InputBox("Passwort","Bitte geben Sie das Passwort von Wohnkult24.com ein","","*")
    $objIE = _IECreate("https://www.wohnkult24.com/login.php",0,1,1)
    $objInputs = _IETagNameGetCollection($objIE,"input")
    for $obj in $objInputs
        if $obj.Name = "email_address" then
            $objEmail = $obj
        EndIf
        if $obj.Name = "password" then
            $objPass = $obj
        EndIf
        if $obj.title = "Anmelden" then
            $objSubmit = $obj
        EndIf
    Next
    _IEFormElementSetValue($objEmail,$email)
    _IEFormElementSetValue($objPass,$pass)
    _IEAction($objSubmit, "click")
    _IELoadWait($objIE,300)
    Alles anzeigen

    Er gibt mir aber den Fehler, dass die Variable für $objSubmit nicht deklariert ist.

    [Blockierte Grafik: https://image.ibb.co/dsnsyb/Auto_IT_error.jpg]


    Ich gehe davon aus, dass es daran liegt, dass im Seitenquelltext sowohl die Email Adresse als auch das Passwort zusätzlich mit einem Namen deklariert sind. Quasi so :

    Code
    <input type="text" name="email_address" class="span12" maxlength="60" />
    Code
    <input type="password" name="password" class="span12" maxlength="30" />


    Der Anmelde Button hat dies allerdings nicht

    Code
    <button class="btn" type="submit" title="Anmelden"><i class="icon-user"></i>&nbsp;Anmelden</button>


    Wo liegt nun mein Fehler? Geht es über den title, so wie ich das versuche, prinzipiell nicht?


    Habe es auch schon so versucht :

    Code
    if $obj.class ="btn" and $obj.type = "submit" and $obj.title="Anmelden"  then
                 $objSubmit = $obj

    dann bekomme ich jedoch diese Meldung :

    [Blockierte Grafik: https://image.ibb.co/c2rVjG/Error_2.jpg]


    Hat jemand einen kleinen Denkanstoß , was ich falsch mache bzw anders machen könnte?


    Liebe Grüße und Vielen Dank

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™