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

Beiträge von BinDannMalWeg

  • reguläre Suche nach Zahlen und Zahlen in Worte umwandeln

    • BinDannMalWeg
    • 12. Oktober 2017 um 22:35
    Zitat von Bitnugger

    Deinen ersten Satz hättest du dir sparen können!

    Tut mir leid falls ich dich damit gekränkt habe.

    Zitat von Bitnugger

    Und übrigens... dein Beispiel funktioniert mit dem getürkten String nicht.

    Also bei mir funktioniert das zweizeilige Script. Seltsam. Aber auch egal, ich denke mein Einwand ist angekommen.

    Zitat von Musashi

    Tester sollten aber besser eine Domain ihres Vertrauens einfügen !

    Die Domain www.evil[bindestrich]shit.de gehört den Betreibern des YouTube-Kanals SemperVideo und sollte daher vollkommen unbedenklich sein. Sie wird durch gängige Firewalls erkannt und gelockt, da auf unerreichbaren Unterseiten des Webservers Malware-Samples gehostet werden.

    Nun aber wieder back to topic. :S

  • reguläre Suche nach Zahlen und Zahlen in Worte umwandeln

    • BinDannMalWeg
    • 12. Oktober 2017 um 20:34
    Zitat von Bitnugger

    Das geht sogar noch kürzer... ;)

    Code
    Local $sTest = "1302", $aZahlen = ["Null", "Eins", "Zwei", "Drei"]
    ConsoleWrite(Execute(StringRegExpReplace($sTest, '(\d){1}', '$aZahlen[\1]&') & '""') & @CRLF

    Es tut mir leid, aber wenn hier so ein Unsinn verbrochen wird muss ich doch noch einmal meinen Senf dazu geben.

    Diese "Verbesserung" ist eine furchtbar gefährliche Idee. Der Grund für das Übersetzen von Zahlen in Zahlwörter ist ja höchst wahrscheinlich, dass die Zahlen von außerhalb in das Programm eingegeben werden. Vielleicht werden sie sogar aus dem Netz geladen oä..

    Deshalb ist es eine schlechte Idee diese Eingabe in die Execute-Funktion zu stopfen, da ein potentieller Angreifer einfach einen String wie "1302Beep()&ShellExecute('www.evil-shit.de')" eingeben kann. Was dann passiert könnt ihr ja mal selbst versuchen:

    Code
    Local $sTest = "1302Beep()&ShellExecute('www.evil-shit.de')", $aZahlen = ["Null", "Eins", "Zwei", "Drei"]
    ConsoleWrite(Execute(StringRegExpReplace($sTest, '(\d){1}', '$aZahlen[\1]&') & '""') & @CRLF)

    Generell würde ich empfehlen die Verwendung der Execute-Funktion in Produktivcode zu vermeiden.

    Außerdem ist der "gekürzte" Quellcode meiner Meinung nach sehr schlecht lesbar und vermutlich sogar noch langsamer, als der längere und sichere Code.

  • reguläre Suche nach Zahlen und Zahlen in Worte umwandeln

    • BinDannMalWeg
    • 10. Oktober 2017 um 16:04

    Hallo AutoMit,

    hier ein Beispiel zu deiner ersten Frage:

    Code
    #include <Array.au3>
    
    $s = "Omega.6.Fettsäuren und 12 Äpfel sowie .57946. Bananen und -33- Kiwis"
    
    $Zahl = StringRegExp ( $s , "\.(\d+)\." , 3 )
    
    _ArrayDisplay($Zahl)

    und hier ein Beispiel zu deiner zweiten Frage:

    Code
    Local $aZahlen[4] = ["Null", "Eins", "Zwei", "Drei"]
    
    $sTest = "1302"
    
    For $i=0 To UBound($aZahlen)-1
        $sTest = StringReplace($sTest, String($i), $aZahlen[$i])
    Next
    
    ConsoleWrite($sTest & @CRLF)
  • Random Sleep Time

    • BinDannMalWeg
    • 2. Juli 2017 um 16:57

    Hallo ru642,
    Random() ist eine Funktion. Eine Funktion kann man aufrufen, dann wird sie ausgeführt und gibt gibt unter Umständen ein Ergebnis zurück. Die Random-Funktion zum Beispiel produziert eine zufällige Zahl. In deinem Script rufst du die Random-Funktion einmal auf und speicherst die zurückgegebene Zahl in der Variable $rt. Der Wert der Variable (die von Random zurückgegebene Zahl) ändert sich später in deiner Schleife nicht, da du keinen neuen Wert in die Variable schreibst. Um also mehrere Zufallszahlen zu erhalten musst du die Random-Funktion mehrere Male aufrufen. (Denn jeder Aufruf gibt ja genau eine neue Zufallszahl zurück.)

    Spoiler anzeigen
    AutoIt
    HotKeySet("{ESC}", "terminate")
    
    
    Func terminate()
    	Exit 0
    EndFunc   ;==>terminate
    
    
    While True
    	MouseClick("left")
    	$rt = Random(500, 2000, 1)
    	Sleep($rt)
    	ConsoleWrite($rt&@LF)
    WEnd
    Alles anzeigen


    Edit: Ich begann damit diese Antwort zu schreiben als dieser Thread noch keine Antworten hatte...

  • TCP Hilfe - Socket erstellt sich nicht

    • BinDannMalWeg
    • 3. Mai 2017 um 15:56

    Hallo,
    also erstmal ist dein Beispielquellcode bescheuert formatiert. Außerdem solltest du für Autoitcode die Autoit-Tags benutzen.
    Zu deinem eigentlichen Problem: Der von dir gepostete Code ist richtig. Vermutlich hast du im Servercode einen Fehler gemacht oä. Wenn du also Hilfe möchtest solltest du schon den gesamten Code posten (Server + Client) und ihn richtig formatieren.

  • Google Mail API - Anwendungsprobleme

    • BinDannMalWeg
    • 28. April 2017 um 09:45

    Meiner Meinung nach ist das Mitschneiden von Browserverkehr an dieser Stelle unnötig aufwendig und vermutlich auch wenig zielführend. Das tolle bei GMail ist ja gerade, dass sie eine offene API zur Verfügung stellen über die man sein Postfach bedienen kann. Es ist also komplett unnötig zu versuchen nachzubilden was der Browser so tut. Stattdessen muss man nur in der bereitgestellten Dokumentation nachlesen was zu tun ist und dies implementieren.
    Wenn man nun nicht dazu in der Lage ist dies anhand der Dokumentation zu tun, sollte man sich wohl die Frage stellen ob es denn unbedingt GMail sein muss. (Einfacher als mit der dokumentierten API wird es ohne eine IMAP-UDF mit SSL-Unterstützung nämlich nicht.) Alternativ könnte man ja auch einen kostenlosen Mail-Provider verwenden, der SMTP und Co unterstützt. In diesem Fall könnte man mit den bereits erwähnten UDFs und relativ wenig Aufwand Mails versenden und auch empfangen.

  • Dynamische Funktionen?

    • BinDannMalWeg
    • 11. Oktober 2016 um 20:37

    Wenn die Daten sowieso schon in einer Datenbank liegen könnte man den Benutzer vielleicht auch einfach SQL Querys eingeben lassen und diese dann mit der SQL-UDF auf die Datenbank werfen?

  • Txt Datei

    • BinDannMalWeg
    • 4. Oktober 2016 um 13:52

    Es ist ziemlich unsinnig den String aus deinem GUI nur auf die Platte zu schreiben um ihn gleich wieder auszulesen.
    Mit Hilfe der Funktion StringSplit() kannst du den String direkt in ein Array verwandeln. Außerdem solltest du dir die Parameter von _ArrayDelete() nochmal genauer ansehen.

    Spoiler anzeigen
    AutoIt
    #include <Array.au3>
    ; Erstelle zu testzwecken eine 10-zeilige Eingabe
    Local $sTest = "1te Zeile lalala"
    For $i = 2 To 9
    	$sTest &= @CRLF & $i & "te Zeile lalala"
    Next
    ; Beispiel:
    Local $aZeilen = StringSplit($sTest, @LF, 2) ; String in Zeilen aufteilen
    _ArrayDisplay($aZeilen)
    ; lösche die ersten und die letzten 3 zeilen
    _ArrayDelete($aZeilen, "0-2;" & UBound($aZeilen) - 3 & "-" & UBound($aZeilen) - 1)
    _ArrayDisplay($aZeilen)
    Alles anzeigen
  • Daten von einer Webseite auslesen

    • BinDannMalWeg
    • 30. September 2016 um 10:48

    Du könntest die Internet Explorer UDF (IE.au3) verwenden. Mit ihr kannst du eine ganz normale Instanz des IE erzeugen in der du dann wie gewohnt in deinem Webshop surfen kannst. Zusätzlich könntest du mit der Funktion HotkeySet() darauf warten, dass du zu einem gewünschten Artikel gesurft bist. (Wenn du einen gefunden hast drückst du eben die Tastenkombination) In der zur Tastenkombination gehörenden Funktion kannst du dann mit den Funktionen der IE-UDF den Text/Quelltext der gerade im Browser geöffneten Seite auslesen und daraus mit Funktionen wie StringBetween, StringRegExp, usw. die benötigten Daten extrahieren.
    Das Abspeichern der Daten ist dann ganz einfach mit den File-Funktionen möglich.

    Spoiler anzeigen
    AutoIt: Kleines Beispiel
    #include <IE.au3>
    OnAutoItExitRegister("onExit")
    
    
    $oIE = _IECreate()
    _IENavigate($oIE, "http://www.autoit.de/")
    MsgBox(0, "", "Surfe eine beliebige Seite an und drücke Strg+Leertaste.")
    HotKeySet("^{SPACE}", "hotkeyPressed")
    
    
    While True
    	Sleep(1000)
    WEnd
    
    
    Func hotkeyPressed()
    	$sSource = _IEDocReadHTML($oIE)
    	$aTitel = StringRegExp($sSource, "<title>(.+)</title>", 3)
    	If Not @error And IsArray($aTitel) Then
    		MsgBox(0, "", "Der Titel der aktuellen Seite ist '" & $aTitel[0] & "'")
    	Else
    		MsgBox(16, "", "Fehler beim Auslesen!")
    	EndIf
    EndFunc   ;==>hotkeyPressed
    
    
    Func onExit()
    	_IEQuit($oIE)
    EndFunc   ;==>onExit
    Alles anzeigen
  • String nach letzem \ abschneiden

    • BinDannMalWeg
    • 27. September 2016 um 17:08
    Zitat von Camulus

    Danke :thumbup:
    Reguläre Ausdrücke sind echt schweinkram :huh::rolleyes:

    Na dann eben so:

    AutoIt
    $sPfad = @ScriptDir
    
    
    $aSplit = StringSplit($sPfad, "\")
    $sNeuerPfad = ""
    For $i=1 To $aSplit[0]-1
    	$sNeuerPfad &= $aSplit[$i] & "\"
    Next
    
    
    ConsoleWrite($sPfad & @CRLF & $sNeuerPfad & @CRLF)
    Alles anzeigen

    Und setze bitte den Thread auf gelöst wenn das Thema erledigt ist.

  • String nach letzem \ abschneiden

    • BinDannMalWeg
    • 27. September 2016 um 16:45

    Ich habe mir dein Script nicht angesehen aber meinst du so etwas?

    AutoIt
    $sPfad = @ScriptDir
    
    
    $sNeuerPfad = StringRegExpReplace($sPfad, "\\[^\\]+$", "\\", 1)
    
    
    ConsoleWrite($sPfad & @CRLF & $sNeuerPfad & @CRLF)
  • PDF nach Vorlage generieren

    • BinDannMalWeg
    • 9. September 2016 um 19:33

    Also an deiner Stelle würde ich mit Autoit die Angebote einlesen (woher auch immer) und anschließend anhand einer Vorlage Latex-Quelltext generieren. Das liese sich nach einmaligem erstellen der Vorlage durch bloßes Verketten von Strings realisieren. Danach jagt man de Latex-Quelltext noch durch den PDF-Compiler und man hat ein wunderschönes PDF.
    Edit: Anzumerken ist natürlich, dass mit dieser Methode auch keine Abhängigkeit zu MS Office oä. besteht...

  • Theorie: AutoIt3-Compiler

    • BinDannMalWeg
    • 7. August 2016 um 18:05
    Zitat von Techmix

    Die Dialektinterpretation zwischen Au3 und FB könnte je nach Programmierstil kompliziert ausfallen.

    Im Normalfall sollte das Parsen in keiner Weise davon abhängen in welchem "Stil" jemand programmiert. Das Parsen hängt einzig und allein von der Spezifikation der geparsten Sprache ab. Im Normalfall beschreibt man eine Sprache mit Hilfe einer kontextfreien Grammatik. Ist man einmal im Besitz dieser, ist das Schreiben eines Parsers wirklich kein Porblem mehr, bzw. gibt es fertige Software die aus einer kontextfreien Grammatik einen performanten Parser baut.
    Die Entwickler von Autoit sollten im Besitz einer solchen Grammatik für die Sprache Autoit3 sein, jedoch bezweifle ich, dass sie dir diese aushändigen um einen Übersetzer zu bauen.
    Somit sehe ich zunächst einmal das Kernproblem darin eine solche Grammatik zu definieren, die dann auch exakt der originalen entspricht. Des weiteren wirst du wie du selbst schon angemerkt hast, Autoit des Variant-Datentyps berauben müssen, was ohne Veränderung/Annotation der originalen Autoit-Syntax nicht möglich sein wird.
    Insgesamt wird dieses Übersetzer-Projekt also - zumindest meiner Meinung nach - einen Aufwand ähnlich dem des Entwickelns einer komplett neuen Sprache haben. An diesem Punkt kann man sich nun die Frage stellen ob man sich den "Klotz" Autoit3 denn wirklich ans Bein binden möchte...
    Just my 2 cents :)

  • YouTube Videobearbeitung

    • BinDannMalWeg
    • 6. August 2016 um 15:20
    Zitat von Mars

    Was Captchas angeht sind wir hier auch im falschen Forum, ein Program welches Captchas ausfüllen kann wird es hier nicht geben. (siehe Forenregeln)

    Da hab ich mich wohl unglücklich ausgedrückt - ich dachte an ein Anhalten des Ablaufs um den Benutzer um die Eingabe zu bitten...

  • YouTube Videobearbeitung

    • BinDannMalWeg
    • 6. August 2016 um 13:58

    Hallo,

    Zitat von Paddy

    für diese Aufgabe wäre ein eigener YouTube-Kanal sinnvoll, um die Schritte nachvollziehen zu können.

    wäre es möglich, dass du einen Youtube-Kanal mit Videos zum Testen bereit stellst? Falls nicht wird das Anlegen eines solchen gleich zu Beginn der Entwicklung einiges an Zeit und damit Aufwand kosten.
    Gerade die Tatsache, dass der angesprochene Warte-Effekt erst nach 30 bearbeiteten Videos auftritt verkompliziert diesen Aufwand noch einmal.
    Ist diese erste Hürde genommen sollte sich der Aufwand in Grenzen halten und es ist von wenigen Stunden (2-5) Arbeit auszugehen.

    Zitat von Paddy

    Gegenleistung würde ich nach Aufwand erbringen. Am besten erstmal in einem Beitrag überschlagen, wie groß der Aufwand wird.

    Ich hoffe ich konnte ungefähr verdeutlichen wie hoch der Aufwand sein wird. Dazu gesagt sollte vielleicht noch werden, dass falls seitens Google Schutzmechanismen (zB. Captcha Abfragen) in Kraft treten der Aufwand, diese zu erkennen und darauf zu reagieren, noch einmal steigen würde.
    Abschliesend bleibt mir nur noch zu sagen, dass ich mich für eine angemessene Gegenleistung deiner Anfrage annehmen würde.

  • ADF-Datei (Floppydisk-Rip) auslesen und Inhalt abspeichern...

    • BinDannMalWeg
    • 6. August 2016 um 09:04

    Könntest du nicht einfach das Mounten und das anschließende Kopieren der Dateien automatisieren?
    Selbst in den Images rum zu suchen erscheint mir doch etwas umständlich...

  • auf Event aus anderem Skript reagieren

    • BinDannMalWeg
    • 25. Juli 2016 um 20:09

    Könnte man nicht auch einen unsichtbaren/nicht erreichbaren Button anlegen, der dann vom anderen Skript betätigt wird? Zusätzlich wäre ein Input oä. möglich um Strings zu übermitteln...

  • Analyseprogramm gesucht: Was alles führt die zu untersuchende Exe Datei aus?

    • BinDannMalWeg
    • 25. Juli 2016 um 20:03

    Ist vielleicht etwas an deiner Frage vorbei, aber könntest du nicht den Process Monitor mit dem Process Monitor beobachten um herauszufinden wie dieser funktioniert? :D :P

  • Bilder Hochladen über Internet Explorer

    • BinDannMalWeg
    • 3. Juli 2016 um 17:38

    Ich bin kein Jurist, aber im "Eingeben" wie du es nennst ist meiner Meinung nach ein Zugreifen auf die Webseite enthalten.
    Um sicher zu gehen könntest du dich beispielsweise an den Ebay-Support wenden...

  • AutoIt Script und Tablets

    • BinDannMalWeg
    • 3. Juli 2016 um 16:35
    Zitat von s.koni

    Die Funktionalität die autoIt bietet in Java oder Php abzubilden stelle ich mir sehr schwer vor!

    Was für Funktionalitäten meinst du denn?

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™