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

Beiträge von noXQses

  • Suchfunktion automatisieren

    • noXQses
    • 13. April 2015 um 12:19

    @Kaboom: Deine Vermutungen zu meiner Vergangenheit in diesem Forum ist falsch und hat hier absolut nichts verloren. Das ist respektlos gegenüber meiner Person, die du nicht kennst und noch mehr gegenüber meiner Arbeit und Zeit die ich für diesen Thread aufgewandt habe. Wenn dir langweilig ist schreib dir lieber was eigenes. Kann die gelangweilten Skriftkiddies nicht verstehen, die durch Hilfe-foren streifen nur um letzenendes alles zu wiederholen, nur um auch mal was sagen zu dürfen.
    Ich bin sehr wohl in der Lage die Regel zu befolgen, da ich mich mit reinem Wissen und Gewissen dafür entschieden habe das richtige zu tun. Wollen wir wetten, dass wenn ich nur stark genug suche, auch einen Grund finde, wieso jeder hier in diesem Forum schon mindestens einmal die Regeln gebrochen hat?! Sparen wir uns den Zickenkrieg und warten auf die Antwort von PS.

  • Suchfunktion automatisieren

    • noXQses
    • 13. April 2015 um 12:09
    Zitat von noXQses

    Dachte mir nur, dass ich hier auf der sicheren Seite bin.

    Hab es bisher etwa 3 mal deutlich gemacht. Wie oft muss ich mich denn noch wiederholen? Langsam komm ich mir hier vor wie bei ner Hexenjagd! Interessiert das Programmiertechnische an meinem Post hier niemanden? Ich iab mir seit 14 Stunden AutoIT beigebracht, von arrays über .inis bis hin zur GUI und menus und jetzt raubt ihr mir mehr Zeit damit mich rechtfertigen zu müssen als es Hilft hier gepostet zu haben...obv Fehlentscheidung. Allerdings kann man den Paragraphen auch mal genau unter die Lupe nehmen:

    • 5.6 AUTOMATISCHE SPIELER (BOTS). Die Nutzung künstlicher Intelligenz - einschließlich, jedoch nicht begrenzt auf, "Robots" - ist in Verbindung mit der Dienstleistung strengstens verboten. Alle Handlungen, welche ein Nutzer in Bezug auf die Dienstleistung vornimmt, müssen von den Spielern persönlich über die Benutzeroberfläche vorgenommen werden, welche durch die Nutzung der Software zugänglich ist.

    Zuersteinmal sieht man, dass die Richtlinien sich bei der Überschrift schon besonders auf AUTOMATISCHE SPIELER (Bots) bezieht, womit offensichtlich Bots gemeint sind, welche für den Benutzer, anstatt seiner sebst, spielen. Hier heist es auch "..., welche durch die Nutzung der Software zugänglich ist." Was deutlich zum Ausdruck bringt, dass nur von PokerStars bereitsgestellte Funktionen und Programme benutzt werden dürfen. Und das tun wir ja auch. Wir automatisieren sie bloß für eine leichtere Bedienung. Und ja, dort steht auch "persönlich über die Benutzeroberfläche vorgenommen". Und würde es nicht dort stehe, wäre ja alles erlaubt. Aber wie gesagt. Es gibt unzählige Programme, welche offiziell oder zumindest inoffiziell von Pokerseiten akzeptiert werden und die brechen diese Bedingungen definitiv!

    Wie auch immer. Ich sage ja nicht, dass ihr unrecht habt. Ich kenne mich offensichtlich einfach nur besser aus. Werde jetzt noch die PokerStars Support-Antwort abwarten und hier posten. Dann könnt ihr noch drüber lachen und ich seh mich woanders nach Hilfe um oder ihr belohnt meinen Einsatz mit ein paar guten Ideen zur Problembehebung.

  • Suchfunktion automatisieren

    • noXQses
    • 13. April 2015 um 11:21

    Ich kenne die Regeln in diesem Forum. Ich bin bin dessen sogar so sehr bewusst, dass ich von vornerein überlegte ob ich es hier oder lieber in einem anderen Forum posten sollte. Dachte mir nur, dass ich hier auf der sicheren Seite bin. Kenne aber auch unsere Mods hier, die auf solche Anfragen sehr gerne so reagieren. Alles was ich wollte war ein Wink mit dem Zaunpfahl oder ein Tipp in die richtige Richtung, sofern jemand eine kennt.

    Aber gut, werde mal zur Belustigung den Support anschreiben und nachfragen ob ich ihre Nutzungsbedingunen brechen darf :P

  • Suchfunktion automatisieren

    • noXQses
    • 13. April 2015 um 10:51

    Ich glaube wenn man es aus dieser Sicht betrachtet ist fast nichts mehr legal. Siehe Windows Datenschuterklärungen und Nutzungsbedingungen von jedem Programm/Browser das wir heutzutage nutzen ;) Sicherheitsklauseln müssen dennoch vorhanden sein, um sich vor etwaigen Bedrohungen abzusichern, was ja verständlich ist. Dennoch gibt es so etwas wie eine Grauzone.

    Nichtsdestotrotz kenn ich mich sehr gut aus mit PokerStars und kann dir versichern, dass es ziemlich viel Pokersoftware gibt, die einem sogar beim Pokern ganze Huds an den Tisch zaubern um seine Gegner besser schlagen zu können. Ich sag nur Pokertracker4, HoldemManager und Coffeehud. Alles übrigens völlig legal und von PokerStars und allen anderen Pokerseiten im netz offiziell zugelassen. Wenn ich es nicht sicher wüsste, würde ich "Also absolut nichts verbotenes!" bestimmt nicht so daherposten! Kannst ihnen gerne mal ne mail schicken und fragen. Die haben übrigens den besten Support den man im www finden kann. Da hättest du in spätestens 30minuten den Beweis.

    Hoffe nun, du informierst dich etwas genauer anstatt die erstbeste Regel rauszusuchen die dagegenspricht und dich damit direkt zufrieden zu geben. Hoffe auch, dass andere sich davon jetzt nicht abschrecken lassen und meinen Post, der mich locker 1 Std gekostet hat ignorieren. Ich programmiere ja keine Pokerbots die für mich spielen, oder sharkystrator, huds, autoregister oder sonstirgendwelche finanziell bereichernden oder schädigenden Scripts! Es ist lediglich ein Erleichterungstool, sowie ein Login- oder Installations-Script an dem ich meine Freude habe, ebenso wie die Herausforderung etwas zu erschaffen!

    Trotzdem Danke für's lesen und kritisch sein. Aber weniger A****loch-Modus wäre nice <3

  • Suchfunktion automatisieren

    • noXQses
    • 13. April 2015 um 09:03

    Guten Morgen allerseits,

    wünsche jedem einen guten Start in die Woche. Ich persönlich habe mir die komplette Nacht um die Ohren gehauen um eine Idee zu verwirklichen, von der ich ausging, dass es im Grunde machbar sein sollte. Bin dabei jedoch auf ein paar Probleme gestoßen und suche seitdem nach einer Lösung. Leider bekomme ich langsam das Gefühl, dass es weitaus komplizierter ist als geahnt. Daher Frage ich einfach mal euch was ihr davon haltet. Ich möchte dazu sagen, dass ich seit Jahren mit AutoIT arbeite, allerdings nie wirklich etwas großes. Allerdings kenne ich mich mitlerweile etwas aus und lerne sehr schnell, sofern es etwas content gibt. Studiere atm Informatik und hatte früher viel mit C++ zu tun. Also nicht ganz untalentiert.

    Die Idee klingt zuerst sehr einfach: Ich spiele auf PokerStars des öfteren etwas Poker. Dort gibt es eine Suchfunktion (Strg+F) welche das Fenster "Find a Player" öffnet. Hier kann man nun einen Spielernamen eingeben und sich in einem neuen ("Find a Player")-Fenster anzeigen lassen, in welchen Turnieren er gerade sitzt (sofern dieser diese Funktion nicht in den Optionen deaktiviert hat). Bis hierhin nichts besonderes.
    Mein Plan ist jedoch, die Suchfunktion z.B. alle 10-30 Sekunden automatisch laufen zu lassen, sodass ich meinem Freund folgen kann, sobald er z.B. in einem MultiTableTournament (MTT) zufällig auf einen anderen Tisch gesetzt wird, ohne, dass ich erneut manuell nach ihm suchen muss. Also absolut nichts verbotenes! Ich möchte lediglich die Such-Funktion automatisieren. Habe mir dafür ein nützliches GUI gebastelt, wo ich neue Spieler hinzufügen/löschen kann.
    Da ich wärend das automatisierte Such-script läuft, gleichzeitig selbst Pokern und am PC arbeiten möchte ist es wichtig, dass die Suchbefehle im Hintergund ausführbar sind was das ganze leider etwas erschwert.

    So siehts aus, wenn man STRG+F drückt:

    Spoiler anzeigen

    [Blockierte Grafik: http://fs2.directupload.net/images/150413/j4biw44o.png]


    Die Window-Infos zum Editfeld des Fensters:

    Spoiler anzeigen

    [Blockierte Grafik: http://fs1.directupload.net/images/150413/f2lbgdf4.png]

    Problem #1: Habe es vorerst auf die einfachste Art probiert. Mit WinExists("PokerStars Lobby") erstmal prüfen ob die PokerStars Lobby geöffnet ist, np. Doch selbst wenn ich WinAvtivate benutze kann ich durch den Send("^!F") nicht die Suchfunktion öffnen. War sowieso nicht mein Plan, weshalb ich mit dem WinInfo-Tool versuchte die nötigen Infos auszulesen, um diese direkt und wenn möglich auch im Hintergrund auszuführen. Würde es mit ControlSend("Find a Player", "", "[CLASS:Edit; INSTANCE:1]", "Spielername") versuchen, komme aber nicht dazu, das Fenster überhaupt zu öffnen. Gibt es da weitere Möglichkeiten um das Suchen-Fenster, wenn möglich, im Hintergrund zu öffnen/auszuführen? Will hier Pixel/Picture-Search gänzlich vermeiden. Wenn möglich nur den Befehl senden und die Infos abfangen, ohne, dass man dabei bei der Arbeit am PC beeinträchtigt oder getört wird. Da es sich um eine Funktion eines fremden Programmes handelt weis ich nicht ob das überhaupt geht.

    Hat man erst einmal jemanden eingegeben, den man suchen möchte, so öffnet sich folgendes Fenster:

    Spoiler anzeigen

    [Blockierte Grafik: http://fs2.directupload.net/images/150413/p7aaxv6l.png]


    Die Infos zum ListCLass:

    Spoiler anzeigen

    [Blockierte Grafik: http://fs2.directupload.net/images/150413/7wakblb3.png]

    Problem #2: Hier ist das Ziel, jeden angezeigten Tisch (üblich mit Doppellclick) zu öffnen und anzeigen zu lassen, solange der gesuchte Spieler daran sitzt. Steht der Spieler auf, soll der Tisch wieder geschlossen werden. Das schliessen ist dabei das kleinste Hinderniss. Die Frage ist hier im Grunde die selbe, nämlich ob es hier nun auch eine Möglichkeit gibt das Programm durchlaufen zu lassen ohne es tatsächlich zu sehen und trotzdem jede Spalte(Tisch) der Liste irgendwie zu öffnen.

    Gibt es einen Weg an den ich nicht gedacht habe? Speicher auslesen mit ner APIHook scheint etwas zu extrem und PixelSearch zu einfach, da das Programm wenn möglich im Hintergrund ablaufen soll. Wenn jemand einen Lösungsvorschlag, eine Idee oder Richtung kennt, die mir hier weiterhelfen könnte wäre ich für jede Inspiration sehr dankbar. Falls Ihr mehr Informationen benötigt, gebt mir bescheid, dann tue ich mein Bestes um euch diese schnellstmöglich zu liefern. PokerStars ist zudem kostenlos downloadbar, falls sich jemand mal intensiever daran probieren möchte. Hier ist mein Code. Ist ja noch am Anfang aber macht ja wenig Sinn weiter zu machen, sofern derartige Probleme unklar sind. Nicht wundern, dass hier keine falschen Lösungsansätze drinstehen, macht ja keinen Sinn, wenn es nicht funktioniert.

    Code:

    Spoiler anzeigen


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>

    ;declarations
    Dim $msg, $Window_Menue, $Menue_File, $Menue_Help, $hListView, $Menue_ListView, $Button_Start, $Button_Stop, $Button_Exit, $Button_AddPlayer, $NewPlayer, $YesOrNo, $TrackingInAction = 0

    Sleep(300)
    $Window_Menue = GUICreate("ShadowTracker v1.0", 790, 340, 1000, 350)

    $Menue_File = GUICtrlCreateMenu("File")
    $Menue_File_1 = GUICtrlCreateMenuItem("Add Player", $Menue_File)
    $Menue_File_2 = GUICtrlCreateMenuItem("Delete All", $Menue_File)
    $Menue_File_3 = GUICtrlCreateMenuItem("Exit", $Menue_File)

    $Menue_Help = GUICtrlCreateMenu("Help")
    $Menue_Help_1 = GUICtrlCreateMenuItem("Support", $Menue_Help)

    $hListView = GUICtrlCreateListView("Player|Track|Live|Active Tables|Time (hours)|Last action", 130, 10, 650, 300, -1)

    $Menue_ListView = GUICtrlCreateContextMenu($hListView)
    $Menue_ListView_1 = GUICtrlCreateMenuItem("Track On/Off", $Menue_ListView)
    $Menue_ListView_2 = GUICtrlCreateMenuItem("Reset Time(hours)", $Menue_ListView)
    $Menue_ListView_3 = GUICtrlCreateMenuItem("Delete", $Menue_ListView)

    _GUICtrlListView_SetColumnWidth($hListView, 0, 150)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 50)
    _GUICtrlListView_SetColumnWidth($hListView, 2, 60)
    _GUICtrlListView_SetColumnWidth($hListView, 3, 90)
    _GUICtrlListView_SetColumnWidth($hListView, 4, 100)
    _GUICtrlListView_SetColumnWidth($hListView, 5, 195)

    $Button_Start = GUICtrlCreateButton("Start Tracking", 10, 10, 100, 20)
    $Button_Stop = GUICtrlCreateButton("Stop Tracking", 10, 40, 100, 20)
    $Button_Exit = GUICtrlCreateButton("Close", 10, 290, 100, 20)

    GUISetState()

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    case -3
    $YesOrNo = MsgBox(1, "Exit", "Do you want to close ShadowTracker?")
    If $YesOrNo == 1 Then
    Exit
    EndIf

    case $Button_Start
    $TrackingInAction = 1
    _CheckLobby()

    case $Menue_File_1
    $NewPlayer = InputBox("Add new Player", "Enter new players name:", "", "", 200, 120)
    GUICtrlCreateListViewItem($NewPlayer & '|' & "ON" & '|' & "" & '|' & "" & '|' & "" & '|' & "", $hListView)

    case $Menue_File_2
    _DeleteAll()

    case $Menue_File_3
    $YesOrNo = MsgBox(1, "Exit", "Do you want to close ShadowTracker?")
    If $YesOrNo == 1 Then
    Exit
    EndIf

    case $Menue_ListView_1


    case $Menue_ListView_2


    case $Menue_ListView_3
    _DeletePlayer()

    case $Button_Stop
    $TrackingInAction = 0

    case $Button_Exit
    $YesOrNo = MsgBox(1, "Exit", "Do you want to close ShadowTracker?")
    If $YesOrNo == 1 Then
    Exit
    EndIf
    EndSwitch
    WEnd


    Func _CheckLobby()
    If WinExists("PokerStars Lobby") Then
    MsgBox(0, "Client found", "Poker-Client ready", 3)
    Else
    MsgBox(0, "Client not found!", "Poker-Client not found!", 3)
    EndIf
    EndFunc


    Func _DeletePlayer()
    _GUICtrlListView_DeleteItemsSelected($hListView)
    EndFunc


    Func _DeleteAll()
    $YesOrNo = InputBox("Caution", "You are about to DELETE all Players statistics! If you want to preceed type 'YES'")
    If $YesOrNo == "YES" Then
    _GUICtrlListView_DeleteAllItems($hListView)
    MsgBox(0, "Delete complete", "All Players deleted", 5)
    EndIf
    EndFunc


    Func _TrackMode()
    EndFunc


    Das GUI könnte dann etwa so aussehen:

    Spoiler anzeigen

    [Blockierte Grafik: http://fs2.directupload.net/images/150413/69xmbtqk.png]

    ich hoffe auf eure Unterstützung!

    euer noXQses

  • Umschreibung des Programms erforderlich

    • noXQses
    • 18. März 2010 um 15:30

    Hallo,

    das von SUeBo geschriebene Script zum auslesen von bestimmten Daten aus einer dynamisch erstellten Website ist bereits getestet worden und hat mit einigen Ausnahmen bestanden.

    Allerdings gibt es Probleme mit manchen Unterordnern. Die meißten verfügen über 3, manche jedoch nur um 2. Daher fallen diese raus und werden nicht erfasst.

    Hier ein Link zur Website auf die sich das Programm bezieht: http://www.offtek.de

    Benötigt werden hier alle Informationen der Laptop Speicher, vom Modelname bis hin zum Preis eines jeden Moduls. Das sind etwa 200.000 Module.

    Wenn jemand dabei helfen kann, das Script so umzuschreiben, dass es wirklich alle MarkenModelle einlesen kann, wäre ich sehr dankbar.

    Spoiler anzeigen
    C
    #include <Array.au3>
    #include <Excel.au3>
    HotKeySet("!{n}", "_Exit")
    
    
    $sSource = __InetGetSource("http://www.offtek.de/laptopmemory.php?maincat=1&stid=1")
    $aManufact = StringRegExp($sSource, "(?<=href=')(\QModelType.php?stid=1&manu=\E([\w/-]+))", 3)
    If @error Then Exit
    ;~ _ArrayDisplay($aManufact)
    Global $aExcel[1][9] = [["Speichermodul", "Modulgröße", "Produkt-Kode", "Herst.-Kode", "Spezifikationen", "Marke", "Lagerstatus", "Garantie", "Preis"]]
    For $m = 0 To UBound($aManufact) - 1 Step 2
    ConsoleWrite("+>===================================================================" & @CRLF)
    TrayTip($aManufact[$m + 1], "Wir sind beim nächsten Hersteller!", 10)
    $sSource = __InetGetSource("http://www.offtek.de/" & $aManufact[$m])
    $aTyp = StringRegExp($sSource, "(?<=modeltype=).+?(?='>)", 3)
    If @error Then ContinueLoop
    ;~ _ArrayDisplay($aTyp)
    For $t = 0 To UBound($aTyp) - 1
        TrayTip($aManufact[$m + 1], "Modeltype: " & $aTyp[$t], 3)
        If Not StringInStr($aTyp[$t], "&model=") Then
            $sSource = __InetGetSource("http://www.offtek.de/ModelSelect.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t])
            $aModel = StringRegExp($sSource, "model=([^']+)", 3)
            If @error Then ContinueLoop
            For $mo = 0 To UBound($aModel) - 1
                $sSource = __InetGetSource("http://www.offtek.de/ModelData.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t] & "&model=" & $aModel[$mo])
                $aTitle = StringRegExp($sSource, 'class="titlebar">Speichermodule f.r (.+)</td>', 3)
                $aData = StringRegExp($sSource, "(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>a href='[^>]+>(.+?)</a>)(?>.+?returnValue"">([^<]+))(?>.+?returnValue""> ?([^<]+))(?>.+?returnValue"">([^<]+))(?>.+?(\d+,\d+) ?&euro)", 4)
                For $x = 0 To UBound($aData) - 1
                    _AddModul($aTitle[0], $aData[$x])
                Next
    ;~             _ArrayDisplay($aExcel)
                ConsoleWrite("http://www.offtek.de/ModelData.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t] & "&model=" & $aModel[$mo] & @CRLF)
            Next
        Else
            $sSource = __InetGetSource("http://www.offtek.de/ModelSelect.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=0&model=" & $aTyp[$t])
            $aTitle = StringRegExp($sSource, 'class="titlebar">Speichermodule f.r (.+)</td>', 3)
            $aData = StringRegExp($sSource, "(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>a href='[^>]+>(.+?)</a>)(?>.+?returnValue"">([^<]+))(?>.+?returnValue""> ?([^<]+))(?>.+?returnValue"">([^<]+))(?>.+?(\d+,\d+) ?&euro)", 4)
            For $x = 0 To UBound($aData) - 1
                _AddModul($aTitle[0], $aData[$x])
            Next
            ConsoleWrite("http://www.offtek.de/ModelSelect.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=0&model=" & $aTyp[$t] & @CRLF)
        EndIf
        ConsoleWrite(@CRLF)
    Next
    ConsoleWrite("+>===================================================================" & @CRLF)
    ConsoleWrite(@CRLF & @CRLF)
    Next
    
    
    _ArrayDisplay($aExcel)
    $oExcelObj = _ExcelBookNew()
    _ExcelWriteSheetFromArray($oExcelObj, $aExcel)
    _ExcelBookClose($oExcelObj)
    
    
    Func __InetGetSource($s_URL)
    Local $sString = InetRead($s_URL)
    Local $nError = @error, $nExtended = @extended
    Return SetError($nError, $nExtended, BinaryToString($sString))
    EndFunc   ;==>__InetGetSource
    
    
    Func _AddModul($sName, $aArray)
    $iUbound = UBound($aExcel)
    ReDim $aExcel[$iUbound + 1][9]
    $aExcel[$iUbound][0] = $sName
    For $i = 1 To UBound($aArray) - 1
        $aExcel[$iUbound][$i] = $aArray[$i]
    Next
    EndFunc   ;==>_AddModul
    
    
    Func _Exit()
    Exit
    EndFunc   ;==>_Exit
    Alles anzeigen

    Mfg

    Botaner

  • Suche Hilfe zur Automatisierung

    • noXQses
    • 9. März 2010 um 13:15

    Sodale,

    denke hiermit kann ich das Thema endlich abhaken. Bin nun seit 7 Uhr am testen und es wird wohl auch noch einige Stunden dauern.

    Falls doch noch etwas sein sollte schreibe ich es natürlich nochmal rein, hoffe aber nicht ;)

    Noch einmal ganz herzlichen Dank.

    MfG

    Botaner

  • Suche Hilfe zur Automatisierung

    • noXQses
    • 8. März 2010 um 18:07

    soooooo..

    Dank der Hilfe von SEuBo ist das Projekt nun schon um einiges vorran gekommen.

    So sieht es momentan aus:

    Spoiler anzeigen
    C
    #include <Array.au3>
    #include <Excel.au3>
    $sSource = __InetGetSource("http://www.offtek.de/laptopmemory.php?maincat=1&stid=1")
    $aManufact = StringRegExp($sSource, "(?<=href=')(\QModelType.php?stid=1&manu=\E([\w/-]+))", 3)
    If @error Then Exit
    ;~ _ArrayDisplay($aManufact)
    Global $aExcel[1][9] = [["Speichermodul", "Modulgröße", "Produkt-Kode", "Herst.-Kode", "Spezifikationen", "Marke", "Lagerstatus", "Garantie", "Preis"]]
    For $m = 0 To UBound($aManufact) - 1 Step 2
        $sSource = __InetGetSource("http://www.offtek.de/" & $aManufact[$m])
        $aTyp = StringRegExp($sSource, "(?<=modeltype=).+?(?='>)", 3)
        If @error Then ContinueLoop
    ;~     _ArrayDisplay($aTyp)
        For $t = 0 To UBound($aTyp) - 1
            If Not StringInStr($aTyp[$t], "&model=") Then
                $sSource = __InetGetSource("http://www.offtek.de/ModelSelect.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t])
                $aModel = StringRegExp($sSource, "model=([^']+)", 3)
                If @error Then ContinueLoop
                For $mo = 0 To UBound($aModel) - 1
                    $sSource = __InetGetSource("http://www.offtek.de/ModelData.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t] & "&model=" & $aModel[$mo])
                    $aTitle = StringRegExp($sSource, 'class="titlebar">Speichermodule f.r (.+)</td>', 3)
                    $aData = StringRegExp($sSource, "(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>middle'>([^<]+)).+?(?>a href='[^>]+>(.+?)</a>)(?>.+?returnValue"">([^<]+))(?>.+?returnValue""> ?([^<]+))(?>.+?returnValue"">([^<]+))(?>.+?(\d+,\d+) ?&euro)", 4)
                    For $x = 0 To UBound($aData) - 1
                        _AddModul($aTitle[0], $aData[$x])
                    Next
    ;~                 _ArrayDisplay($aExcel)
                    ConsoleWrite("http://www.offtek.de/ModelData.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t] & "&model=" & $aModel[$mo] & @CRLF)
                Next
                Else
                MsgBox(0, "", "Else")
                $sSource = __InetGetSource("http://www.offtek.de/ModelSelect.php?stid=1&manu=" & $aManufact[$m] & "&modeltype=" & $aTyp[$t])
            EndIf
        Next
    Next
    
    
    _ArrayDisplay($aExcel)
    $oExcelObj = _ExcelBookNew()
    _ExcelWriteSheetFromArray($oExcelObj, $aExcel)
    _ExcelBookClose($oExcelObj)
    
    
    Func __InetGetSource($s_URL)
        Local $sString = InetRead($s_URL)
        Local $nError = @error, $nExtended = @extended
        Return SetError($nError, $nExtended, BinaryToString($sString))
    EndFunc   ;==>__InetGetSource
    
    
    Func _AddModul($sName, $aArray)
        $iUbound = UBound($aExcel)
        ReDim $aExcel[$iUbound + 1][9]
        $aExcel[$iUbound][0] = $sName
        For $i = 1 To UBound($aArray) - 1
            $aExcel[$iUbound][$i] = $aArray[$i]
        Next
    EndFunc   ;==>_AddModul
    Alles anzeigen

    Dennoch ist es bisher noch nicht gelungen, das Programm ohne MsgBox "Else" fehlerfrei durchlaufen zu lassen. Nach etwa 3-5 Minuten kommt die erste und lässt man es weiterlaufen, in unterschiedlichen Zeitabständen immer wieder. Teste in diesem Moment was passiert wenn ich es bis zum ende durchlaufen lasse.

    Findet jemand einen Fehler oder hat einen Verbesserungsvorschlag, dann bitte posten ;)

  • Suche Hilfe zur Automatisierung

    • noXQses
    • 5. März 2010 um 19:47

    Vorerst einmal entschuldigt bitte das Wort, dass ich in Zukunft nicht mehr mit meinen Plänen in Verbindung bringen werde.^^

    Der Doppelpost kam zu Stande, da ich einiges an Infos bekommen habe, welche meine Suche nun ein wenig spezifizieren lassen.

    Das mit Array ist bereits auch klar geworden, werde es dann einfach daraus weiter kopieren.

    Ein Zugriff auf die Datenbank ist nach einem kurzen Gespräch leider vom Benutzer nicht erlaubt worden, weshalb ich nun die Möglichkeit habe alles per stgr+c > stgr+v herauszukopieren oder meinem Chef zu sagen, dass er es selbst machen darf X(

    Ob die Betreiber der Website davon nun begeistert sind oder nicht ist zudem unerheblich, da es nicht verboten ist, sich informationen abzuschreiben.

    Um hier also nicht noch mehr Platz mit Recht oder nicht zu vergeuden, bitte ich nun alle die um Hilfe, die sich mit der Materie gut auskennen und evtl. Spaß daran haben mir ein wenig mit der Planung unter die Arme zu greifen :D

  • Suche Hilfe zur Automatisierung

    • noXQses
    • 5. März 2010 um 19:22

    Servus,

    Ich habe Schwierigkeiten mit der Komplettstruktur meines Programms zum Auslesen von einzelnen Daten einer dynamischen Website
    Da alles im endeffekt nur ein ellenlanger Batch ist, bei dem ich oft zurück springen muss, nachdem er mit einer Seite fertig ist, würde mein Bot ohne Hilfe Anderer mit Sicherheit um die 1000 Codezeilen benötigen XD....T.T
    Der Tipp von SEuBo, StringRegExp zu nutzen, hat mir dabei bereits sehr weiter geholfen und mir viel Arbeit erspart ^^

    Zum Verständniss, hier der Link der Website (https://autoit.de/www.offtek.de) und eine grobe Erläuterung dazu, wie das Programm in etwa ablaufen sollte.

    Gesucht ist in etwa folgendes:

    -Öffne WebBrowser > https://autoit.de/www.offtek.de > Laptop Speicher

    -Suche (Marke)Acer > Enter Unterordner1
    -Check ob unterordner2 besteht > wenn ja > Enter Acer Unterordner2
    -Check...
    -Check ob unterordner"X" besteht > wenn nicht = ausleden & kopieren der Infos in Excel-Tabelle

    -Zurück > Unterordner"X"
    -Enter > nächstes Modul > Copy infos
    -...

    -Zurück > ...
    -Zurück > Unterordner0
    -Suche (nächste Marke) > Enter
    -Check ob.....

    ...usw...

    Das muss alle Unterordner und Unterordner der Unterordner finden und daraus die nötigen Infos in die Excel Tabelle kopieren. Allerding gibt es einige Marken-Module, die z.B. nur "einen" oder "zwei" Unterordner haben.
    Insgesammt sind es über 50 Marken-Module mit jeweils bis zu über 100 Unterordnern und Modulen. Daher weiß ich nicht wie ich all diese Bedingungen so klein wie möglich verpacken soll.

    Die Excel-Tabelle soll während der Durchführung automatisch miterstellt werden, da es nicht immer die gleiche Anzahl Module ist.
    Hier ein Bsp. wie es ungefähr aussehen könnte:

    http://www.bilder-space.de/show_img.php?…g&size=original

    Kann mir daher jemand evtl. ein gutes Skript empfehlen, welches mir zeigt, wie ich das Programm am effektivsten aufbauen kann?

    Vielen Dank im Vorraus ;)

    MFG Botaner

    Edit BugFix: Hab mal deinen Thread-Titel geändert, 'Botverwirklichung' war äußerst unglücklich gewählt. ;)

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™