Bestimmten Wert aus Programm auslesen

  • Hi,

    ich hab mich vor einer Weile mal bisschen mit AutoIt beschäftigt und jetzt hab ich wieder damit angefangen.

    Deshalb gleich ein paar Fragen, da bei mir einiges in Vergessenheit geraten ist :D:


    Ich habe ein Programm das eine Listbox hast. In dieser Listbox ist ein Text der an einer immer gleich bleibenden Stelle eine Zahl hat, z.B. 500. Diese Zahl ändert sich immer wenn ich das Programm starte und bleibt dann gleich, der Text bleibt immer in der gleichen Form. Die Zahl steht immer in dem Satz in Zeile 2.
    Wie kann ich jetzt diese Zahl auslesen?

    Ich habe einen Button in einem Fenster. Dieser Button soll gedrückt werden. Jetzt ist das Fenster aber teilweise 2-3mal geöffnet und es soll trotzdem immer in dem Fenster, das gerade von dem Progrämmchen gestartet wurder der Button gedrückt werden.
    Wie soll ich das mit ControlClick bewerkstelligen?


    Würde mich über Hilfe freuen :thumbup:

    Einmal editiert, zuletzt von high (4. Mai 2010 um 15:47)

  • Wie soll ich das mit ControlClick bewerkstelligen?

    dazu würde ich das handle des fensters verwenden. da dieses immer eindeutig ist.

    Zitat

    Wie kann ich jetzt diese Zahl auslesen?

    Da gibts mehrere Möglichkeiten, welche passt musst du herausfinden^^
    ControlListView, ControlGetText,ControlCommand.

  • Danke schonmal!

    Ich bin grad dabei das mit dem Handle zu versuchen. Kann ich auch gleich den handle von dem Programm, das ich gestartet habe, auslesen?

  • Achso... :) Dann klappt das soweit.

    Kann mir noch jemand sagen wie ich zählen kann, wie viel Prozesse mit dem gleichen Namen geöffnet sind?


    Und bei dieser Listbox komme ich grad auch nicht weiter. Hier mal ein Code-Schnipsel:

    Code
    $123123 = ControlListView($fenstername, "", "ThunderRT6ListBox2", "SelectAll")
    MsgBox(0, "Text", $123123)

    Es soll der Text der aus der Liste in dem Fenster in einer MsgBox angezeigt werden. Die Liste sieht etwa so aus:

    Code
    mmmmmmmmmmmmmmm[kasmd]mmmmmmmmmmmmmmm
    mmmmmmmmmmmmmmm[500]mmmmmmmmmmmmmmm

    Wie soll kann ich da dann noch die 500 rausfiltern?
    Danke nochmal für die Hilfe!

  • Zitat

    Wie soll kann ich da dann noch die 500 rausfiltern?


    Du sollst kannst das mit _StringBetween machen. :D

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <Array.au3>

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

    $sString = "mmmmmmmmmmmmmmm[kasmd]mmmmmmmmmmmmmmm" & @CRLF & "mmmmmmmmmmmmmmm[500]mmmmmmmmmmmmmmm"

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

    MsgBox(0,"",$sString)

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

    $aResult = _StringBetween($sString, "[", "]")
    _ArrayDisplay($aResult)

    [/autoit]
    Zitat

    Kann mir noch jemand sagen wie ich zählen kann, wie viel Prozesse mit dem gleichen Namen geöffnet sind?


    Hab dir dafür mal ein kleines Script geschrieben. :thumbup:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    $aProcList = ProcessList()

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

    _ArrayDisplay($aProcList)

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

    $aProcListUnique = _ArrayUnique($aProcList, 1, 1)

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

    _ArrayDisplay($aProcListUnique)

    [/autoit]
  • Wuhu, danke es klappt!!

    Ich hab noch durch google das im offiziellen AutoIt Forum gefunden:

    Das hab ich mit deinem "Filter"-Script ergänzt und nun klappt es 8) .

    Danke für eure Hilfe!!