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

Beiträge von Andy

  • kleiner webcrawler

    • Andy
    • 19. Juli 2010 um 16:23
    Zitat

    Das mit RegEx wäre eine feine Sache aber ich finde nirgends das Pattern wie ich:
    1. ein beliebiges Symbol
    2. eine beliebige Zeichenlänge
    3. zwischen Pos.A und Pos.B ausfindig machen kann

    Genau das steht in der AutoIt-Hilfe, auch im dortigen Beispielscript, ich zitiere:

    Zitat

    ( ... ) Gruppe. Die Elemente in der Gruppe werden in Reihenfolge bearbeitet und können zusammen wiederholt werden. Z.B. (ab)+ entspricht "ab" oder "abab", aber nicht "aba". Eine Gruppe speichert auch den Text ab, der mit dem Set übereinstimmt, um ihn bei einem Rückverweis und in dem Rückgabearray der Funktion zu benutzen, abhängig von dem Flag-Parameter.

    zusammen mit

    Zitat

    . Findet jedes einzelne Zeichen (außer Zeilenschaltungen).

    und

    Zitat

    * Wiederholt die bisherigen Zeichen, Sets oder Gruppen kein oder mehrmals. Äquivalent zu {0,}


    wird das zu (.*)

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <Array.au3>
    $oIE = _IECreate ("http://www.autoit.de/")
    $sHTML = _IEDocReadHTML ($oIE)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sHTML = ' & $sHTML & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ;(.*) ein oder mehrere Zeichen, das Ergebnis wird in ein Array geschrieben
    $aLinks=stringregexp($sHTML,'<LI><A href="(.*)">',3) ;bei dir würde das Patetrn also '<li class="first"><a href="(.*)" rel="' sein
    _arraydisplay($alinks)

    [/autoit]

    /EDIT/

    Zitat von BugFix

    _IELinkGetCollection

    Ob er jetzt aus dem Quellcode alle "passenden" Links ausfiltert oder aus einer _IELinkGetCollection-Liste die "passenden" ausfiltert bleibt m.E. gleich....

  • Springen oder GOTO?

    • Andy
    • 19. Juli 2010 um 10:58
    Zitat von Faweyr

    Für was das da sein sollte, verstehe ich leider nicht!!!

    ich schon....(BotBotBotBotBot)
    Ich hab das Schnipsel im 1. Post einfach mal angeguckt und versucht die Logik zu verstehen: (Ich fasse jetzt das Script in einem Satz zusammen)

    [autoit]

    Wenn innerhalb der nächsten 15 Minuten
    das Pixel eine bestimmte Farbe hat, soll die Schleife verlassen werden(um den Pixelgefunden-Code ausführen),
    ansonsten an den "Anfang" gesprungen werden(logischerweise wird auch die Schleife verlassen).....

    [/autoit]


    wird zu:

    [autoit]


    Merke dir die aktuelle Zeit
    Solange (DasPixel nicht gefunden wurde) und (die Differenz zur gemerkten Zeit kleiner als 15 Minuten ist)
    bleibe in der Schleife
    Falls die Zeit nicht abgelaufen ist ;dann wurde ein Pixel gefunden
    Arbeite den pixelcode ab

    [/autoit]


    kann man 1:1 in AutoIt übersetzen

    [autoit]

    ;anfang, z.B Do/Until oder For/To oder While/Wend
    $eingetroffen = 0x5C0000 ;pixelfarbe
    $t = TimerInit() ; Merke dir die aktuelle Zeit
    While (Sleep(10) * PixelGetColor(95, 570) <> $eingetroffen) and (TimerDiff($t) < 900000) ;Solange (DasPixel nicht gefunden wurde) und (die Differenz zur gemerkten Zeit kleiner als 15 Minuten ist)
    WEnd ;bleibe in der Schleife
    If TimerDiff($t) <900000 Then ;Falls die Zeit nicht abgelaufen ist ( dann wurde logischerweise ein Pixel gefunden)
    ;Pixelgefunden-Code abarbeiten
    EndIf
    ;ab zum anfang

    [/autoit]


    das Sleep(10) entlastet den Prozessor, könnte man auch in die zeile zwischen while und Wend schreiben

  • USB-Trojaner-Lücke in Windows

    • Andy
    • 18. Juli 2010 um 10:31

    Habe gerade in der neuesten c´t einen Artikel gelesen bezüglich der stetig wachsenden Zahl von Lücken in der Software sämtlicher großen Hersteller. Sehr schön....während von den Geschäftsführern Wettbewerbe abgehalten werden wer auf seiner Milliardenteuren "Yacht" mehr Hubschrauberlandeplätze hat, kommen die Programmierer nicht mehr mit dem Stopfen der Löcher hinterher. Laut c´t hat sich in den letzten 2 Jahren die Anzahl sicherheitskritischer Lücken vervierfacht. Tendenz weiter rapide steigend...
    Statt Marketingmäßig Software mit "Ribbons" aufzuhübschen, sollte man lieber das Grundgerüst stabiler und sicherer machen.
    Wer jetzt meint, damit könne man kein Geld verdienen, der wird spätestens dann eines besseren belehrt, wenn durch einen gezielten Angriff weltweit "nichts" mehr geht. Ich vermute mal, dieser Tag ist nicht mehr fern. Auf wen wollen die Amis dann schiessen und ihre Raketen abfeuern? Auf einen Wurm/Virus?
    Der von Oskar verlinkte Text weist auf hochprofessionelle Spezialisten seitens der Geheimdiesnste hin...."...auch du bist ein Terrorist!". Na danke!

  • SciTE komplett in deutsch (außer Abbrev´s)

    • Andy
    • 17. Juli 2010 um 15:11

    Ggf sollten wir in die Forenregeln aufnehmen, daß beim Löschen von Startposts kommentarlos der Account gelöscht wird....

  • SciTE komplett in deutsch (außer Abbrev´s)

    • Andy
    • 17. Juli 2010 um 15:03

    Selbstverständlich gibt es Scite4AutoIt in Deutsch....sogar mit Installationsanleitung...
    Anleitung für deutsche AutoIt-Hilfe, Funktionsbeschreibung und SciTe-Gui

  • Zugriff auf Disketten-Lw NACH Bootvorgang (Avira Antivir?)

    • Andy
    • 17. Juli 2010 um 14:55

    Hallo Bugfix,
    ich kann bei mir auch Laufwerke, sowohl beim Guard, als auch beim Scanner ausnehmen. Ich gehe davon aus, daß du Avira testweise abgeschaltet hast, und danach war beim Öffnen des Explorers Ruhe :)

    weitere Möglichkeiten:
    - http://www.wintotal.de/tipparchiv/?rb=2&id=198- regelt Autostart des Diskettenlaufwerks
    - Verweise irgendwo auf dem Rechner auf eine Datei auf dem Diskettenlaufwerk....ggf Verknüpfung auf dem Desktop auf das LW A:
    - die Recent-Ordner, ggf liegt da auch noch ein Verweis auf eine Datei auf LW A:
    - Filemon.exe der Sysinternals, dort kannst du die Zugriffe auf jedes einzelne Laufwerk abfangen, im Menü Volumes nur A: aktivieren und dann den Explorer starten

  • Aus textdokument senden

    • Andy
    • 17. Juli 2010 um 10:22

    Hallo,
    wieso dieses seltsame Dateiformat?
    Die Anzahl der Zeilen bzw Einträge muss man nicht in die erste Zeile schreiben, gerade im Gegenteil, wenn das "von Hand" gemacht wird, liegt die Fehlerquote bei 100%. Die Anzahl der Zeilen in der Datei kann man mit mehreren Varianten bestimmen.
    Ein * als Zeilentrenner ist überflüssig, da am Ende jeder Zeile sowieso ein @CRLF steht.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>

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

    $datei = "test_3456.txt"
    $inhalt=""

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

    for $i=1 to random(22,33,1) ;zufälligen Dateiinhalt erstellen
    $inhalt&="Das hier ist Zeile "&$i&@CRLF
    Next
    Msgbox (0,"Dateiinhalt:",$inhalt) ;anzeigen
    filedelete($datei)
    filewrite($datei,$inhalt)

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

    Dim $zeilen
    _FileReadToArray($datei, $zeilen) ;Dateiinhalt zeilenweise in ein Array schreiben
    If @error Then ;wenn ein Fehler aufgetreten ist
    MsgBox(0, "Fehler beim Öffnen der Datei:", $datei)
    Else ;ansonsten
    MsgBox(0, "Anzahl Zeilen in " & $datei, UBound($zeilen) - 1)
    MsgBox(0, "Anzahl Zeilen in " & $datei, $zeilen[0])
    _ArrayDisplay($zeilen)
    EndIf

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

    ;oder
    $inhalt = FileRead($datei)

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

    $zeilen = StringSplit($inhalt, @CRLF, 3) ;nullbasierend
    MsgBox(0, "Anzahl Zeilen in " & $datei, UBound($zeilen) - 1)
    _ArrayDisplay($zeilen)

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

    ;oder
    $zeilen = StringSplit($inhalt, @CRLF, 1) ;anzahl der Zeilen im Index 0
    MsgBox(0, "Anzahl Zeilen in " & $datei, $zeilen[0] - 1)
    _ArrayDisplay($zeilen)

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

    filedelete($datei)

    [/autoit]
  • Buchstaben mit Pixelauswertung

    • Andy
    • 17. Juli 2010 um 00:59

    OCR für QWidget-Controls

  • Buchstaben mit Pixelauswertung

    • Andy
    • 16. Juli 2010 um 22:58
    Zitat

    .....Buchstaben mit Pixelauswertung

    .....soll man sich jetzt noch wundern, daß nicht mal google etwas passendes findet? Btw,
    "ocr site:https://autoit.de/www.autoit.de" wärs gewesen!

  • GUI Fenstertitel zur Laufzeit ändern (oder in Taskleiste eine Fortschritt sichtbar machen)

    • Andy
    • 16. Juli 2010 um 20:04

    Hi,
    Möglichkeit:
    Wenn Fenster minimiert/nicht aktiv/verdeckt, Traytip mit Fortschritt, ansonsten kein Traytip.

    [autoit]

    $hgui=guicreate("")
    guisetstate()

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

    for $i=0 to 100 step 10
    if $i=20 then guisetstate(@SW_MINIMIZE) ;nur um Procedere zu zeigen
    if $i=50 then guisetstate(@SW_restore)
    if $i=80 then guisetstate(@SW_MINIMIZE)
    Winsettitle($hgui,"","Fortschritt "&$i&" %") ;Fenstertitel beschreiben
    if bitand(WinGetState($hgui),16) then traytip("","Fortschritt "&$i&" %",1) ; traytip beschreiben, wenn minimiert
    sleep(2000)
    traytip("","",1) ;traytip löschen
    next

    [/autoit]
  • _FTP_ListToArray immer leer

    • Andy
    • 16. Juli 2010 um 17:01

    *kicher* na gut, ich verrate dir, wie ich es mache....
    schau mal auf den 2. Parameter bei

    [autoit]

    _FTP_ListToArray()

    [/autoit]

    ...na, wirds hell?

    Spoiler anzeigen
    [autoit]

    $aVerzeichnisse = _FTP_ListToArray($Conn,1)
    $aDateien = _FTP_ListToArray($Conn,2)

    [/autoit]

    alternativ

    [autoit]

    _FTP_ListToArrayEX()

    [/autoit]

    und die Attribute der Dateien/Verzeichnisse auswerten

  • _FTP_ListToArray immer leer

    • Andy
    • 16. Juli 2010 um 15:09

    Hi,
    probier mal den passiven Modus

    [autoit]

    $Conn = _FTP_Connect($Open, $server, $username, $pass, 1)

    [/autoit]

    dann sollte es klappen

    Nächster Tip^^
    wenn du beabsichtigst, Dateien downzuloaden, dann solltest du unbedingt darauf achten, die Daten nicht aus dem lokalen Cache zu holen!

    [autoit]

    $file = _FTP_FileGet($Conn, "feed.xml", "feed_local.xml", False, 0, $INTERNET_FLAG_RELOAD)

    [/autoit]
  • AutoIt übers netzwerk

    • Andy
    • 16. Juli 2010 um 14:43
    Zitat

    ann man für Skript-Bereiche die Events (Move, MousClick, Send) langsamer machen,
    also zwischen diesen kurze pausen (im Millisekunden bis 1 Sekunden bereich?)

    Hi, schau mal bei

    [autoit]

    AutoItSetOption

    [/autoit]

    sämtliche *delay-Befehle durch, also MouseKlickDelay, SendKeyDelay usw

  • CMD - Batch in ein AutoIT-Script konvertieren

    • Andy
    • 15. Juli 2010 um 16:52
    Zitat

    Leider scheitern die Scripte an der UCA von Windows 7

    ah, und AutoIt hebelt die UCA aus?^^
    Wieso lässt du nicht in den Batchfiles die UCA-"kritischen" Befehle Im Admin-Kontext laufen, oder generell die Batchfiles als Admin oder einem User mit entsprechenden Rechten?

  • C#-DLL in AutoIt einbinden

    • Andy
    • 15. Juli 2010 um 16:45

    hmmm...wer lesen kann ist klar im Vorteil^^
    C++<>C#
    um C++ dll´s in AutoIt einzubinden, mußt du garnichts machen, einfach per dllcall() aufrufen
    ggf cdecl beachten

  • Get_All_Information

    • Andy
    • 15. Juli 2010 um 16:01
    Zitat

    Da fühlt man sich etwas bedroht.

    hmm, was du dann wohl von Tools wie ScriptOmatic (gibts auch für AutoIt, erstellt fertige WMI-Scripte) hälst...
    Es soll tatsächlich Leute geben, die diese Daten für ihre tägliche Arbeit brauchen. Nicht jeder ist ein Kiddie, der mit (progandy hats angedeutet) dem "bischen" im vorgestellten Script ausschliesslich Mist macht.
    Von daher verstehe ich auch

    Zitat

    Könnte man auch für böse Zwecke nutzen aber soweit ausbauen werd ich es deswegen hier nicht

    nicht, denn "böse" Dinge könnte man schon mit wesentlich weniger Informationen anstellen.

    Das System ist dazu ausgelegt, so gut wie alle Daten zur Verfügung zu stellen. Wem das nicht passt, dem steht jederzeit frei, deren "Sichtbarkeit" für den angemeldeten User einzuschränken.

  • Flackern beim Redraw (GDI+)

    • Andy
    • 15. Juli 2010 um 12:08

    Also noch mal zur Funktionsweise des Backbuffers:
    Wie du schon gemerkt hast, kommt das "flackern" daher, daß deine Grafikobjekte nacheinander angezeigt werden. Da der Hintergrund auch eines dieser Objekte ist, werden alle anderen Objekte "übermalt".
    Um das zu vermeiden, werden (nicht sichtbar) der Hintergrund und alle anderen Objekte nacheinander auf eine einzige "Leinwand" gemalt, und diese dann komplett angezeigt.
    Der eigentliche Vorteil daran ist, daß man z.B. bei bewegten Objekten nicht jedes mal den kompletten Hintergrund neu in den Backbuffer zeichnen muß, sondern nur den Teil, welchen das bewegte Objektgerade verdeckt hat (damit der Hintergrund an dieser Stelle wieder hergestellt wird). Das Geschwindigkeitsproblem tritt nämlich dann auf, wenn die übertragenen Daten "zu viel" werden. Wieso jedes Mal 1900x1200 Pixel des Hintergrundes in den Backbuffer schreiben, wenn doch von dem bewegten Objekt nur 60x80 Pixel überdeckt werden?
    Auch mehrere Backbuffer sind keine Seltenheit.
    Wer weiß, wie "früher" z.B. Zeichentrickfilme hergestellt wurden (Folientechnik) der kann dieses Prinzip 1:1 für seine Grafiken übernehmen...

  • FOR-Schleife in IF-Abfrage

    • Andy
    • 15. Juli 2010 um 10:39

    Wieder mal der typische Fall von "Rate mal mit Rosenthal"....
    Im Menü "Extras" in Scite gibt es Befehle, die genau für solch SIMPLE Fälle eingesetzt werden.
    Mich würde es echt mal wundern, wenn hier ein Script mit Debug-Msgboxen oder Debug-Consolewrites oder noch besser, Tracelines, gepostet würde und dann herauskäme, daß irgendetwas nicht stimmt....von einer Abfrage mit VarGetType wage ich mittlerweile nicht mal zu träumen...

    Manchmal erinnert mich das alles an den uralten Kalauer:
    Kommt ein Mann zum Arzt und sagt, "Herr Doktor, ich habe immer so ein Stechen im Auge wenn ich Kaffee trinke!", darauf der Arzt:"Dann nehmen sie das nächste Mal einfach den Löffel aus der Tasse!"

    Will sagen, die "Kunst" am Programmieren ist nicht, irgendwelche Befehle aneinanderzureihen, sondern im Fehlerfall schnell durch die Wahl geeigneter Mittel (Debug usw.) den Fehler einzugrenzen und zu beheben. DAS sollte als allererstes gelernt werden!

    Wie sagt die Werbung so schön..."separates the boys from the men"

  • Flackern beim Redraw (GDI+)

    • Andy
    • 15. Juli 2010 um 10:27
    Zitat

    aber die bisherigen Tips die ich so gefunden habe haben nicht wirklich weiter geholfen.

    ...und in all diesen Tips ist niemals von einem "Backbuffer" die Rede gewesen?

  • mehrere radiobuttons aktivieren (radiobuttons gruppen anlegen)?

    • Andy
    • 15. Juli 2010 um 10:07

    Wenn du Koda benutzt, kannst du ein Gruppen"fenster" aufziehen
    Ansonsten hilft wie immer die Hilfe....
    *group* in den "Suchen" Tab eingeben, "Nur Titel suchen" anwählen...tadaaaa....

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™