Beiträge von xSunLighTx3

    Danke für eure schnelle Hilfe

    die Variante 1 ist super muss nur schaun wo ich meine Aktion setze wenn denn sich dann die Maus bewegt.


    Danke Mario

    Einfach in die Action() Klasse. Schau dir ggf. Beispiel 2 nochmal an. Dort wird die Mausbewegung onevent getriggert. Ist an sich die schönere Lösung, wenn

    das Programm primär um Mausbewegungen geht.

    alpines ... ja - Danke - damit kann ich was anfangen ^^ ... wenn ich Win 7 hätte ... da ist das so wie du angibst.

    Aber unter Win 10 ist unter C:\Users\<UserName>\AppData\Local\ kein Autoit vorhanden ...


    Anscheinend gibt es diese Dateien gar nicht bei der Installation von AutoIt.

    Du musst SciTE wahrscheinlich manuell nachinstallieren.

    global:


    Code
    user:
    title.full.path=1

    Ich kann den Umlautfehler bei mir nicht reproduzieren. Habe es mit deiner Methode versucht, aber bei mir funktioniert alles problemlos.

    Vielleicht liegt es an einer Standard-Kodierung, die dein Windows oder Scitie nutzt. ?(

    Dann solltest Du sie mal als ANSI speichern.

    Bei UTF-8 wird der Datei EF BB BF (Dezimal : 239 187 191) vorangestellt. Das führt dazu, dass IniRead die erste Zeile 'überliest'. Ist die erste Zeile ein Kommentar, ist das egal.

    Bei Dir ist es aber die Sektion [Pfade] , die dann, wie bereits gesagt, komplett ignoriert wird.


    Gruß Musashi

    Das ist ja heftig, wusste ich auch noch nicht. Dachte man hat mit den Kodierungen "einfach" nur ne andere Kodierung für verschiedene Sprachen. Weshalb IniRead das jetzt überliest, verstehe ich aber immer noch nicht. ;(

    Was auch noch interessant wäre: Wie verhält sich IniWrite() im UTF-8 Modus. Wird dort direkt die erste Zeile beschrieben, wäre das ja theoretisch ein Fehler.


    Passiert das eigentlich nur bei der Funktion IniRead*() ? Wenn ich jetzt FileReadLine() o.Ä verwenden würde, hätte man dann das gleiche Szenario mit dem EF BB BF?

    Ich wollte das jetzt nicht ausprobieren, weil ich von der Sache bisher eh keine Ahnung habe. :/

    Zu InetGet: Ich habe die Funktion damals für einen Patcher verwendet. Dort hatte ich festgestellt, dass bei einem Abbruch die gedownloadete Datei quasi noch existiert, aber eben unvollständig ist. Wenn ich das Programm (meinen Patcher) anschließend neugestartet habe, wurde die Datei von dem Stand, wo der Abbruch stattgefunden hat, fortgeführt. Also theoretisch hätte man die Datei nicht löschen müssen (FileDelete), um sie anschließend erneut herunterzuladen. :D Szenario: ca. 20-100mb große Dateien (gepackt)


    Was mich halt extrem an dieser Funktion (InetGet) stört, ist die fehlende Einstellung zum Drossen der Bandbreite.

    Zudem könnte man auch sowas wie diff-patching (falls du das nicht sogar meinst) entwickeln, wäre auch geil. :D



    Das nur so am Rande. :P

    Moooin ISI, frohes neues hier!

    Bin wieder fleißig am Entwickeln mit einer netten IDE. ;)


    Ich habe noch ein paar Kleinigkeiten auf dem Herzen.


    Vorschlag - Suchen in Dateien:

    Mir ist aber aufgefallen, dass ich beim Durchsuchen (in Dateien) nach Keywords

    zwar Ergebnisse angezeigt bekomme, aber beim Öffnen der Datei eine neue

    Instanz geöffnet wird, statt eine bereits geöffnete Datei nur zu selektieren.

    Besser wäre es, wenn eine bereits geöffnete Datei nur ausgewählt wird.


    Vorschlag - Referenz Funktion:

    Eine Funktion, wie es die bei Eclipse z.B gibt, womit man bspw. über einen Hotkey

    auf eine Referenzfunktion durch einen Funktionsaufruf gelangt.

    Im Code ist beispiel ein Funktionsaufruf: SetVisible() und über F3 kommt man dann

    auf die eigentliche Funktion: Func SetVisible(). Ist ganz hilfreich für große Programme. :D


    Bug - Unerwartetes schließen:

    Beim Schließen des Skripts, welches innerhalb von ISN AutoIt Studio gestartet wurde (F5),

    passiert es abundzu, dass sich das Studio selbst schließt und das ohne irgendwelche Fehlermeldung

    oder das es eine Msgbox gibt, die das Schließen nochmal bestätigt (was bei mir eingestellt ist).

    Klingt sehr interessant. Ich habe damals auch mit Bots angefangen.

    Damals habe ich mich auch schwer mit GDI+ getan, aber im Prinzip ist der Aufbau recht einfach.


    Sorry, dass mein Beispiel von oben so nicht vollständig war. Ich habe ein anderes Beispiel im Anhang hochgeladen. :)


    Falls du Fragen hast, kann ich dir selbstverständlich weiterhelfen. ;)

    Bilder

    • btn1_norm.png

    Dateien

    So habe ich GDI mit Backbuffer in einer separaten GdiDraw() Funktion genutzt.

    Die Funktion kann man entweder in der Main Methode aufrufen (high cpu) oder über einen Trigger.



    Hier die GdiDraw() Methode:



    Ein paar Tipps von mir (persönliche Erfahrung):

    Ich würde AutoitOnExitRegister() nutzen, um GDI Objekte aus dem Speicher zu werfen. Dann kann man, um das Programm zu beenden, einfach Exit nutzen.

    Außerdem nutzt du außerhalb von Methoden lokale Variablen. Das macht keinen Sinn,

    da die Variablen außerhalb von Methoden immer Global sind. Und man sollte jede Variable

    entsprechend deklarieren, um Fehler vorzubeugen.

    Du nutzt in der Hauptschleife Sleep(10). Sofern GUIGetMsg() genutzt wird, ist Sleep() unnötig, da das ganze hier automatisch gedrosselt wird. Es ist eher kontraproduktiv, weil sich der Handler nach einem Event um 10ms verzögert.


    Aber nimm das ganze bitte nicht zu ernst, will dir damit nur etwas helfen. :P

    Falls es ein 3D Game ist, kannst du _WinAPI_Mouse_Event() verwenden.

    Für bessere Movements musste die Memory ausm Spiel auslesen und die Werte entsprechend mit memory write verändern.

    Dazu gibt es hier allerdings keinen Support. :D


    Einen Rekorder kannst du mit AutoIt vergessen. Naja es gibt sowas wie GhostMouse (selbst in au3 geschrieben). Aber für Games

    ist die Performance nicht geeignet. Hab das damals mal in SA:MP gemacht. Da sollte mein Makro Rekorder autmatisch die Ernte

    mit ner Maschine ernten. Am Ende musste ich heulend feststellen, dass das ganze viel zu ungenau war. ;(

    Vielleicht weil ich mir einen Song ansehen möchte, der GEMA technisch nur auf Youtube gespielt werden darf?

    Über YouTube direkt wird dieser ganz normal gespielt. Nur wenn es eingebettet ist, dann bringt er mir die Meldung.


    Auf jeden fall cool gemacht.

    Wieso kopfschütteln, würdest du das heute mit mehr Erfahrung anders machen?

    Ich glaube das liegt eher an deinem Rechenr bzw. der genutzten IP Adresse.

    AutoIt nutzt quasi einfach nur Internet Explorer (in diesem Fall Version 7), um auf Youtube zuzugreifen.


    Heute würde ich den Aufbau ganz anders gestalten.

    - den gesamten Code müsste man in Funktionen aufteilen

    - Variablen richtig deklarieren

    - unnötige While Schleifen bereinigen

    - objektorientierter arbeiten


    Zudem würde ich für solch ein Projekt wahrscheinlich html/js als gui nutzen.

    Danke für dein Feedback, ja damals habe ich da Wochen Arbeit reingesteckt.

    Wenn ich mir das heute anschaue, kann ich aber nur mit dem Kopf schütteln. ;(


    Mit dem Parser meinte ich eigentlich, dass der html code von Youtube nicht mehr korrekt verarbeitet wird.

    Also deine Fehlermeldung, welche direkt von Youtube kommt, habe ich nicht. Merkwürdig.. :/

    YouTube bietet eine API für den Player an, die der TE übrigens schon bei einem früheren Thread von mir erwähnt bekommen hatte.

    Sogar, die Features die er haben wollte: Bildschirmausschnitt als bmp zum Drücken

    Die API ist krass, hab mir das eben mal angeschaut. Das ganze könnte man eigentlich auch mit nem ie object im autoit gui automatisieren oder? :)

    IEembedded web browser (ie11) in ein Autoit gui und dann noch n schönes frontend html gui design. Das kann nur geil werden. 8)

    Klar lässt sich sowas mit AutoIt realisieren. :)

    Hab damals mal die Vision gehabt, so einen Player zu programmieren. War allerdings

    ein Vollnoob und hatte 0 Plan von Logik. :D


    Leider funktioniert der HTML Parser nicht mehr für das neue Youtube. Da müsste man noch etwas anpassen.


    Also bei mir passiert das selbe Wunder. Habe dann mal ne Funktion eingebunden, die checken soll, ob das Fenster auf dem Screen ist.

    Und tatsächlich wird das Fenster als "Partially viewable" deklariert. Also im Endeffekt ist das Fenster noch da und funktioniert auch (es fährt sich aus und der Status ändert sich),

    aber man kann es einfach nicht mehr sehen, ehe man wieder diesen Windows minimize/restore Button klickt. :(


    Das einzige was mir jetzt einfällt, wäre das Fenster auf "on top" zu setzen, aber ich glaube das hast du nicht vor.



    Andernfalls hätte ich da noch eine Bauernmethode: :D