Mein erstes AutoIT Projekt

  • Hallo,

    Aktuell mache ich ein Praktikum bei einer IT Firma.

    Von dem Chef habe ich die Aufgabe bekommen mich mit AutoIT zu beschäftigen.

    Situation:

    Zugriff auf den Rechner zum testen habe ich mit TeamViewer.

    Sterilisationsprogram funktioniert nicht.

    Um fehlende Daten zu vermeiden sollen log.files ausgedruckt werden.

    Das Program ist das einzige welches auf dem Rechner läuft.

    zum drucken der log-files muss ich folgende sachen machen.

    1. welchsel in die Log-Files (ist ein Tab oben auf der Seite)

    2. aktuellsten Log-File auswählen (ist ein Button "aktuelle Datei")

    3. Drucken ist ebenfalls nur ein Button. (Fertig)

    4. ab und an kommt eine Fehlermeldung die nach ca. 5 Sekunden mit OK bestätigt werden muss. (dann muss mit Punkt 2. weitergemacht werden)

    Das muss einmal alle ca. 90 Minuten gemacht werden. (kommt drauf an wie schnell neues Besteck gereinigt wird/werden muss)

    Ich hab schon etwas im Internet gesucht.... aber noch nicht wirklich eine mögliche Lösung gefunden.


    Ich wäre euch dankbar wenn Ihr mir einige Ansätze geben könnt.
    Wenn Ihr Fragen habt, versuche ich diese bestmöglich zu beantworten.

    Gruß
    Nico

  • Handelt es sich dabei um eine Applikation welche im Webbrowser aufgerufen wird? Ansonsten kannst du mir dem AutoIt Info Tool die entsprechenden Control ID's auslesen und diese via Control ControlClick einfach ansprechen. Packst noch ein paar If-Abfragen mit rein, ne hübsche Schleife und nen Timer der alle 90 Minuten triggert. Fertig :P

    Das ist zumindest die Quick & Dirty Variante. Die kannst du allerdings um einiges verbessern. Du hattest im anderen Thread erwähnt dass du "nicht viel mit Programmierung zu tun" hattest? Am einfachsten ist es erst mal bei deinem Rechner einfach den Windows Calculator aufzurufen und zu versuchen einzelne Buttons dort anzuklicken.

    Du hast per TeamViewer den Zugriff auf den Zielrechner, korrekt? Ist dort AutoIt drauf installiert oder kannst du zumindest das Info Tool darauf aufrufen? Ansonsten kommst du ja noch nicht mal an die Control ID's dran.

    Ich werde dir bei deiner Aufgabe helfen. Allerdings gebe ich dir nur soweit Hilfestellung sodass du die Dinge selber lösen kannst. Alles andere wäre für ein Praktikum für dein Chef vermutlich inakzeptabel. Hast du für die Aufgabe eine Deadline? | Nvm, die Frage hattest du mir schon beantwortet.

    2 Mal editiert, zuletzt von Yjuq (22. Januar 2021 um 11:04)

  • Hallo,

    entschuldigt das ich mich gestern nicht melden konnte. Hatte etwas Stress mit meiner Freundin.

    Professor Bernd Ich fange gerade erst mit AutoIT an. Aktuell versuche ich über Youtube Videos einiges zu lernen.

    Yjuq Quick&Dirty finde ich gut :D
    Auf dem Rechner installieren kann ich nicht. (sobald ich etwas in der Richtung versuche wird mein Bildschirm Schwarz.)
    Wenn ich das Info Tool nutze bekomme ich folgende Informationen: (Name der Praxis mit xxxx ersetzt)

    -----------------------------------

    >>>> Window <<<<

    Title: xxxx

    Class: TV_CClientWindowClass

    Position: 0, 120

    Size: 1920, 840

    Style: 0x16CF0000

    ExStyle: 0x00000100

    Handle: 0x0005066C

    >>>> Control <<<<

    Class: TV_REMOTEDESKTOP_CLASS

    Instance: 1

    ClassnameNN: TV_REMOTEDESKTOP_CLASS1

    Name:

    Advanced (Class): [CLASS:TV_REMOTEDESKTOP_CLASS; INSTANCE:1]

    ID: 214262xxxx

    Text: TV 3.0

    Position: 0, 33

    Size: 1904, 797

    ControlClick Coords: 976, 438

    Style: 0x56000000

    ExStyle: 0x00000000

    Handle: 0x00060782

    >>>> Mouse <<<<

    Position: 984, 591

    Cursor ID: 0

    Color: 0xE0E0E0

    >>>> StatusBar <<<<

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<

    TV_CClientToolBar

    Startseite

    Aktionen

    Ansicht

    Kommunikation

    Dateien && Extras

    TV 3.0


    >>>> Hidden Text <<<<

    Kommentar

    Strg+Alt+Entf

    Remote Update

    Fernsteuerung anfordern

    http://www.teamviewer.com

    Verbinde zu xxxx
    ------------------------------------


    ob ich das Info Tool installieren darf muss ich nachfragen.
    Eine Deadline habe ich nicht. Er würde sich nur freuen wenn ich das hinbekomme.
    Wenn ich keine Control IDs bekomme. Kann ich dann nur noch über die Position arbeiten?

    Das mit dem TaschenRechner auf meinem PC werde ich hoffentlich morgen versuchen können.
    bekomme da aber auch keine Control ID!?!
    nur:

    ControlClick Coords: 72, 306

    und Cursor ID: 0

    Wenn jemand Links zu Anfänger freundlichen Unterlagen oder Videos hat würde ich nich auch freuen :S

    schönen stressfreien Samstag

    Nico

  • Hatte etwas Stress mit meiner Freundin.

    Einfache Lösung: Immer sagen "Ja, Schatz, du hast recht Schatzt!" und auch so handeln! :P

    Aktuell versuche ich über Youtube Videos einiges zu lernen.

    Ich halte YouTube Videos für ungeeignet, um programmieren zu lernen!

    Wenn jemand Links zu Anfänger freundlichen Unterlagen oder Videos hat würde ich nich auch freuen

    Anfängerfreundliche Unterlagen und meiner Meinung nach die beste Anlaufstelle ist die hervorragende Hilfe von AutoIt:!:Ich kenne einige Programmiersprachen, aber keine Hilfe-Datei hilft so gut, wie die von AutoIt! Am meisten liebe ich die Beispiele, die bei unzähligen Hilfethemen dabei sind. Da du bei null anfängst, sollte das der richtige Ansatz sein, insbesondere weil es dir niemand beibringt, sondern du dir alles selbst beibringen sollst. (Zumindest entnehme ich das deinen Infos.)

    Tipp: Die Autoit Hilfe gibts auf Deutsch! :thumbup:

    Wenn jemand sagt: "Das geht nicht!" Denke daran: Das sind seine Grenzen, nicht deine.

  • zum Thema "Programmieren lernen":

    Spoiler anzeigen

    Anfänger freundlich ist auch immer eine Verständnisfrage.

    Ich fand es am am Anfang immer gut, aufzuschreiben, was soll wann passieren und in welcher Abhängigkeit (mit einfachen Sachen anfangen).

    Man lernt dann Stück für Stück immer mehr dazu, je komplexer die Aufgaben werden.

    Ob dazu deine aktuelle Aufgabe unbedingt geeignet ist, kann man sich sicherlich drüber "streiten".

    Auch fand ich es immer leicht/gut eine Rückmeldung mittels GUI zu bekommen, wenn man etwas neues programmiert hat.

    Wobei GUI hier in Autoit nochmal ein ganz eigenes Thema ist, wenn man sie mit anderen Programmiersprachen/Programmen vergleicht wo man einfach die GUI Objekte auf ein Fenster zieht und diesem eine oder mehrere Funktionen zuweist.

    Videos fand ich nur bei Problemen wirklich Hilfreich, wenn es auch darum ging, wo finde ich bestimmte Funktionen (innerhalb Scite etc.), eher weniger was die eigentliche Programmierung angeht.

    Zu deinem Problem: Was ich bereits in deinem anderen Post (und Yuq hier) bereits fragte, ist es ggf. interessant zu wissen ob das Programm, das du "steuern" sollst, eine Webseite (im Browser dargestellt) oder ein eigenständiges Programm ist!?

  • Hallo,

    Yjuq  Moombas

    Ich versuche halt von überall Informationen zu bekommen. Die Idee mit den Videos habe ich von einem der Auszubildenen, der hatte mir einen Link geschickt.
    Das mit dem aufschreiben was wann wie passieren soll/muss habe ich auch gemacht.
    Rückmeldung via GUI? Das hab ich mir schonmal angeschaut.... fand das aber ultra

    Es sieht für mich nach einem eigenständigen Programm aus. Nur nach der Information die ich bekommen habe (ich konnte selber nicht auf den Rechner zugreifen).
    Denke ich ist es eine Art Webseite, oder?

    WindowInfo

    >>>> Control <<<<

    Class: Chrome_RenderWidgetHostHWND

    Instance: 1

    ClassnameNN: Chrome_RenderWidgetHostHWND1

    Name:

    Advanced (Class): [CLASS:Chrome_RenderWidgetHostHWND; INSTANCE:1]


    Professor Bernd
    Nein niemals!!!!! wenn ich immer ja sage habe ich nichts mehr =O

    Die Hilfe in Autoit finde ich auch super

    Tipp: Die Autoit Hilfe gibts auf Deutsch! :thumbup:

    Wo pder wie finde ich die?

    danke schonmal
    nico

  • AutoIt Hilfe auf deutsch

    Gibt es auch als Download : https://autoit.de/offline-hilfe.zip oder innerhalb des SciTE-Editors

    Meinst du damit, dass man in SciTE eine Download-/Installationsmöglichkeit für die DE Hilfe hat? Oder dass man es von der SciTE4AutoIt3 Seite laden kann? Unter SciTE habe ich keinen Download Link gefunden, aber unter AutoIt. Aber der ist kaputt: "404 Not Found".

    Wenn jemand sagt: "Das geht nicht!" Denke daran: Das sind seine Grenzen, nicht deine.

  • Meinst du damit, dass man in SciTE eine Download-/Installationsmöglichkeit für die DE Hilfe hat?

    Stimmt, der Satz von mir ist etwas missverständlich :whistling:. Die DE-Hilfe läßt sich nicht aus SciTE heraus herunterladen/installieren.

    Nicolai :

    1. (Offline)-Hilfe (deutsch) herunterladen :

    -> https://autoit.de/offline-hilfe.zip

    Die .zip-Datei in ein geeignetes Verzeichnis entpacken und die Datei AutoIt.chm starten.

    2. Innerhalb des SciTE-Editors :

    • Allgemein : F1 drücken und man erhält eine Hilfeübersicht
    • Geht man mit dem Cursor auf einen (Standard)-Funktionsnamen ( z.B. MsgBox) und drückt F1, so erhält man die Hilfe zu dieser Funktion

    ==> Standardmäßig ist das aber die englische Hilfe passend zur installierten Version von AutoIt.

    Man kann, meine ich, auch die deutsche Hilfe in SciTE integrieren, aber das habe ich bisher nicht benötigt. Wie das ev. geht, kann Dir sicher z.B. Tweaky beschreiben.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Nicolai

    Ich kann dir einen Grundlagen Crashkurs geben. Ich habe momentan ziemlich viel Zeit und nicht viel zu tun.

    Automatisierungen von Webbrowsern mit AutoIt ist dann auch etwas schwieriger. Eigentlich fehlt uns sowieso noch eine Menge an Informationen um dir überhaupt effektiv helfen zu können. Darfst du Screenshots von der Software hochladen? Wenn es sich wirklich um eine Webapp handelt dann sitzt du da als Anfänger noch in 3 Monaten dran. :P

    Am besten wäre es mal wen in der IT Firma zu fragen (der sich auch mit AutoIt auskennt) dass er dir alle notwenigen Informationen zukommen lässt um das auch zu automatisieren oder ggf. um Hilfestellung im Internet zu erfragen.

  • Rückmeldung via GUI? Das hab ich mir schon mal angeschaut.... fand das aber ultra

    Naja, damit ist gemeint, das wenn man z.B. einen Knopf drückt, auch sieht das etwas passiert (z.B. ein simples Würfelspiel oder eine "Ampel" etc.).

    Es wird nachher viel beim Programmieren geben, wo du es nicht mehr sehen kannst, sondern wissen solltest was du machst und dann erst ganz spät schauen kannst ob das passiert was du erwartest.

    In deinem Fall wäre das wohl "Mauszeiger auf Position XY bewegen - Klicken - Warten - wieder von vorne" und das so lange bis jemand auf Stop klickt (besser wäre das natürlich über die Control ID's, wenn du sie auslesen könntest oder über Browsersteuerung).

  • Hallo,

    ich darf Bilder posten auf denen die Praxis nicht erkennbar ist.

    Ich hoffe man kann alles soweit erkennen.
    Sobald sich auf dem Startbildschirm (rechts) die Aufgaben auf (1) ändern kann ich darauf klicken und komme in die Protokolle. Bevor sich die Aufgabe nicht geändert hat ist der Button inaktiv. (Startbildschirm.PNG)
    Auf der folgenden Seite muss ich das "Aktuelle Protokoll" auswählen
    In den Protokollen ist oben die Leiste mit dem Drucksymbol. (Reiter-Drucken.PNG)
    ab und an kommt eine Fehlermeldung (Fehler1.PNG). Dann muss ich wieder das Aktuelle Protokoll auswählen und dann Drucken.

    nach ca. 5 Minuten ohne Eingabe geht er automatisch zurück auf den Startbildschirm.
    Da würde dann beim nächsten Durchgang alles von vorne starten.

    Hoffe das hilft etwas.

    Selbst mit AutoIT Info auf dem Rechner bekomme ich nur:

    ControlClick Coords
    Color
    Position
    und
    Chrome_RenderWidgetHostHWND
    IDs sind nicht auslesbar bzw. stehen immer auf 0

    Nico

  • RIP - Da wurde dir ja was schönes aufgebrummt. x)

    Es sieht stark danach aus dass es sich dabei um eine Webapp handelt. Das könnte also etwas tricky werden für einen Anfänger :)

    Erst einmal: Moderne Webbrowser Automatisationen laufen über den Selenium WebDriver. Die "Mainstream" Browser unterstützen dies mit den neueren Versionen. Hier mal eine Liste aller relevanten Links um dir einen generellen Überblick zu erschaffen:

    https://en.wikipedia.org/wiki/Headless_browser

    https://www.autoitscript.com/forum/topic/19…rsion-01162021/

    https://developers.google.com/web/updates/20…headless-chrome

    https://developers.google.com/web/updates/20…arma-mocha-chai

    https://www.selenium.dev/documentation/en/webdriver/

    https://www.w3.org/TR/webdriver1/

    https://chromium.googlesource.com/chromium/src/+…river_status.md

    Well,... Das könnte wahrscheinlich mehr Fragen aufwerfen als es hilfreich ist...

    Hmn, ich würde vorschlagen du fragst erst mal deinen Chef ob es möglich ist den WebDriver für Goolge Chrome (ich schätze mal das wird der Browser sein der für die Webapp genutzt wird?) herunterladen und auf dem Rechner installieren kannst. Den Treiber findest du hier: https://chromedriver.chromium.org/downloads

    Wenn es möglich ist sag bescheid, dann können wir uns andere Methoden sparen und ich helfe dir dann in dieser Richtung weiter. Ansonsten müssen wir halt auf andere Mittel zugreifen...

    Sag mal, wie genau rufst du eigentlich die Anwendung auf? Öffnest du eine Internetseite oder ist da ein Icon auf dem Desktop? Ich möchte nur sichergehen dass es bei der Applikation auch wirklich um eine Webapp handelt. Versuch mal nen Rechsklick irgendwo zu machen und schau mal ob du da etwas hast wie "Quelltext ansehen" oder "Element untersuchen".

    Vielleicht ist das auch ein wenig Overkill für eine Anwendung die nur alle 90 Minuten was "anklicken" soll... Vielleicht hat ja noch jemand im Forum einen andere Vorschlag der genauso gut funktionieren würde. Ich würde halt Mausbewegungen vermeiden wollen. :P

    2 Mal editiert, zuletzt von Yjuq (31. Januar 2021 um 05:30)

  • Ich darf noch auf das Wiki im engl. Forum zu WebDriver hinweisen https://www.autoitscript.com/wiki/WebDriver