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

Beiträge von timee000

  • Listview-Bug wenn Scrollbalken vorhanden?

    • timee000
    • 16. März 2018 um 14:38

    Habe das gleiche Verhalten wie autoiter. Der Mauszeiger springt sofort links oben in die Ecke.

    Nutzt man #AutoIt3Wrapper_UseX64=Y ist das Verhalten genau andersrum.

    Will man dann von oben die Einträge markieren, springt der Mauszeiger unten rechts in die Ecke.

    Sehr merkwürdig.

    MfG timee000

  • Brauche ein klein wenig hilfe für mein neues projekt: Mein Serienmanager

    • timee000
    • 15. März 2018 um 10:18

    Da hast du auf jedenfall noch einiges vor, wenn du deine Hausaufgaben alle machen willst :)

    Zum Thema mehrere Funktionen ineinander schreiben.

    Das kannst du ohne Probleme machen. Allerdings wird dies bei vielen Funktionen immer schwerer nachvollziehbar.

    _ArrayAdd($array, StringReverse(StringTrimRight(StringReplace(GUICtrlRead($Label1), "eins", "zwei"), 5))) ; Beispiel


    Zur ersten Frage:

    a) Das "Pipe" Zeichen ist in der Regel nur ein ganz normales Zeichen. Bei AutoIt wird dies aber manchmal als Delimeter also als Trennzeichen benutzt. Wie z.B. bei GUICtrlSetData. Dort kannst du dann mehrere Werte "trennen".

    b) Ein @CRLF ist zu Deutsch ein Zeilenumbruch. Also in einer Textdatei einmal ENTER. (Aufpassen bei Linux/macOS hier sind es keine CRLF sondern LF/CR)

    c) StringReplace ersetzt, wie der Name schon sagt, Zeichen in einem String. Das & Gehört nicht dazu. Dies ist in AutoIt da um Werte "aneinanderzukleben". ("eins" & "zwei" = "einszwei")

    d) Auf einem Befehl den du nicht kennst in SciTE F1 drücken dann bekommst du die Hilfe oder Google. Dort dann nach Schlagwörtern suchen und du solltest eigentlich so gut wie immer was finden.

    Dein Befehl mit StringReplace macht im Prinzip folgendes:

    Lese alles aus der Textdatei. Ersetzte alle CRLF also Zeilenumbrüche mit einem Pipe zeichen. Weise der Variable $TxtData ein Pipe Zeichen und (&) das Ergebnis von StringReplace zu.


    Zur zweiten Frage:

    GUICtrlSetState und $GUI_FOCUS sind dein Freund ;)

    MfG timee000

  • Brauche ein klein wenig hilfe für mein neues projekt: Mein Serienmanager

    • timee000
    • 13. März 2018 um 00:12

    Für den Anfang sieht das Script schon recht gut aus. :)

    Frage 1:

    Wenn du die Serien z.B. in einer MsgBox ausgeben willst, musst du natürlich vorher die Textdatei lesen. FileOpenDialog gibt nur den Pfad zurück und nicht den Inhalt der Datei.

    Also den Pfad hast du ja schon und nun kannst du diesen mit FileRead verwenden.

    FileReadLine liest immer nur 1 Zeile und wird in deinem Script auch keiner Variable zugewiesen.

    Frage 2:

    Wenn die Datei immer an der gleichen Stelle bleiben soll, dann weißt du ja wo sich die Datei befindet oder? ;)

    FileWriteLine braucht den Pfad zu der Datei, in die geschrieben werden soll. Der wird vorher bei dir mit FileSaveDialog ausgewählt. Aber wenn du den Pfad schon weißt warum nochmal abfragen?

    Hoffe ich konnte dir etwas auf die Sprünge helfen.

    MfG timee000

  • Brauche ein klein wenig hilfe für mein neues projekt: Mein Serienmanager

    • timee000
    • 11. März 2018 um 19:28

    Wie BugFix oben schon erwähnt hat, gibt es sowas schon fertig.

    Wenn aber dein Programmier-Herz dafür schlägt, dass du es selbst schreiben möchtest, will dir natürlich keiner im Weg stehen.

    Ein paar kleine Tipps:

    Als Script Editor kann ich SciTE empfehlen (Vielleicht benutzt du den auch schon). Dort hast du unter anderem oben bei Tools den Koda Form Designer.

    Damit kannst du deine GUI einfach Designen ohne das du die Koordinaten selbst schreiben musst.

    Buttons kannst du mit Case $Button1 abfragen und da drunter dann einfache deine Code schreiben der ausgeführt werden soll. (Muss natürlich in einer While-Schleife stehen)

    Zum Thema Speichern der Serien:

    Ich würde dies eher in einer reinen Textdatei als in einer INI speichern. 1 Zeile = 1 Serie. Diese kannst du dann einfach mit _FileReadToArray einlesen und bekommst ein Array wo jedes Element eine Serie ist.

    Wenn du noch etwas mehr Arbeit reinstecken willst, und auch lust hast etwas neues zu lernen, kannst du die Textdatei durch eine SQLite Datenbank ersetzen.

    Hier könntest du z.B. noch weitere Spalten mit Genre, Bewertung, etc... einfügen und die Serien später danach filtern.

    Das mag sich vielleicht am Anfang etwas kompliziert anhören aber wenn man sich etwas damit beschäftigt, ist dies gar nicht so schwierig.

    Mfg timee000

  • FF.au3 Seiteninhalt auslesen

    • timee000
    • 8. März 2018 um 14:27

    AutoTim Ja stimmt du hast recht die Elemente stehen auch in Quelltext. Ist mir gar nicht aufgefallen, da ich dachte wenn man durch die Vorschläge bei Amazon geht, die dann nachgeladen werden, das die Elemente im Quelltext nicht auftauchen.

    Diese werden dann wohl nach und nach in den Quelltext injected.

    Sorry dann wüsste ich auf Anhieb auch keine schnelle Lösung.

    Mfg timee000

  • FF.au3 Seiteninhalt auslesen

    • timee000
    • 8. März 2018 um 11:41

    Die nachgeladenen Elemente lassen sich schon mit _IEGetObjById finden allerdings ist bei Amazon das Problem das diese manchmal unterschiedlich heißen z.B. anonCarousel1 oder anonCarousel3.

    Weiteres Problem ist das wenn man das Script ausführt die Seite und die Elemente zwar geladen werden aber komischerweise nicht gefunden werden.

    Scrollt man allerdings nachdem sich der Internet Explorer geöffnet hat zu den Element werden die einwandfrei gefunden obwohl diese schon vorher geladen waren. Kann nicht sagen ob dies am Internet Explorer oder was anderen liegt.

    Andere Möglichkeit ist sich den kompletten DOM geben zu lassen. Dort werden dann alle Elemente ausgeben. Hat bei mir wunderbar funktioniert. Auch ohne "scrollen nach dem öffnen"

    Code
    #include <IE.au3>
    
    $oIE = _IECreate("https://www.amazon.de/Sweatshirt-Pullover-Kapuzenpullover-Baumwolle-Einfarbig/dp/B075WXH2TB/ref=sr_1_2_sspa?ie=UTF8&qid=1520504545&sr=8-2-spons&keywords=kapuzenpullover+m%C3%A4nner&psc=1&smid=AJF24GPENWU86")
    $prop = _IEPropertyGet($oIE, "innertext")
    
    ConsoleWrite($prop)
  • FF.au3 Seiteninhalt auslesen

    • timee000
    • 8. März 2018 um 10:46

    Also wenn du die Menüpunkte Bearbeiten, Kategorien und Anmelden meinst, dann kannst du diese auch im Quelltext der Seite finden.

    Allerdings sind die etwas "versteckt" relativ weiten unten im Quelltext als JSON formatiert.

    Einfach mal im Quelltext nach den Namen der Menüpunkten suchen und man findet sie.


    Um die Elemente im DOM auszulesen geht z.B. folgendes:

    Code
    #include <IE.au3>
    
    $oIE = _IECreate("http://wikimapia.org/")
    $obj = _IEGetObjById($oIE, "wikimapia-top-panel")
    
    ConsoleWrite($obj.innertext)

    Ist halt am einfachsten wenn man weiß wonach man sucht. Oft haben die einzelnen Elemente eine ID wonach man diese dann ansprechen kann.

    Unbenannt.jpg

  • FF.au3 Seiteninhalt auslesen

    • timee000
    • 7. März 2018 um 23:53

    Ich glaube er sucht einfach eine Möglichkeit "die Seite so auszulesen wie man sie fertig sieht".

    Also nicht den Quelltext sondern auch die Elemente die vielleicht nachträglich nach dem Laden der Website von Javascript eingefügt/aktualisiert wurden.

    Wie oben schon erwähnt den DOM. (Bei Chrome -> Rechtsklick -> Untersuchen)

    Habe mich allerdings noch nie mit der FF.au3 beschäftigt.

    Ich kenne nur _IEPropertyGet oder _IEGetObjById mit denen du es über den Internet Explorer realisieren könntest.

  • Windows-Fax und -Scan aufrufen

    • timee000
    • 27. Februar 2018 um 15:08

    Hast du mal probiert dein Script als x64 auszuführen? Wenn ich es bei mir (Win 10) als x86 ausführe, bekomme ich den selber Fehler.

    Führe ich es allerdings als x64 aus öffnet sich Windows Fax und Scan. Auch ohne #RequireAdmin.

    Einfach mal #AutoIt3Wrapper_UseX64=yin die Kopfzeile packen.

    Mfg timee000

  • Listview - jede 2te Reihe Farbig hinterlegen

    • timee000
    • 21. Februar 2018 um 23:12

    Theoretisch könntest du auch mit GUICtrlCreateListViewItem arbeiten. Dort werden alle Werte auf einmal eingetragen die durch | getrennt sein müssen.

    Und jede zweite Zeile zu markieren kannst du einfacher machen, in dem du einfach die Zahlen im For-Loop auf gerade/ungerade überprüfst mit Mod.

    Code
    if $msg = $neuenauftraganlegen then
        $id = GUICtrlCreateListViewItem("Feld 1|Feld 2|Feld 3", $idListView)
        If Mod($y, 2) Then GUICtrlSetBkColor($id, 0x848484)
    Endif
  • GUI transparenter Hintergrund und Schrift

    • timee000
    • 9. Februar 2018 um 10:11

    Guten Morgen

    Die einzige Idee die mir auf die schnelle in den Sinn gekommen ist, ist die Text Farbe nach der Hintergrund Farbe der aktuellen Position der GUI anzupassen.

    Hab mal eben ein kleines Beispiel geschrieben. Wenn die Farbe dunkler als 0x999999 wird, ändert sich die Schrift auf Weiß.

    C
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    $Form1 = GUICreate("Form1", 200, 200, 663, 317, -1, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW))
    $Label1 = GUICtrlCreateLabel("beispiel", 88, 59, 115, 40)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    GUISetBkColor(0xABCDEF)
    _WinAPI_SetLayeredWindowAttributes($Form1, 0xABCDEF)
    GUISetState()
    
    AdlibRegister("changeColor", 1000)
    
    Do
        Sleep(10)
    Until GUIGetMsg() = -3
    
    Func changeColor()
        $pos = WinGetPos("Form1")
        $color = PixelGetColor($pos[0] - 1, $pos[1] - 1)
        If $color < 0x999999 Then
            GUICtrlSetColor($Label1, 0xFFFFFF)
        Else
            GUICtrlSetColor($Label1, 0x000000)
        EndIf
    EndFunc   ;==>changeColor
    Alles anzeigen

    Allerdings nicht die schönste Lösung. Vielleicht kannst du ja trotzdem etwas damit anfangen.

    Eventuell hat auch jemand eine einfachere/bessere Lösung.

    Mfg timee000

  • erledigt!!! 9,13 €-Cent sind wieviel Sekunden bei € 17.68 Stundensatz?

    • timee000
    • 7. Januar 2018 um 03:02
    Zitat von Alina

    Am leichtesten wäre es doch auszurechnen, was eine Arbeitseinheit bei 9.13 €-Cent und was eine Arbeitseinheit bei 4,50 €-Cent in Sekunden wert ist. ODER?

    Ich bin in Mathe zwar echt nicht die hellste Leuchte aber ich würde es auch so machen.

    17,68€/Std. = 1768 Cent/Std.

    1768 / 60 = 29,466666666666666666666666666667 Cent/Min.

    29,466666666666666666666666666667 / 60 = 0,49111111111111111111111111111111 Cent/Sek.

    9,13 / 0,49111111111111111111111111111111 = 18,590497737556561085972850678733 Sek.

    Also müssten eine Arbeitseinheit bei 9,13 €-Cent ungefähr 18,59 Sekunden sein. (Komischer Wert :/)

    Vielleicht liege ich aber auch komplett daneben. Hoffe konnte dir etwas helfen.

    Mfg timee000

  • TeamSpeak 3 UDF Bug?

    • timee000
    • 9. Oktober 2017 um 17:16

    Servus Leute

    Ich benutze seit ein paar Tagen die TeamSpeak3 UDF von chip und mir ist aufgefallen, wenn ich 2 Funktionen hintereinander benutze, die mir Daten zurückliefern sollen, ich bei der 2. Funktion einfach nur ein "ok" zurückbekomme.

    z.B. bei folgendem Code:

    Spoiler anzeigen
    Code
    #include <TeamSpeak3.au3>
    
    _TS3connect("127.0.0.1")
    _TS3use(1)
    _TS3login("serveradmin", "passwort")
    $clients = _TS3clientlist()
    Sleep(1000)
    $channels = _TS3channellist()
    
    MsgBox(0, "clients", $clients)    ;~ liefert alles korrekt zurück
    MsgBox(0, "channel", $channels)   ;~ hier kommt nur ein "ok"
    Alles anzeigen

    Führe ich die zweite Funktion direkt nochmal aus, wird der gewünschte Output angezeigt. Im Moment behelfe ich mir mit diesem "workaround", allerdings finde ich es so nicht sonderlich schön.

    Leider konnte ich den Fehler auch bis jetzt nicht ausfindig machen.

    Hatte jemand vielleicht schon mal diesen Fehler oder kennt eine Problemlösung dafür?

    Hier noch der Post von chip TeamSpeak 3 UDF

    Mfg timee000

  • StringInStr mit mehreren Substrings

    • timee000
    • 8. September 2017 um 21:45
    Zitat von alpines

    Fang doch einfach die Gruppen im regulären Ausdruck und geh das Ergebnisarray durch, wenn du alle findest, dann hast du auch alle gefunden.

    Stimmt soweit habe ich garnicht gedacht. Vielen Dank alpines. Funktioniert bestens!

    Mfg timee000

  • StringInStr mit mehreren Substrings

    • timee000
    • 8. September 2017 um 12:48

    Hallo

    Ich bin auf der suche nach einer Möglichkeit womit ich mehrere Substrings in einem String finden kann.

    Sozusagen wie:

    StringRegExp($string, "apfel&banane&birne")

    Allerdings gibt es bei StringRegExp nur ODER | aber nicht UND &.

    Bisher hatte ich es so gelöst:

    Code
    $pattern = "apfel|banane|birne"
    $string = "apfel apfel banane"
    $ar_regexp = StringRegExp($string, $pattern, 3)
    If UBound($ar_regexp) = Stringsplit($pattern, "|")[0] Then MsgBox(0, "Erfolgreich", "Alle Strings enthalten")

    Leider ist diese Methode sehr fehleranfällig da 2x Apfel und 1x Banane gefunden wird aber nicht Birne.


    If StringInStr And StringInStr fällt auch raus da ich nicht weiß wie viele Substrings gesucht werden.

    Und mit einer For-Next Schleife wollte ich auch nicht so gerne Arbeiten da es sehr viele Dateien sind und diese "langsam" ist.

    Kennt jemand vielleicht noch eine andere Möglichkeit dieses Problem zu lösen?

    Mfg timee000

  • Bestimmte Region als .png Datei speichern.

    • timee000
    • 1. Februar 2015 um 03:02

    Nach Screenshot.png fehlen die Anführungszeichen und du hast einen kleinen Denkfehler mit den Koordinaten gemacht.

    So müsste es gehen:

    [autoit]

    $x=MouseGetPos()
    Sleep(5000)
    $y=MouseGetPos()
    _ScreenCapture_Capture("Screenshot.png", $x[0], $x[1], $y[0], $y[1])

    [/autoit]
  • txt umschreiben via StringRegExpReplace - ok , aber wie geht das mit externen Variablen???

    • timee000
    • 6. November 2014 um 02:42

    Hey
    Wenn ich das jetzt richtig erkannt hab, hast du die Variablen mit in die " " gepackt. Nur reiner Text wird in " " geschrieben. Variablen werden immer mit

    [autoit]

    ("Nur Text" & $variable)

    [/autoit]

    eingefügt. Probier es mal mit:

    [autoit]

    $sText = StringRegExpReplace($sText, '(.{3}) (.{4}) (.{5})', 'aaa' & $3 & $2 & $1 & 'bbb') ; die Formatierung ändern

    [/autoit]

    Hab auch mal ein kleines Beispiel zur Veranschaulichung erstellt:

    [autoit]

    $text = "Dein Text aaa" ;Text oder Txt Datei
    $input = InputBox("", "Text zum ersetzen eingeben") ;Inputbox zum eingeben womit "aaa" ersetzt werden soll
    $replace = StringRegExpReplace($text, "aaa", "ist " & $input) ;Hier wird jetzt "Dein Text aaa" mit "Dein Text ist" und dem vorher eingegebenem Text ersetzt
    MsgBox(0, "", $replace) ;Neuen Text anzeigen

    [/autoit]

    Ich hoffe ich es hab halbwegs verständlich ausgedrückt :)

  • Mehr als 4096 Zeichen in einer Zeile

    • timee000
    • 17. August 2012 um 18:26

    Danke euch beiden funktioniert beides einwandfrei. Arbeite noch nicht sehr lange mit AutoIt daher wusste ich nicht das es so geht. Nochmals vielen Dank.

    Mfg timee000

  • Mehr als 4096 Zeichen in einer Zeile

    • timee000
    • 17. August 2012 um 17:58

    Hey Leute
    Ich will sehr viele Auswahlmöglichkeiten in einer Combobox machen per

    [autoit]

    GuiCtrlSetData($Combo1, "text|text1|text2|text3") ;...usw

    [/autoit]


    Wie kann man jetzt mehr als 4096 Zeichen in eine Zeile schreiben. Gibt es da eine möglichkeit in der nächsten Zeile einfach weiter zu machen?
    Ich habe schon etwas mit

    [autoit]

    $Array[...]

    [/autoit]

    gelesen aber konnte dies nicht wirklich umsetzen.
    Ich hoffe Ihr könnt mir helfen.

    Mfg timee000

  • _IELoadWait Problem

    • timee000
    • 25. Juli 2012 um 16:02

    Wenn du die Seite mit Firefox öffnest, dann schau dir mal die FF.au3 an. Dafür brauchst du aber das Firefox Addon MozRepl damit es funktioniert.

    Die Funktion heißt _FFLoadWait

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™