Mehrere Fenster arbeiten Zusammen

  • Hallo Community,

    Kurzes Vorwort zu meinem Übungs-Tutorial wofür ich etwas Hilfe benötige.

    Was möchte ich machen?!

    Ich möchte meinen Dreamwaver und meinen Photoshop nach dem öffnen (manuel geöffnet, so soll es bleiben) auf eine fixierte Monitor Position icl. einer voreingestellten Größe bringen.

    Der Grund - ich möchte nicht immer, - sollte ich mal die Fenstergröße bzw. Position verändert haben, um gewisse Arbeitsschritte besser durchführen zu können, meine gewohnten Fensterpositionen manuel setzen müssen. Wär ein Klasse Program, ideal sogar via Bottom Funktion - "Fenster setzen".

    Des weiteren würde ich gerne ein Toturial einbinden, welches mit Coord Mode Koordinaten der einzelnen Fenster arbeitet einbinden. Hilfreich wäre das z.b. um Updates bzw Brushsets ect. Automatisch zu instalieren.

    Hier mein bisheriger Code:

    Was Fehlt was weis ich nicht?

    Wie kann ich Autoit sagen, z.b. - gehe auf dem Desktop auf die X,Y Koordinate, klicke dann auf diese Position (z.b. mein Brushordner) Rechtsklick und Kopieren (alles mit Koordinaten Befehl gesucht mit Window Info) dann gehe in das Fenster "Photoshop" dort auf die Koordinaten X,Y (z.B. Brushsetseinfügen) mache dort einen Linksklick usw.

    Kurz gesagt, wie sage ich Autoit in welchem Fenster er was machen soll?
    Es gibt doch sicher einen befehl wie z.b. Benutze das Fenster Photoshop und dadrin auf der relativen (also Koordinaten aus dem Fenster egal wo es steht) Position sollst du das machen....


    Ich hoffe ihr habt verstanden was ich wissen möchte :) google wusste es nicht :)
    Im Grunde sollen mehrere Fenster in einer Autoit datei kooperieren und in dne jeweiligen Fenstern die angepassten Koordinaten anwählen können, unabhängig wo sich das Fenster befindet.

    Man könnte sicher einfach mehrere Programme erstellen, aber da ich gerade dabei bin alle möglichkeiten mit Autoit mal zu testen, dachte ich wäre so ein Allround Program mal etwas interessantes.

  • Ich habs nicht so ganz verstanden...
    Aber wenn du mit MouseMove etc. in einem Fenster arbeiten willst, dann musst du - logischerweise - vorher das Fenster aktivieren. ;)

    [autoit]


    WinActivate

    [/autoit]

    lg chess

  • ach chesstiger, wenn das so weiter geht schick ich dir mal ein karten bier :)
    habe gerade mal

    [autoit]

    WinActivate

    [/autoit]


    unter hilfe nachgeschlagen, das scheint das richtige zu sein. kannst du ein beispiel code machen bitte? also das er dann Zu Fenster "NameA" geht, dort auf die Fensterkoordinaten X,Y geht, danach zu fenster "NameB" und dort dann auf Fensterkoordiante X,Y?

    Code
    Opt ("MouseCoordMode",2) ;Window-Info-Tool Code: Options - Coord Mode (Fensterorientierte Koordinatensuche)
    Sleep (1000)
    MouseClick ("left",38,703,1)
    Sleep (1000)

    also den Code eben für zwei Fenster,d as er Fenster A benutzt um die mausbewegen bzw klicks machen und danach zu Fenster B geht und ebenfalls im Fenster die Koordinaten angeht. Wichtig eben das es die relativen werte zum aktiven fenster sind also diese coord werte ^^


  • hi

    In welchem Fenster du welche realtiven koorinaten klicken willst ist aus deinem text nicht entnehmbar ^^

    Wenn du AutoItQuellcode postest verwend bitte "AutoIt-Quellcode" so wie ich.

    das was du benötigst:

    Spoiler anzeigen
    [autoit]

    Sleep (3000) ; Warum die vielen Sleep´s?
    WinMove("Adobe Dreamwaver CS5.5","",0,0,550,550) ;Ändert Größe und Position
    Sleep (1000)
    WinMove("Adobe Photoshop CS5 Extended","",550,0,550,550) ;Ändert Größe und Position

    [/autoit] [autoit][/autoit] [autoit]

    Sleep (1000)

    [/autoit] [autoit][/autoit] [autoit]

    ; KA in welchem Fenster du den Klick benötigst aber jenachdem ist es das erste oder zweite WinActivate

    [/autoit] [autoit][/autoit] [autoit]

    Opt ("MouseCoordMode",0) ; relative coords to the active window, Alles Mouse... von Autoit verwenden die relativen coordinaten zu dem Aktiven Fenster
    WinActivate('Adobe Dreamwaver CS5.5') ; WinActivate - Activates (gives focus to) a window.
    MouseClick ("left",38,703,1)

    [/autoit] [autoit][/autoit] [autoit]

    WinActivate('Adobe Photoshop CS5 Extended') ; aktiviert das fenster 'Adobe Photoshop CS5 Extended'
    MouseClick ("left",38,703,1) ; klickt in dem fenster 'Adobe Photoshop CS5 Extended' auf die relativen coorinaten
    Opt ("MouseCoordMode",1) ; absolute screen coordinates (default), setzte es wieder auf Standard zurück

    [/autoit] [autoit][/autoit] [autoit]

    ; weiterer code

    [/autoit]

    Warum verwendest du soviele und solange sleeps? - Mach das mal in einem etwas längeren Script.
    Meld dich dann in ein paar wochen wenn dein 1000zeiler zu ende ist, wie es war :rofl: - nicht ernst nehmen


    mfg

  • Vielen Dank das Hilft mir weiter. Die Sleeps habe ich solange um besser zu sehen ob auch alles richtig gemacht wird, setze ich dann wenn alles funktioniert runter :)

  • Als Ergänzung:

    [autoit]


    AutoItSetOption("MouseCoordMode",0)
    WinActivate("NameA")
    MouseMove($iX_1,$iY_1)
    WinActivate("NameB")
    MouseMove($iX_2,$iY_2)

    [/autoit]


    Natürlich noch die Variablen deklarieren. ;)
    Sonst muss ich D2 Recht geben: Die Sleeps sind unnötig, das Script pausiert solange, bis die Funktion ausgeführt worden ist.

    Ach, und für nen Kasten Bier bin ich noch zu jung. 8o

    lg chess
    Edit: Achso, für Debugging waren die Sleeps... ;)

  • Dann eben ein Kasten Cola Chesstiger :)

    In wie weit ist es Wichtig diesen deklarierungsbefehl einzubauen? Wie würde es Optimal im ganzen Code dann zusammenaussehen?

    • Offizieller Beitrag

    Ein Hinweis zur Nutzung von

    [autoit]

    AutoItSetOption("MouseCoordMode",0)

    [/autoit]

    Am besten gleich angewöhnen, den alten Modus in einer Variable abzuspeichern und hinterher auf diesen zurückzusetzen. Denn es muss ja nicht zwingend der Standardmodus aktiv sein. ;)

    [autoit]

    $oldOpt = AutoItSetOption("MouseCoordMode", 0) ; Modus setzen und alten Modus speichern
    ;... Code
    AutoItSetOption("MouseCoordMode", $oldOpt) ; zurücksetzen auf alten Modus

    [/autoit]
  • Okay ah soweit ist alles bestens :)

    Letzte Frage zu diesem Thema, könnt ihr ein Beispiel Code machen um eine ImageSearchArea in einem Fenster zu nutzen?
    Eben auch relative Fenster koordinaten. Hier der GrundQuellencode wo ich die ImageSearchArea einbauen will. Geht zwar alles auch mit Mausklicks aber wär mal interesse halber gut zu wissen, wer weis man man sowas braucht :) Speicher mir ja alle Tests ab das ich später nachgucken kann.


    [autoit]

    Opt ("MouseCoordMode",0) ; relative coords to the active window, Alles
    Mouse... von Autoit verwenden die relativen coordinaten zu dem Aktiven
    Fenster

    [/autoit][autoit][/autoit][autoit]

    WinActivate('Fenster 1') ; WinActivate - Activates (gives focus to) a window.

    [/autoit][autoit][/autoit][autoit]

    MouseClick ("left",38,703,1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    WinActivate('Fenster 2') ; aktiviert das fenster 'Adobe Photoshop CS5 Extended'

    [/autoit][autoit][/autoit][autoit]

    MouseClick ("left",38,703,1) ; klickt in dem fenster 'Adobe Photoshop CS5 Extended' auf die relativen coorinaten

    [/autoit][autoit][/autoit][autoit]

    Opt ("MouseCoordMode",1) ; absolute screen coordinates (default), setzte es wieder auf Standard zurück

    [/autoit]
  • Hallo Rantanplan,

    wie wäre es wenn du dir die Grundlagen von AutoIt anhand der Hilfe, der Boardsuche und evtl. noch etwas Google selbst erarbeiten würdest. Da du ja ein Tutorial schreiben willst solltest du zumindest die Grundlagen beherschen. Im übrigen gibt es für solche Zwecke:

    Des weiteren würde ich gerne ein Toturial einbinden, welches mit Coord Mode Koordinaten der einzelnen Fenster arbeitet einbinden. Hilfreich wäre das z.b. um Updates bzw Brushsets ect. Automatisch zu instalieren.

    bessere Möglichkeiten als Bildchen suchen um dann darauf klicken zu lassen. Schau dir dazu am besten die Control...-Funktionen in der Hilfe an. Auch die Kapitel:

    • AutoIt Fenster-Informations-Tool (AU3Info)
    • Fenster-Titel und -text (Grundlagen)
    • Fenster-Titel und -Text (erweitert)

    gehören für dich bei deinem Ziel zur Pflichtlektüre.
    Wenn du dann, in einem an sich lauffähigen Skript, an einigen Stellen Probleme hast findet sich sicher der ein oder andere User, der die Programme die du automatisieren willst, auch hat und dir hilft. Du kannst natürlich auch in Programmieranfragen mit Gegenleistung deine Wünsche äussern, aber ich finde es steht einem Autor eines Tutorials besser zu Gesicht wenn er auch weiss von was er schreibt, ansonsten wird es meist nur ein Werk das unnötig Festplattenplatz zumüllt. Also mach die an die Arbeit du hast viel zu tun,

    mfg autoBert

    3 Mal editiert, zuletzt von autoBert (28. Juli 2012 um 05:59)