Gleiche Fensternamen

  • Hallo Leute,

    ich hab mir einen kleinen skill-leveler geschrieben. Ich kann auf meinem Computer zwei instanzen meines Spiels öffnen und möchte, daß mein acc im einen Fenster seinen Skill levelt, während ich mit dem anderen aktiv level.
    Das mit den Anweisungen im inactiven Fenster hab ich schon gefunden und ich hab auch schon das Handle des Fensters, das ich haben will. ABER ich hab keine ahnung wie ich das jetzt verwende. Meine beiden Fenster heißen genau gleich in der Taskleiste.

    Welche Möglichkeitenhabich dennoch immer dasselbe Fenster anzusprechen?

    Danke für eure hilfe.

  • ;Beide Fenster finden
    $var = WinList()
    Dim $CO[2]
    $j = 0

    For $i = 1 to $var[0][0]
    If $var[$i][0] == "[Conquer2.0]" Then
    $CO[$j]= $var[$i][1]
    $j = $j+1
    MsgBox(0, "Details", "Title=" & $var[$i][0] & @LF & "Handle=" & $var[$i][1])
    EndIf
    Next

    $AktFenster=0
    $End = 0

    ;Welches Fenster ist das LVL-Fenster?
    Do
    For $i = 0 to $j

    $Wert = MsgBox(3, "Fensterwahl", "Ist dies das Fenster, in dem das Programm laufen soll?")
    if $Wert = 2 then
    $End = 1
    EndIf
    Next $i
    Until $AktFenster<>0 or $End = 1


    So und in der Do Schleife will ich nun nach und nach die Fenster aktivieren. d.h.

    aktiviere fenster 1 -> abfrage über msgbox -> wenn nein, nächstes fenster, wenn ja, dann fensterhandle merken. Bei abbruch ganzes programm abbrechen. In diesen ControllClick-funtionen wird immer nur ne ID mitgegeben.

  • ähhhhhhhh ... ok das mit dem namen setzen wußte ich nicht, aber das handle hab ich schon das ist im Array $CO[0] und $CO[1] gespeichert, aber ichweiß nicht wie ich das hernehme. wäre nicht schlecht, wenns da ein beispiel gäbe oder sowas, denn alle funktionen übernehmen da so eine ID,die in der Beispielen immer ein string und keine 0x3478f37d ist. danke trotzdem ich werds mit dem umgenennen probieren. Trotzdem hät ich auch gern das mit den handle gewußt.

    • Offizieller Beitrag

    Hi,

    [autoit]

    AutoItSetOption("WinTitleMatchMode", 4)

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

    ; Get the handle of a notepad window that contains "this one"
    ShellExecute('Notepad')
    Sleep(250)
    $handle = WinGetHandle("classname=Notepad", "")
    If @error Then MsgBox(4096, "Error", "Could not find the correct window")

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

    ShellExecute('Notepad')
    Sleep(250)
    $handle1 = WinGetHandle("classname=Notepad", "")
    ControlSend($handle, "", "Edit1", "0")
    ControlSend($handle1, "", "Edit1", "1")
    ControlSend($handle, "", "Edit1", ",00")
    ControlSend($handle1, "", "Edit1", ",11")

    [/autoit]

    So long,

    Mega

  • Danke danke danke, niemand hat mir gesagt, daß Title alles mögliche sein kann - auch ein handle.