Beiträge von xSunLighTx3

    Moin zusammen,


    ich nutze die EzMySql Library, um mich auf eine MySql-Datenbank zu verbinden:
    https://www.autoitscript.com/f…ql-databases-with-autoit/

    https://www.autoitscript.com/f…-mysql-udfs-without-odbc/


    Nun gibt es aber das Problem, dass ich via SSH Tunnel keine Verbindung aufbauen kann. Es erscheint dann folgender Fehler:

    https://i.imgur.com/TO75xaw.png


    Zum Verbinden nutze ich die Funktion aus der Lib: _EzMySql_Open(). Leider kann ich daraus keine weiteren Verbindungsmöglichkeiten

    auslesen, wie z.B "use ssl" oder "use ssh tunnel". So habe ich folgende Parameter genutzt:

    Code
    host: localhost
    user: root
    password: xxx
    database: xxx
    port: 10022


    Gibt es da vielleicht eine Möglichkeit, dass man auch via SSH Tunnel verbinden kann? Mit Navicat kann ich problemlos zur Datenbank verbinden.


    Navicat Einstellungen:
    https://i.gyazo.com/thumb/1200…86e1943edcd847892-png.jpg

    https://i.gyazo.com/thumb/1200…595db70f3cc618067-png.jpg

    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)