Mausklicks - Wie geht das?

    • Offizieller Beitrag

    Hier mal als Ansatz, wie du auf diese Controls zugreifen kannst.

    [autoit]

    ControlClick("Spieler und Trainer verwalten", "", "[CLASS:ThunderRT6FormDC; INSTANCE:68]")

    [/autoit]

    Zu finden in der Hilfe: Using AutoIt ==> Controls

    Es gibt allerdings Controls, die "AutoIt-Resistent" sind. Aber probiers erst mal aus. Einzeln für alle Controls, die du ansprechen möchtest.
    Wenn nichts hilft, teste ob du per Tastaturbefehle (TAB, SPACE, BildAuf..etc.) auch zum Ziel kommen kannst. Dann könntest du alternativ mit Send() arbeiten.

    Viel Erfolg.

  • @ peethebee
    Das hatte ich schon verstanden.
    Ist auch nicht das Problem. Kontextmenü ginge erst ab 6.Mausklick,
    aber selbst dann sollte auf diesen (mit dem 6.Mausklick erstellten) ersten
    Eintrag im 2. Fenster geklickt werden. Ich wüßte aber nicht,
    wie ich den Eintrag skriptmäßig ansprechen sollte.

    Was ich gerne hätte steht 4 Beiträge höher.

    Das Programm um das es geht gibt's hier: [URL=http://www.vmlogic.net/cms/component/option,com_frontpage/Itemid,1/]Das Fußball Studio[/URL]
    Den "MyMedia Organizer dazu gibt's dort im Downloadbereich unter
    "Special Services".
    Wie das mit MYMedia funktioniert, steht ausführlich in der Hilfe-PDF.

    MfG Osterhase :)

    3 Mal editiert, zuletzt von Osterhase (13. November 2007 um 13:54)

  • @ BugFix
    Danke, allerdings führt der Link http://www.autoit.de/dokumentation/…ontrolclick.htm
    (hab ich aus deinem Post kopiert) bei mir ins Nichts...
    Hab' ich schon wieder was falsch gemacht ?

    Cursortasten rauf und runter würde im 1. Fenster funktionieren.
    Tabs auch - brauch ich aber erst mal nicht.

    Der durch die Cursortasten ausgewählte Eintrag
    müsste dann aber noch mit 'nem Doppelklick "belegt" werden.

    Mit der AutoIt-Hilfe allein komm' ich nicht klar.
    Bin absoluter Programmierlaie.

    Vielleicht könntest Du mir eher helfen,
    wenn Du das Programm hättest von dem ich rede ?
    Es geht dabei um Fußballstatistik (Freeware), siehe einen Beitrag höher.

    MfG Osterhase :)

    9 Mal editiert, zuletzt von Osterhase (13. November 2007 um 13:57)

  • also ich hatte das programm auch mal.

    finds aban ich wirklich gut da ich mich auch nich für fußball interesiere ;)

    @Osterhase: wie oft sollst du deine beiträge eigentlich noch editieren?
    einen beitrag 9 mal 8| is das nich ein bisschen übertrieben?

    Einmal editiert, zuletzt von .::Mignon::. (13. November 2007 um 14:00)

  • Ich hab' mal folgendes ausprobiert (nach Vorschlag von BugFix):

    [autoit]

    ControlClick("Spieler und Trainer verwalten", "", "[CLASS:ThunderRT6FormDC; INSTANCE:68]"
    MouseClick("left", 156 , 29, 2, 0)

    [/autoit]

    Da landet der Cursor oben links im 1.Teilfenster,
    also auf den absoluten Koordinaten
    aber nicht in der "68". (Wie heißt "Teilfenster" richtig ?)

    Vielleicht ist was mit den eckigen Klammern falsch ?

    MfG Osterhase

  • Dieser Code:

    [autoit]

    Opt("MouseCoordMode", 0 )
    ControlClick("Spieler und Trainer verwalten", "", "[CLASS:ThunderRT6FormDC; INSTANCE:68]")
    MouseClick("left", 156, 29, 2, 0)

    [/autoit]

    öffnet bei mir ein Programm aus der Taskleiste.
    Das ist so nicht gewollt.

    Ich sagte ja bereits mehrmals, dass ich es ausführlicher brauche und dass ich
    mit der AutoIt-Hilfe allein nichts anfangen kann.

    Auf die Sache mit "Opt() und MouseCoordMode" war ich auch schon
    gekommen, eben durch Lesen der AutoIt-Hilfe. So hilft mir das aber nicht.

    Vielleicht werde ich hier nicht verstanden ?
    Deshalb stelle ich manchmal Fragen wie diese:
    Wie heißt "Teilfenster" richtig ? oder Vielleicht ist was mit den eckigen Klammern falsch ? um zu erreichen,
    dass ich mich so ausdrücken kann, dass man mich hier versteht.
    Beispiel: Angenommen "Teilfenster" heißt auf AutoIt-isch "Bockwurst", dann ist es genau das, was ich wissen will, damit ich in Zukunft nicht mehr irgendwas von "Teilfenstern" faseln muß, sondern den korrekten Begriff "Bockwurst" verwende und somit besser verstanden werde.

    Deshalb: Beantwortet doch bitte meine Fragen.

    MfG Osterhase :)

    Einmal editiert, zuletzt von Osterhase (14. November 2007 um 16:57)

  • Wie oben schon von anderen erwähnt: Es gibt Fenster / Bedienelemente, die sich mit Oberflächenscripten NICHT bedienen lassen.
    Z. Beispiel Java-Produkte (oracle-Installer als schönes Beispiel).

    Dann bleibt Dir als letztes Mittel nur noch die Simulation der Tastatur-Anschläge (NICHT Maus-Aktionen), die bei manueller Ausführung das Programm bedienen würden. Das ist aber:
    - umständlich
    - unelegant
    - fehleranfällig
    - und schlussendlich die grösste Hürde: Ein Ende zu finden (eine per Script erfragbare Ende-Bedingung)

    Es könnte schneller gehen, die Schrite 500 mal selber durchzuklicken, als eine Script-Lösung zu erstellen.

    Java-Freunde nicht weiterlesen:
    Lass Dir von keinem Java-Geraffel die Freude an AutoIT verderben.

    Michael

  • Zitat

    Es gibt Fenster / Bedienelemente, die sich mit Oberflächenscripten NICHT bedienen lassen.

    Ich glaube nicht, dass das in meinem Fall zutrifft.
    Das habe ich oben beschrieben.

    Kann mir hier wirklich keiner richtig helfen ?

    Ich kann doch nicht alles nochmal von vorn erklären.
    Alle nötigen Infos sind hier im Thread zu finden!

    Osterhase ;(

  • Hallo Osterhase,

    Zitat

    Original von Osterhase
    Cursortasten rauf und runter würde im 1. Fenster funktionieren.
    Tabs auch - brauch ich aber erst mal nicht.

    Der durch die Cursortasten ausgewählte Eintrag
    müsste dann aber noch mit 'nem Doppelklick "belegt" werden.

    Mit der AutoIt-Hilfe allein komm' ich nicht klar.
    Bin absoluter Programmierlaie.

    Das Problem ist folgendes:
    -Du hast relativ wenig Erfahrung mit Oberflächen- / AutoIT-Scripten.
    -Du gibst Dir eine Aufgabe, die sehr anspruchsvoll ist

    Wenn du trotzdem hieran weiterarbeiten möchtest, taste Dich Schritt für Schritt ran:
    1. Kannst Du einen Eintrag aus Deiner Liste markieren - per Script?
    Wenn nein, wie hast Du es versucht? (direkt das Control-Element ansprechen oder per Simulation von Tastenanschlägen)
    2. Wenn Du es markieren kannst, kannst Du es bedienen?
    3. logisches Konstrukt drum herum (Endebedingung z. Bsp.)

    Fang mit Schritt 1 an.

    Michael

    PS: Es gibt ca. 10 hoch 95 Dinge, die interessanter als Fussball sind .. aber wenn mensch daran programmieren lernen will.....

  • Hallo Michael,

    zu Punkt 1.: bis jetzt krieg' ich das nur so hin:

    Code
    MouseClick("left", 445, 519, 2, 0)


    Über ein Controlelement ginge das m.M. nach nicht, ebensowenig über
    Tastenanschläge. Das muß schon per Mausklick auf die Koordinaten
    passieren.

    Das finde ich so aber etwas unprofessionell, weil die absoluten Koordinaten angesprochen werden und nicht die, bezogen auf die "Instance 68".

    BugFix hatte oben etwas vorgeschlagen, was ich aber nicht funktioniert:

    [autoit]

    ControlClick("Spieler und Trainer verwalten", "", "[CLASS:ThunderRT6FormDC; INSTANCE:68]")

    [/autoit]

    Auch weiß ich immer noch nicht: Müssen die eckigen Klammern nun wegfallen
    oder nicht ? Und nach 'nem Semikolon kommt doch immer ein Kommentar
    dachte ich ? Der ist dann zwar grün aber dennoch verstehe ich das nicht.
    Auch kann ich in der AutoIt-Hilfe kein Beispiel für die Syntax von BugFix
    finden.

    Gibt es denn keine Möglichkeit, dass AutoIt einen markierten Eintrag findet, und dann den nächsten noch nicht markierten darunter ?
    Gibts dafür vielleicht schon eine UDF ?

    MfG Osterhase

    PS: Ich lass' mir das gern an einem anderen Programm erklären, in dem
    markierte Einträge zur Auswahl stehen.

    • Offizieller Beitrag

    Also die Syntax ist richtig, die eckigen Klammern müssen sein und da das alles in einem String ist, ist das Semikolon natürlich Element des Strings und somit kein Bezeichner für einen Kommentar.
    Das entsprechende Kapitel aus der Hilfe hier mal zitiert:

    Spoiler anzeigen
  • Hallo BugFix,
    in Ordnung, die Syntax ist also korrekt.

    Ich benutzte bisher nur die deutschsprachige Hilfe.
    Ist ja so schon alles kompliziert genug.
    Ich wußte nicht, dass die Hilfe nicht 1:1 übersetzt wurde.
    Mein Fehler.
    Aber wie geht's nun weiter ?

    Irgendwie bin ich enttäuscht, dass mir mit meinem Problem als Anfänger
    nicht konkreter, ausführlicher gehofen wird...

    Für alle einfacher als dieses ständige, zeitraubende Hin und Her hier im Forum, mal abgesehen vom
    ständigen Ignorieren vieler meiner konkreten Fragen, wäre es sicherlich, mir ein kleines fertiges Skript zu schreiben,
    wenn schon nicht am Beispiel des "Fußballstudio", dann eben am Beispiel eines anderen Programms.
    Ich habe doch nun x-mal erklärt was ich brauche.

    Unterhält man sich hier immer so, dass von 3 gestellten Fragen zwei einfach ignoriert werden ?
    So kommt man doch nicht voran im Leben.


    MfG Osterhase

    • Offizieller Beitrag

    Ich glaube ehrlich gesagt nicht, dass wir uns hier Vorwürfe machen lassen müssen...
    Hast du uns bezahlt? Nein.
    Entscheiden wir welchem Thema wir Beachtung schenken, weil es uns selbst interessiert? Ja.
    Ist es ganz nett, dass du sauberes Deutsch schreibst? Ja.
    Entbindet das dich davon, dir vielleicht mit einfacheren Skripten die Grundlagen beizubringen? Nein.
    Haben wir dir gesagt, dass Java-Programme besonders schwer mit AutoIt zu steuern sind? Ja.

    peethebee

    p.s. Voran kommt man meiner Erfahrung nach im Leben, wenn man Dinge selbst macht ;)