und mal wieder ne anfängerfrage

  • moin zusammen,
    ich bin der neue :D
    hatte auf der maloche nen bissl langeweile und dachte mir -schau mal,ob du nen script hinbekommst- ;-D
    ich habe eine navigationsoftware in der ein fenster ist.in dem fenster befinden sich einzelne buttons, die ich mit hotkeys ansteuern möchte.
    soweit so gut, funzt alles prima!
    mein problem ist nun:
    wenn ein neues projekt gestartet wird, muss das fenster auch wieder geöffnet werden.
    das fenster hat dann aber eine andere größe/pos und die hotkeys funzen nicht mehr(werden ja relativ im fenster angesteuert)
    ich möchte nun, dass sich der block"gsdii layer verschieben wdh"
    habe es mal mit ner schleife incl if-abfrage versucht.
    fenster wird zwar nun nach erneutem projekt start schön verschoben aber die hotkeys funzen nicht.
    habe keinen plan, wie ich sauber raus zu den hotkeys komme.
    bzw. hatte mal nen "else winexists" eingebaut abe dann bin ich wieder am anfang des problems :S
    wenn ich hier im forum richtig gelesen habe, gehen wohl 2 schleifen nicht!?
    bleibt mir nur die möglichkeit den spass in 2scripts zu splitten(habe ich noch nicht versucht) oder gehts das vlt doch in einem rutsch!?
    oh mann, ist ja fast nen roman geworden^^
    hier noch der aktuelle scriptversuch,
    danke im voraus
    [spoiler#cs ----------------------------------------------------------------------------

    AutoIt Version: 3.2.12.1
    Author: Script Function:
    Dieses script dient zur Hotkey Definition der einzelnen Layer in der Escosy_Navigation, analog zur ICED Hotkeybelegung.

    #ce ----------------------------------------------------------------------------

    ; Script Start

    ;---Start von Escosy---
    ShellExecute("C:\ESCOSY32\Bin\ESCOSY.EXE") ; ˆffnen Escosy
    WinWaitActive("Login ESCOSY Plus")
    MouseClick("left", 1069, 637)
    MouseMove(1069, 759)
    MouseDown("left")
    Sleep(3000)
    MouseUp("left")
    MouseClick("left", 865, 759)
    Send("!l") ; Login


    ;---Verschieben des GDSII Fenster---
    While 1
    Sleep(100)
    If Not WinExists("GDSII Layer") Then
    WinWait("GDSII Layer") ; wartet auf GDSII-Fenster
    WinActivate("GDSII Layer")
    Sleep(100)
    WinWaitActive("GDSII Layer")
    Sleep(100)
    WinMove("GDSII Layer", "", 1706, 49, 252, 962) ; verschieben und anpassen der Fenstergrˆfle
    MouseMove(1943, 925)
    MouseDown("left")
    Sleep(6000)
    MouseUp("left")
    Send("!no")
    WinSetState("GDSII Layer","", @SW_HIDE)


    EndIf
    WEnd



    ;---Hauptprogramm---

    ; ---Hotkey Belegung---

    ; ---nur f-tasten---

    While 1
    Sleep(100)
    HotKeySet("{f2}","_Un_Blank_aktiv") ; f¸r aktivgebiete
    HotKeySet("{f3}","_Un_Blank_polymetal") ; f¸r poly&metal
    HotKeySet("{f4}","_Un_Blank_poly") ; f¸r poly
    HotKeySet("{f5}","_Un_Blank_mtl1") ; f¸r mtl1
    HotKeySet("{f6}","_Un_Blank_mtl2") ; f¸r mtl2
    HotKeySet("{f7}","_Un_Blank_mtl3") ; f¸r mtl3
    HotKeySet("{f8}","_Un_Blank_pass") ; f¸r passivierung
    HotKeySet("{f9}","_Un_Blank_txt") ; f¸r text
    HotKeySet("{f10}","_Un_Blank_fibmod") ; f¸r fibmod
    HotKeySet("{f11}","_Un_Blank_digi") ; f¸r digitalteil

    ; ---nur alt+f-tasten---

    HotKeySet("!{f5}","_Un_Blank_cont") ; f¸r f-contakte
    HotKeySet("!{f6}","_Un_Blank_via1") ; f¸r via1
    HotKeySet("!{f7}","_Un_Blank_via2") ; f¸r via2
    HotKeySet("!{f8}","_Un_Blank_via3") ; f¸r via3
    HotKeySet("!{f9}","_Un_Blank_mtl4") ; f¸r mtl4
    HotKeySet("!{f10}","_Un_Blank_mtl34") ; f¸r mtl34
    WEnd

    ; -Aktivgebiete-
    func _Un_Blank_aktiv()
    WinActivate("GDSII Layer")
    WinWaitActive("GDSII Layer")
    WinSetState("GDSII Layer","", @SW_SHOW)
    Opt("MouseCoordMode", 2) ; Layertasten werden relativ im aktivierten Fenster angesteuert
    Mouseclick("left", 10, 701) ; f¸r d_aktivgrbiete
    Mouseclick("left", 10, 678) ; f¸r p_aktivgebiete
    Send("!o")
    WinSetState("GDSII Layer","", @SW_HIDE) EndFunc[/spoiler]

  • Hallo AltenSack,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial Sehr hilfreich ist auch das Buch von peethebee .

    und jetzt zu deinen Problemen: Schau dir in der Hilfe die Funktionen die mit

    [autoit]

    Control..;speziell
    ControlClick

    [/autoit]

    anfangen an. Ausserdem solltest du dich in die Handhabung des AutoIt Fenster-Informations-Tool (AU3Info) einarbeiten (unter Allgemeines zu AutoIt in der Hilfe). Damit solltest du es schaffen.

    PS.: Deine AutoIt-Version ist nicht mehr aktuell: 3.3.6.1 ist die aktuelle Version,

    mfg autoBert

  • Moin autoBert,
    besten Dank für die Begrüßung.
    Spass sieht anders aus ;-D
    Ernsthaft, macht schon Spass...bin noch überrascht wie schnell ich dat mit den Hotkeys hinbekommen habe.

    Da schreibe ich schon nen Aufsatz und habe doch noch nen paar Infos vergessen, sorry!

    An ControlClick habe ich auch schon gedacht, leider bekomme ich aus dem Fenster keine ID ausgelesen.
    Ich bekomme nur den Fenstertitel, Pixelfarben der einzelnen Layer und nen bissl HiddenText wie "ok, none, etc" ausgelesen!
    Ich denke mal, dat liegt am Entwickler der Software.
    Habe auch schon dran gedacht, dat ganze über die Pixelfarbe anzusteuern aber da diese begrenzt sind und sich teilweise wdh, ist das auch keine Opt.

    Im Grunde läuft der Spass ja, wie ich es möchte, sobald die while/-end, im "gdsii_verschieben"block rausgenommen wird.
    Nur, für ein neues Projekt müssen dann script&prg beendet und erneut gestartet werden und dat ist uncool ;-D

    Zur Version,
    ich habe auf der Maloche noch nen NT-System.(dat liebe Geld, liegt nunmal nicht bei uns id Abteilung)^^
    Soweit ich weiß, läuft die aktuelle Version dort nicht oder hat mir da ein Vogel etwas falsches gezwitschert!?

    Cya