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

Beiträge von AutoMit

  • Kindern etwas spielerisch beibringen - Schritt für Schritt Anleitungen

    • AutoMit
    • 3. Januar 2017 um 16:51

    Danke @chesstiger

    Unter Windows 8 funktioniert das hier ohne Grafikfehler - das ist die gute Nachricht :)

    "Child Windows" in AutoIt sind Neuland für mich.

    (1)

    Wenn ich „ISN Autoit Studio“ nutze, müsste ich den Controls folgende Parameter mitgeben:
    $WS_CHILD
    $GUI_WS_EX_PARENTDRAG

    Habe ich das soweit richtig verstanden?
    Kann ich so jedes Control (Button, Image, Icon) zu einem "Child Window" machen?

    (2)

    Verschiebe ich ein violettes "Drag-Me-Feld" auf das grüne "Ziel", so erscheint das violette Feld hinter dem grünen Feld.

    Ich habe noch nicht die "Schraube" im Script finden können, an der ich "drehen" muss, um das "Drag-Me-Feld" über das "Ziel" zu legen - welche "Schraube" ist es?


    @all

    Drag an Drop scheint ein sehr interessantes Feld. Wer dazu weitere Script-Beispiele beitragen kann, die für obiges Thema geeignet sind, bitte hier einfügen.

  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • AutoMit
    • 3. Januar 2017 um 16:27
    Zitat von Kanashius

    Du kannst die WM_LBUTTONDOWN oder WM_LBUTTONUP Message registrieren (GuiRegisterMsg).

    Danke Kanashius. Zur Erkennung des Doppelklicks nehme ich hier auch einen Timer, da es laut URL keinen Parameter "Doppelklick" gibt.

  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • AutoMit
    • 3. Januar 2017 um 16:11

    Hallo alpines, vielen Dank - das sieht sehr interessant aus - und besonderen Dank für die Codezeilen.

    Ich komme auf 140 ms minimal - typisch um 200 ms bei Doppelklick.

    Caption des Fensters
    ==================

    Ich habe mir das Beispiel aus der Hilfe zu GUIGetCursorInfo() erneut angesehen und vor der Fragestellung damit experimentiert.
    "$array[4] = ID des Controls, über dem sich der Mauszeiger gerade befindet (0 wenn nicht über einem Item)"
    Das bedeutet, das eine freie Fläche auf der Form ebenso wie die Caption die ID 0 haben.

    Wie erkenne ich zuverlässig, dass ich der Doppelklick ... auf die Caption gesetzt wurde?

    Gibt es für einen Doppelklick (L/R) auf die Caption eine eindeutigere Kennzeichung als über die ID (GUIGetCursorInfo())?

  • Doppelklick auf die Fensterleiste (Caption) einer AutoIt GUI auswerten

    • AutoMit
    • 3. Januar 2017 um 12:55

    Hallo,

    was ist der sicherste Weg, um festzustellen, ob mit der Maus ein Linksklick, Doppelklick, Rechtsklick (ggf. in Verbindung mit shift und / oder strg) auf die Caption einer AutoIt-GUI erfolgte?

    Ziel: jeweils eine benutzerdefinierte Funktion aufzurufen, wenn einer der obigen Aktionen auf die Caption der Form registriert wurde.

    Mausklick auf Controls wie Button auswerten, das klappt. Wie macht man das bei der Form (Caption)?

    Danke :)

  • Kindern etwas spielerisch beibringen - Schritt für Schritt Anleitungen

    • AutoMit
    • 3. Januar 2017 um 12:18

    Hallo,

    alle gut im Jahr 2017 angekommen?, dann auf in gutes 2017 :)

    Ich bin auf der Suche nach Anregungen, wie man Schritt für Schritt Anleitungen mit AutoIt auf eine Oberfläche bringen kann,
    die Kinder spielerisch mit der Maus in die richtige Reihenfolge bringen können.

    Kurz gefasst: Objekte (Button, Icons, Label, Bilder) per Drag / Drop in die richtige Reihenfolge verschieben + Auswertung der Reihenfolge.

    Beispiel

    1 Spielsachen wegräumen
    2 Händewaschen
    3 Teller holen
    4 an den Tisch setzen
    5 essen

    Diese Punkte sind auf einer Oberfläche durcheinandergewürfelt zu lesen oder als Bild dargestellt.
    (sowie zusätzlich zwei Begriffe, die nicht dazugehören)


    essen
    Traumlandreise
    an den Tisch setzen
    Händewaschen
    Spielsachen wegräumen
    Teller holen
    Hund ausführen


    Die "Begriffe" sind wie Spielkarten frei auf der Oberfläche ausgebreitet.


    Mit der Maus sollen die Elemente in die richtige Reihenfolge verschoben werden.


    Wenn die richtige Reihenfolge erreicht wurde, erscheint eine Meldung.

    Auf der Oberfläche gibt es einen "Papierkorb", so dass die Elemente, die nicht zum Thema gehören, vom Kind erkannt, mit der Maus in den
    „Papierkorb später“ geschoben werden können.
    (Aus obigen Beispiel wären das die Begriffe: „Traumlandreise“ und „Hund ausführen“.)

    Das ist eine erste Idee.

    Wie würdet ihr so eine Schritt für Schritt Anleitung für Kinder aufbauen?
    (inklusive Laden unterschiedlicher Themen, vielleich ini-Datei?)

    Gibt es hier im Forum bereits vergleichbare Beispiele, bei denen es darum geht, Elemente auf einer Oberfläche mit der Maus und Drag and Drop zu sortieren und die Reihenfolge zu prüfen?

    Danke :)

  • Script wird langsamer, wenn die Maus nicht bewegt wird?!

    • AutoMit
    • 16. Dezember 2016 um 00:08
    Zitat von Cape-City

    Jetzt ist es nach wie vor alles in einer Func, allerdings mit einer Select-Abfrage und @GUI_CtrlId ist mein bester Freund


    Poste bitte Dein umgestricktes Script - dann lässt sich das leichter nachvollziehen. Danke :)

  • Fensterklasse ermitteln

    • AutoMit
    • 15. Dezember 2016 um 23:58

    Ich ahnte dass es einfach ist – mein Fehler war, dass ich nach „Fensterklasse“ und nicht nach „Klasse“ gesucht habe.


    Eingebaut – getestet – funktioniert – vielen Dank und einen schönen Abend alpines!


    Grüner Haken ist gesetzt :)

  • Fensterklasse ermitteln

    • AutoMit
    • 15. Dezember 2016 um 23:11

    Hallo,


    Fensterklassen werden in den meisten Skripten verwendet.


    Mit dem AutoIt-Info-Tool kann die Fensterklasse von den meisten Fenstern ganz leicht ausgelesen werden.


    Wie lese ich mit einem eigenen AutoIt-Skript die Fensterklasse des Vordergrundfensters aus?

    Fenstertitel und Prozessid habe ich ausgelesen. Das FensterHandle des Fensters habe ich ebenfalls.

    Wie komme ich mit diesen Daten an die Fensterklasse des Fensters?

    WinGetClassList bringt eine lange Liste von Fensterklassen, die mir an dieser Stelle nicht weiterhilft.
    Einen Befehl wie WinGetClass fand ich nicht. Gibt es sowas?

    Beispiel:
    Notepad -> Fensterklasse: Notepad
    FireFox -> Fensterklasse: MozillaWindowClass
    ...

    Welche Möglichkeiten gibt es noch, die Fensterklasse mit den genannten Daten (oder anderen Daten) zu ermitteln?

    Danke :)

  • Tooltip Icon auslesen - vom aktuell angeklickten Icon im Systray

    • AutoMit
    • 15. Dezember 2016 um 22:58

    Hallo Kanashius,

    das sieht interessant aus - ich bekomme es leider nicht zum laufen.

    Unter Windows 8 hat das Systray folgende Klasse: Shell_TrayWnd


    NotifyIconOverflowWindow und "Überlaufinfobereich" kann ich mit dem AutoIt-Info-Tool nicht erkennen ... geht wohl so auch nicht.
    Ist in diesem "Überlaufinfobereich" der Tooltip enthalten?

    @all

    Ich ergänze meine eingangs gestellte Frage:


    Ich bewege die Maus auf ein Icon im Systray und ein Tooltipp erscheint (von dem ich den Text möchte = Ziel).
    Ich kann die Mausposition speichern bezogen auf das Fenster mit der Klasse Shell_TrayWnd.
    Nur wie kann ich mit AutoIt feststellen, über welchem Icon ich mich befinde und wie dessen Tooltipp lautet?

    Ich habe bei meiner Suche eine Funktion gefunden, die mir alle Tooltipps aller Icons ausgibt, aber das hilft (wohl) nicht weiter, da ich genau den Tooltip brauche, über dem sich die Maus befindet.

    ... mh ...

  • globale Variable setzen - auswerten im Unterprogramm

    • AutoMit
    • 15. Dezember 2016 um 22:50

    @misterspeed

    Das klingt interessant - magst Du dazu ein Code-Beispiel posten?

    @4ern

    421 Downloads - das Interesse von vielen ist da :) Danke für den Tipp.

    @all - vielen Dank für die interessanten Anregungen und einen besinnlichen 4. Advent.

    Grünen Haken gesetzt (Code-Beispiel falls möglich bitte noch ergänzen).

  • globale Variable setzen - auswerten im Unterprogramm

    • AutoMit
    • 13. Dezember 2016 um 15:57

    Vielen Dank - das sind gute Anregungen und die meisten Varianten verstehe ich (ich habe zwar noch keinen Code dafür, aber über try and error finde ich den bestimmt).

    Zitat von alpines

    oder einer UDF die genau so etwas anbietet

    Bitte erkläre mir das näher - für diese Idee habe ich keinen Ansatz, wie ich das programmieren könnte. Oder meinst Du "nur", dass ich z.B. eine "versteckte GUI" Funktion in eine UDF auslagere?

  • Tooltip Icon auslesen - vom aktuell angeklickten Icon im Systray

    • AutoMit
    • 13. Dezember 2016 um 13:29

    Hallo,

    ich klicke im Systray auf ein Icon. Wie kann ich den Tooltipp von genau diesem Icon auslesen?

    Ich möchte den Text des Tooltipps in einer Variablen speichern und weiter verarbeiten.


    Danke :)

  • globale Variable setzen - auswerten im Unterprogramm

    • AutoMit
    • 13. Dezember 2016 um 13:18

    Hallo,

    wie muss ich folgendes Script ändern, dass die im Hauptprogramm definierte Variable im Unterprogramm vorhanden ist und ausgegeben werden kann?
    Ich brauche die Konstruktion mit shellexecute. Include ist keine Lösung. Wie kann eine Variable von einem AutoIt-Programm zum anderen AutoIt-Programm übergeben werden?

    AutoIt: Hauptprogramm.au3
    Global $test
    $test = "test"
    
    
    $exe_AutoIt = "c:\Autoit\AutoIt3_x64.exe"
    $au3_Datei = "Unterprogramm.au3"
    
    
    $Script_starten = ShellExecute ($exe_AutoIt, '"' & $au3_Datei & '"')


    AutoIt: Unterprogramm.au3
    MsgBox(0,"",$test)
    Code
    MsgBox(0,"",$test)
    MsgBox(0,"",^ ERROR
    
    
    Error: Variable used without being declared.


    Danke :)

  • Verknüpfung oder Script

    • AutoMit
    • 26. November 2016 um 19:52

    Grünen Harken gesetzt - ich nehme erstmal $cmdlineraw. Danke @misterspeed für den Tipp! "/ErrorStdOut" wird hier auch ausgegeben.

    Es liegt wirklich in der Natur der einzelnen Scripte. Die laufen perfekt über den Interpreter, weil z.B. dlls eingebunden werden etc. Sie können nicht aus dem Editor laufen.
    Und daher ist ein entsprechender Hinweis aus dem Script hilfreich, wenn man das Script versehentlich aus dem Editor und nicht über den Interpreter startet. Somit kein Problem.

    Wenn jemand noch alternative Ideen hat, wie man den Unterschied zwischen Start aus Editor und Start per Verknüpfung kennt - bitte hier ergänzend posten.

  • AutoIt-Script-Zeilennummern anzeigen in kompillierten exe Dateien

    • AutoMit
    • 26. November 2016 um 19:39
    Zitat von Kanashius

    Nun. Log-Dateien werden geschrieben und zeigen dem Programmierer, wo sich das Programm befindet.

    Wie kann ich genau das in AutoIt für ein AutoIt-Script realisieren?

  • AutoIt-Script-Zeilennummern anzeigen in kompillierten exe Dateien

    • AutoMit
    • 26. November 2016 um 19:04

    Euren "Scherz" lasse ich mal kommentarfrei ...

    Zitat von autoiter

    du möchtest etwa in der Konsole mitverfolgen, welche Skriptzeile gerade ausgeführt wird. Das geht nicht.

    zum Thema. Fehler schleichen sich schnell mal in ein Script / Programm ein. Wenn Programmierer in zig tausend Zeilen Code einen Fehler suchen, dann wird die Fehlermeldung oder ein Absturz oder ..., die die exe Datei erzeugt, häufig einen Hinweis auf jene Stelle liefern, an der im Quellcode zu suchen ist.


    *** Ist es in AutoIt möglich, eine eigene einfache Fehlerroutine zu schreiben? Also dass man z.B. die AutoIt-Fehler-Messagebox der exe-Datei durch eine eigene Funktion und / oder Messagebox ersetzt, die z.B. eigene definierte Variablen anzeigt? Das wäre schon hilfreich, weil man dann Variablen belegen und ausgeben könnte, auch wenn das Script als exe ausgeführt wird und in einen Fehler läuft. ***

    Es muss doch irgendeine Möglichkeit geben, nachvollziehen zu können, an welcher Stelle im Script die exe Datei gerade was abarbeitet.

    Und wenn es über eine Logdatei ist, .... irgendwas sollte es doch geben, damit man nachvollziehen kann, was die exe Datei gerade macht. Das man das in das Script vorher einprogrammieren muss, ist klar.

    Meine Bitte an Euch ist, mir zu sagen, welche Möglichkeiten Ihr kennt oder welche Ideen Ihr habt, um sowas im Script umzusetzen.

  • Verknüpfung oder Script

    • AutoMit
    • 26. November 2016 um 18:53

    Vielen Dank für die sehr interessanten Ausführungen.

    Ich war fälschlicherweise davon ausgegangen, dass in der Zeile
    "C:\Autoit\AutoIt3_x64.exe" "d:\test\test.au3"
    der Ausdruck "d:\test\test.au3" ein Parameter ist.
    Das ist leider nicht so, wie ich Deinen Ausführungen entnehmen kann.

    Parameter können in meiner Fragestellung ignoriert werden, das war ein Missverständnis.

    Zu Deiner Warum-Frage:

    Ich möchte eine Fehlermeldung ausgeben, wenn das Script aus dem Editor heraus gestartet wurde,
    weil es Funktionen gibt, die nur per Interpreter (mit AutoIt3_x64.exe) oder als kompillierte exe Datei richtig ausführbar sind.

    Ich suche also "nur" eine Unterscheidung im Script zwischen Aufruf per Interpreter (mit AutoIt3_x64.exe) und Aufruf des Scripts aus dem Editor.


    Wäre $cmdlineraw dafür ebenfalls Deine erste Wahl?

  • Verknüpfung oder Script

    • AutoMit
    • 26. November 2016 um 17:05

    Hallo,

    (a)

    Wie kann ich feststellen, ob ein Skript über eine Windows-Verknüpfung wie zum Beispiel:

    "C:\Autoit\AutoIt3_x64.exe" "d:\test\test.au3"

    gestartet wurde?

    @Compiled unterscheidet nur zwischen exe und Script.

    (b)

    $CmdLine[0] ist 0, obwohl ein Parameter bei der Verknüpfung übergeben wurde, wie oben zu sehen ist.

    Wo liegt mein Fehler? Warum ist cmdline = 0 ?

    Eure Erfahrungen sind gefragt.

    Danke :)

  • AutoIt-Script-Zeilennummern anzeigen in kompillierten exe Dateien

    • AutoMit
    • 26. November 2016 um 16:44

    Das mit der Fehlermeldung in der kompilierten exe-Datei ist nur ein Beispiel.


    Deswegen heißt das Thema auch „Zeilennummern in kompillierten exe Dateien“. Ich habe es etwas angepasst in „AutoIt-Script-Zeilennummern anzeigen in kompillierten exe Dateien“.


    Ich möchte - wenn eine AutoIt-exe-Datei ausgeführt wird - sehen, welche Skriptzeile gerade ausgeführt wird. Am einfachsten über die zugehörige Zeilennummer im Script.


    Und dafür suche ich eine Lösung.

  • AutoIt-Script-Zeilennummern anzeigen in kompillierten exe Dateien

    • AutoMit
    • 26. November 2016 um 14:29

    Hallo,


    wenn eine exe Datei kompiliert ist, wird mit dem Befehl „@ScriptLineNumber“ immer die Zeilennummer „-1“ ausgegeben. Soweit auch aus der Hilfe entnehmbar.


    Welche praktischen Workaround kennt oder nutzt Ihr, um die Script-Zeilennummern bei einer Fehlermeldung, die bei Ausführung der kompilierten exe an irgendeiner Stelle erscheint, für das Skript nachvollziehbar anzeigen zu lassen?


    Die aufwändigste Lösung, die mir einfällt, ist es, vor jeder Befehlszeile eine Variable $Zeilennummer = ... einzufügen. Aber selbst dann würde bei einer Fehlermeldung durch die kompilierte exe Datei diese Zeilennummer nicht ausgegeben werden. Oder gibt es Möglichkeit, diese bei einer Fehlermeldung anzeigen zu lassen?
    ... z.B. eine Funktion, die immer dann ausgeführt wird, wenn in der exe Datei eine Fehlermeldung angezeigt wird?


    Wie schafft man den Spagat, bei einer Fehlermeldung in einer kompilierten exe Datei, die zugehörige Zeile im Skript zu finden?

    Wie könnte man eine Log-Datei erstellen, die beim Ausführen einer exe Datei jede Befehlszeile speichert? Geht wahrscheinlich nicht auf Grund der exe Struktur.


    Nicht immer ist es so einfach, dass man aus dem Kontext auf die Stelle schließen kann, wie im folgenden Beispiel:


    ShellExecute("r:\123")

    Fehlermeldung der kompilierten exe-Datei:

    [Window Title]
    r:\123
    [Content]
    "r:\123" konnte nicht gefunden werden. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben und wiederholen Sie den Vorgang.
    [OK]

    Am besten wäre es natürlich, wenn es fehlerfrei läuft. Aber wenn auf dem PC was erstellt wird, was als exe auf dem Laptop in einen Fehler läuft, ist die Suche schon kompliziert. Noch komplizierter wird es, wenn ein Freund die exe auf seinem Rechner nutzt und es kommt dort eine Fehlermeldung, die keinen Bezug auf die Scriptzeile erkennen lässt.

    Eure Erfahrungen sind gefragt.

    Danke :)

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™