Speichern von zwei verschiedenen Mousepositionen

  • Super vielen Dank für die ausführliche Erklärung.

    Es funktioniert.

    Richtig ist hier Round($g_iUserAppliedDPI/$g_fDPIDefault, 2).

    Werde in Zukunft mehr mit AutoIT machen. Ist richtig cool.

    Vielen Dank

    Gruß

    HoT

  • Es ist übrigens möglich, mehrere Bildschirme mit unterschiedlichen DPI Einstellungen zu haben.

    Ich hab z.B. 4 Bildschirme; 2x 4k mit 150% und 2x FHD mit 100%.

    Das nachfolgende Script fragt die Informationen ab und gibt sie aus. Vielleicht bist du ja motiviert, das in dein Script zu integrieren ;)

    Die Ausgabe von meinen Bildschirmen würde wie folgt aussehen:

    Edit: Habs ausversehen in Englisch geschrieben; habs auf Deutsch geändert :sweat_smile:

  • Also ihr seid ja krass drauf.

    Habe das von Musashi mit der Registryabfrage schon eingebaut.

    Habe auch zwei Bildschirme einen Großen und einen Kleinen.

    Werde mal versuchen dein Script mit einzubauen, Kanashius.

    Habe mittlerweile auch noch eine Abfrage eingebaut, in welchem Ordner der Screenshot gespeichert werden soll.

    AutoIT kann ja wirklich sehr viel.

    Bin begeistert. Und eure Unterstützung ist der Hammer.

    Vielen Dank

  • AutoIt kann theoretisch alles umsetzen, was du am PC so machen kannst. Es ist aber keine gute Wahl für low-level Programmierung. Dafür sollte man eher eine Hochsprache (z.b. Rust, C, Java,...) nutzen.

    Z.B. Byte manipulation ist zwar möglich mit BitAnd, BitOr,... , aber recht eingeschränkt und langsam. Dafür ist AutoIt nicht ausgelegt. Du brauchst aber unter anderem solche Operationen um z.B. PDFs direkt zu erstellen, bearbeiten,...

    Da es nicht dafür ausgelegt ist, wirst du auch nicht wirklich Bibliotheken (in AutoIt UDFs genannt) dafür finden. Selbst wenn sich jemand den Aufwand machen würde wäre die Performance sehr langsam,...

    Der Hauptfokus von AutoIt ist Automatisierung (und ich würde z.B. auch schnelle GUI Erstellung,... dazuzählen).

    Deshalb wäre der sinnvollste Ansatz um mit AutoIt ein PDF zu erstellen die Automatisierung einer Vorhandenen Anwendung.

    Ich hab z.B. gerade kurz danach gesucht und folgendes Programm gefunden: https://imagemagick.org/script/download.php#windows

    Es unterstützt CLI (Commandline Arguments), was die beste Methode der automatisierung ist: https://imagemagick.org/script/command-line-processing.php

    (Ich hab nach "image to pdf portable commandline" gesucht)

    Dementsprechend kannst du das dann z.B. mit Run('convert.exe "image.jpg" -quality 100 image.pdf') in AutoIt ausführen (die convert executable ist in ImageMagick enthalten). (Ich habs nicht getestet, sollte aber so/so ähnlich funktionieren).

  • Danke dir.

    Habe die Möglichkeit gefunden, im Explorer über den send("^b") und send("p") die Datei zu drucken und da den PDF-Drucker gewählt.

    Hat gut funktioniert.

    Viele Grüße

    Die GUI Erstellung werde ich mir demnächst mal genauer ansehen.

  • Habe die Möglichkeit gefunden, im Explorer über den send("^b") und send("p") die Datei zu drucken und da den PDF-Drucker gewählt.

    Das wäre dann eine schlechte Methode der Automatisierung.

    1. Funktioniert es z.B. bei mir nicht. Ich benutzt Windows 10 (Ich vermute, du nutzt Windows 11) und dort funktioniert die Tastenkombination nicht

    2. Wenn du Send() benutzt darf der Nutzer zu dem Zeitpunkt nichts machen. Ansonsten kann ziemliches Chaos entstehen und dein Scribt funktioniert nicht mehr richtig. Send ist die schlechteste Methode der Automatisierung.

    Danach folgt ControlSend. Dort kann zumindest der Nutzer keinen Blödsinn machen, indem er deinem Script dazwischen funkt, aber du hast immernoch Fenster, die die ganze Zeit auf und zu gehen und dem Nutzer dazwischen funken. Außerdem bekommst du Probleme, wenn z.B. Microsoft beim nächsten update den Explorer ändert und deine automatisierung nicht mehr funktioniert.

    Deshalb ist die beste Möglichkeit die automatisierung mit CLI. Dort bekommt der Nutzer nichteinmal mit, dass im Hintergrund irgendetwas passiert. Solange du die Software nicht updatest wird es immer funktionieren und CLI commands werden selten so verändert, dass sie nicht mehr funktionieren; im Gegensatz zu Fenstern, die oft überarbeitet werden.

    Wenn du dann noch ein portables Programm verwendest muss der Nutzer nichts installieren, du lieferst die benötigten Dateien mit dem Programm aus und kannst sicher sein, dass sie sich nicht durch automatische Updates verändert werden. Das garantiert die beste Stabilität deines Programmes und sorgt dafür, dass es auch bei jedem laufen wird. Du hast quasi die "volle Kontrolle" und sorgst dadurch für die wenigsten Dinge die sich ändern könnten um Probleme zu machen, sodass dein Programm am Ende sehr stabil läuft.

  • Ah ok. Wieder was gelernt. Verstanden.

    Ich werde in Zukunft nach portablen Programmen suchen, die man über CLI ansteuern kann.

    Ich nutze übrigens Win10.

    Danke dir.