#include Problem

  • Hallo Misterspeed,

    hier mal mein Funktionsversuch (Fehler)

    [autoit]


    #include <Array.au3>
    #include <file.au3>
    #include <IE.au3>

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

    ;#include <Datei1.au3>
    ;#include <Datei2.au3>

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

    Global $aCsv, $aCsvPath = 'Tabelle.csv'
    Global $sSeparatorCSV = ';'

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

    _FileReadToArray($aCsvPath, $aCsv)
    Global $aCsv2D[$aCsv[0]-1][11]
    For $i = 2 To $aCsv[0]
    $aTmp = StringSplit($aCsv[$i], $sSeparatorCSV)
    For $j = 1 To $aTmp[0]
    $aCsv2D[$i-2][$j-1] = $aTmp[$j]
    Next
    Next
    _ArrayDisplay($aCsv2D)

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

    For $i = 0 To UBound($aCsv2D,1)-1

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

    _loginWebDE()
    ;MsgBox(0,"Wesite",$aCsv2D[$i][3])
    ;MsgBox(0,"Datei starten",$aCsv2D[$i][2])

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

    next

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

    Func _loginWebDE()
    MsgBox(0,"Anmeldung für:",$oIE,$aCsv2D[$i][4],2)

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

    $oIE = _IECreate ($oIE,$aCsv2D[$i][1])

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

    $name = _IEGetObjByName($oIE,$aCsv2D[$i][3])
    $Email = _IEGetObjByName($oIE,$aCsv2D[$i][5])

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

    _IEPropertySet($Name, 'innerText',$oIE,$aCsv2D[$i][4],2))
    _IEPropertySet($Email, 'innerText',$oIE,$aCsv2D[$i][6],2))

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

    Sleep (1000)

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

    EndFunc

    [/autoit]

    Meine Tabelle.csv

    Spoiler anzeigen


    ID;Seite;Code;Benutzerfeld;Benutzername;Passwortfeld;Passwort
    1;http://www.web.de;Petra.au3;username;Petra;password;33221
    2;http://www.web.de;Klaus.au3;username;Klaus;password;33442

    :( Ilse

  • Hi hab dir da mal ein Beispiel gebastelt.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <file.au3>
    #include <IE.au3>

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

    Global $aCsv, $aCsvPath = 'Tabelle.csv'
    Global $sSeparatorCSV = ';'

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

    _FileReadToArray($aCsvPath, $aCsv)
    Global $aCsv2D[$aCsv[0]-1][11]
    For $i = 2 To $aCsv[0]
    $aTmp = StringSplit($aCsv[$i], $sSeparatorCSV)
    For $j = 1 To $aTmp[0]
    $aCsv2D[$i-2][$j-1] = $aTmp[$j]
    Next
    Next
    _ArrayDisplay($aCsv2D)

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

    For $i = 0 To UBound($aCsv2D,1)-1
    $website = $aCsv2D[$i][1]
    $user = $aCsv2D[$i][2]
    $pw = $aCsv2D[$i][3]
    ; ggf. benötigst du in der csv noch weitere Daten, das Prinzip ist aber immer gleich
    MsgBox(0,"Website",$website)
    MsgBox(0,"User",$user)
    MsgBox(0,"Passwort",$pw)

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

    if $website = "web.de" Then loginWebDE($user,$pw)
    if $website = "gmx.de" Then loginGmxDE($user,$pw)

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

    next

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

    func loginWebDE($user,$pw) ; sollten für web.de mehr Parameter erforderlich sein eben hier noch weitere Variablen übergeben...
    ; hier natürlich vorher dein login zeug das immer für web.de gilt. Dabei werden die Variablen $user und $pw benutzt, welche bei jedem Funktionsaufruf anders sind
    MsgBox(0,"Login bei web.de", "Der Benutzer " & $user & " mit dem Passwort " & $pw & " wurde erfolgreich bei web.de eingeloggt.")
    endfunc

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

    func loginGmxDE($user,$pw)
    ; hier natürlich vorher dein login zeug das immer für gmx.de gilt. Dabei werden die Variablen $user und $pw benutzt, welche bei jedem Funktionsaufruf anders sind
    MsgBox(0,"Login bei gmx.de", "Der Benutzer " & $user & " mit dem Passwort " & $pw & " wurde erfolgreich bei gmx.de eingeloggt.")
    endfunc

    [/autoit]

    Deine CSV wurde auf das wesentliche gekürzt:

    Code
    ID;Seite;Benutzername;Passwort
    1;web.de;Petra;33221
    2;gmx.de;Klaus;33442
  • Hallo Misterspeed,

    wo finde ich denn die Feldnamen?
    z.B. bei web.de die hast du gelöscht?
    Die sind ja je Anbieter unterschiedlich!

    Die Feldnamen bei web.de lauten
    Benutzername username
    Passwort = password
    bei gmx ....

    die muß ich doch dann auch aus der Tabelle lesen, oder?

    ;) Ilse

  • Na die Feldnamen sind doch gerade das was sich von Website zu Website unterscheiden kann. Beim einen Anbieter musst du villeicht 2 Felder ausfüllen beim anderen 3, auch die Links unterscheiden sich. Deswegen verwendest du für jede Seite eine eigene speziell dafür gedachte Funktion. Der Login bei gmail kann ja vällig anders sein als bei t-online oder gmx. Du verstehst was ich meine? Was aber immer gleich seion dürfte ist die Tatsache, dass du einen Benutzernamen und ein PW brauchst und dass sich das Login Prozedere nie verändert egal mit welchen daten du dich einloggst. Deshalb kann man für xbeliebige User immer die selbe Funktion mit den beiden Parametern user und pw verwenden. Was man nicht kann ist die selbe Funktion für xbeliebige Anbieter verwenden, da jeder Anbieter eine andere Website hat.

    [autoit]


    func loginWebDE($user,$pw)
    $oIE = _IECreate ("http://www.web.de/fm/") ; das hier ist immer bei web.de gleich
    $name = _IEGetObjByName($oIE,"username") ; das gilt auch nur für web.de
    $Email = _IEGetObjByName($oIE,"password") ; dito
    _IEPropertySet($Name, 'innerText',$user) ; ebenfalls web.de spezifisch...
    _IEPropertySet($Email, 'innerText',$user & '@web.de') ; das hier erst recht...

    MsgBox(0,"Login bei web.de", "Der Benutzer " & $user & " mit dem Passwort " & $pw & " wurde erfolgreich bei web.de eingeloggt.")
    endfunc

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

    func loginGmxDE($user,$pw)
    ; da ich keine Ahnung habe wie du das bei gmx machst steht hier natürlich das gleiche. Sollte gmx und web.de bis auf die url identisch sein kannst du beide funktionen natürlich auch zusammenfassen

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

    $oIE = _IECreate ("http://www.gmx.de") ; ka ob das richtig ist...
    $name = _IEGetObjByName($oIE,"usernameextendedoderwieauchimmeresbeigmxheisst") ; das gilt nur für gmx.de
    $Email = _IEGetObjByName($oIE,"dashieristdasgmxpwfeld") ; dito
    _IEPropertySet($Name, 'innerText',$user) ; tjo wer weiss obs bei gmx auch so ist
    _IEPropertySet($Email, 'innerText',$user & '@gmx.de') ; ebenfalls geraten...

    MsgBox(0,"Login bei gmx.de", "Der Benutzer " & $user & " mit dem Passwort " & $pw & " wurde erfolgreich bei gmx.de eingeloggt.")
    endfunc

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