Text auslesen geht nicht oder nur teilweise

  • Hallo Experten,
    Leider kann ich mich mit AUTOIT nicht so intensiv beschäftigen wie ich es gerne wollte, daher hier meine Frage.

    Ich möchte gerne einen Text aus einem Fenster auslesen
    das versuche ich mit folgendem Code

    Spoiler anzeigen
    [autoit]


    Opt("WinDetectHiddenText", 1) ;0=don't detect, 1=do detect
    Dim $text
    Do
    $text = WinGetText("Unterstationsalarme", "")
    MsgBox(4096,"gelesener text", $text)

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


    if not $text = "Keine Alarme in den Unterstationen, die gescannt werden, vorhanden" Then
    MsgBox(4096,"Warnung", "Unterstationsalarm vorhanden")
    EndIf

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

    sleep(5000)

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

    Until 1

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


    Das Problem dabei ist, das ich zwar den Fenstertitel finde, mir aber der Text in dem Fenster angezeit wird nicht angezeigt wird.
    Die Statuszeile "Keine Alarme in den Unterstationen, die gescannt werden, vorhanden" wiederum kann ich auslesen, aber die wichtige Information steckt halt im Textfenster in der Mitte.

    Hat einer eine Idee worann es liegen kann ?
    Siehe Screenshot:

    AUTOIT INFO WINDOW:

    Spoiler anzeigen


    >>>> Window <<<<
    Title: Unterstationsalarme
    Class: TFScanBeheer
    Position: 223, 469
    Size: 441, 193
    Style: 0x16CC0000
    ExStyle: 0x00000188

    >>>> Control <<<<
    Class:
    Instance:
    ClassnameNN:
    ID:
    Text:
    Position:
    Size:
    ControlClick Coords:
    Style:
    ExStyle:

    >>>> Mouse <<<<
    Position: 482, 477
    Cursor ID: 2
    Color: 0x6888BB

    >>>> StatusBar <<<<

    >>>> Visible Text <<<<


    >>>> Hidden Text <<<<


    Gruß
    Wolke

  • Hallo Mega,
    Ich habe doch die Infos vom AUTOIT INFO WINDOW mit angegeben.
    Kann mann das da sehen ?

    Wenn in genau diesem Window ein Text in der Statuszeile angezeigt wird kann er den ja auch erkennen....

    mein Problem ist doch das ich nicht weiß wie ich da rangehen soll.
    Du sagst ich soll mit dem Control rumspielen, aber wie meinst Du das ?


    Gruß
    Wolke

    Gruß
    Wolke

  • Hallo Leute,
    irgendwie hab ich immer das Gefühl Ihr wollt mir nicht helfen, ich weiß nur nicht warum :-((

    Hier wird jede noch so kleine Frage von jedem Benutzer harklein ausdiskutiert, nur wenn ich mal ne Frage habe bekomme ich immer äußerst spärliche Informationen und nach zwei Antworten bleibt mein Thema auf der Strecke ...so nach dem Motto, guck doch mal schön selber das Du klar kommst....

    Der Tip von Mega sagt mir Leider nicht viel, ich bin was Autoit angeht leider im letzten Jahr kaum dazu gekommen mich tiefer damit zu beschäftigen.

    Bitte gebt mir doch mal konkrete Tips, und wenn Euch noch ein Info fehlt dann sagts mir, vielleicht habe ich was wichtiges gar nicht bedacht.

    MEGA schrieb es wäre schwer weil man das nicht nachvollziehen kann.

    In den Optionen vom Explorer gibt es das gleiche Problem.
    Den Text der mit dem Cursor Markiert wurde wird von Autoit scheinbar nicht erkannt, oder ??

    Gruß
    Wolke

    • Offizieller Beitrag

    Hi wolke :)

    Kein Grund zur Paranoia ;). Als User der ersten Stunde würden wir dich sicher nicht einfach so hängen lassen. Aber deine Fragen sind soweit ich mich erinnere doch tiefergehend als die durchschnittliche Anfängerfrage hier. Was uns gefehlt hat, war eine Möglichkeit direkt am Original zu testen. Es ist nicht immer offensichtlich, welches Control nun wirklich intern dahintersteckt - und darauf muss die Lösung schon abgestimmt sein...

    Tut mir leid, dass ich trotzdem nicht wirklich weiterhelfen kann, weil ich wenig Zeit und keine Erfahrung mit der Au3Lib habe :(.

    peethebee

  • hi ,

    ich hab ein ähnliches problem ich möchte gerne den text eines edit auslesen und mit einen anderen verglechen ich weiß aba keinen pasenden befehl um NUR die edit zu lesne ich hab es mit wingettext versucht aba dann wurde ja wieda das ganze fenster ausgelesen.

    PS: es ist keine gui also kommt mir bitte nich mit guictrlread ;)

  • Hi,
    ich denke Du solltest schon etwas mehr an Infos zu dem Fenster angeben was Du auslesen willst.

    Daß die anderen nicht hellsehen können sollte uns allen klar sein.

    Gruß
    Wolke

    Einmal editiert, zuletzt von wolkenloser (29. Oktober 2007 um 17:19)

  • wolkenloser: ok hat recht^^

    also ich hab ein fenster in dem ein edit ist. nun will ich den text der edit ausgelesen haben so das ich ihn mi einem anderen vergleichen lassen kann.

    von euer brauche ich lediglich den befehl dazu den rest sollte ich eigentlich alleine auf die reihe kriegen^^ ;)

    und die id class....der edit sind vorhanden genauso wie vom fenster.

  • //Edit: @ wolkenloser

    Na, ich hab jedenfalls eine Idee.

    [autoit]

    #include<A3LTreeView.au3>
    $listv = ControlGetHandle("Ordneroptionen","Erweiterte Einstellungen",30120)
    MsgBox(0,"",_TreeView_GetText($listv,_TreeView_GetFirstNode($listv)))

    [/autoit]

    So wird das gerade ausgewählte Item angezeigt:

    [autoit]

    #include<A3LTreeView.au3>
    $listv = ControlGetHandle("Ordneroptionen","Erweiterte Einstellungen",30120)
    MsgBox(0,"",_TreeView_GetText($listv,_TreeView_GetSelection($listv)))

    [/autoit]


    Benötigt Auto3Lib

    //Edit: @ Mignon
    Versuch doch mal ControlGetText

    3 Mal editiert, zuletzt von progandy (29. Oktober 2007 um 17:56)

  • ich brauch nur die software die ihr da habt zum selber testen, dann les ich euch ALLES aus ... und wenn man es so machen muss wie ein spam-bot über einen captcha-decoder ^^:evil:

  • Zitat

    Original von progandy
    //Edit: @ wolkenloser

    So wird das gerade ausgewählte Item angezeigt:

    [autoit]

    #include<A3LTreeView.au3>
    $listv = ControlGetHandle("Ordneroptionen","Erweiterte Einstellungen",30120)
    MsgBox(0,"",_TreeView_GetText($listv,_TreeView_GetSelection($listv)))

    [/autoit]


    Benötigt Auto3Lib

    //Edit: @ Mignon
    Versuch doch mal ControlGetText

    Das klappt in diesem Fall.
    Kann ich dann auch ein bestimmtes Kästchen setzen ?
    Bisher mache ich das mit z.B.

    [autoit]


    MouseClick("left",61,206,1, 0);Ansichtsoptionen für jeden Ordner abspeichen = AUS

    [/autoit]


    Das möchte ich eigendlich lieber mit
    ControlCommand ( "title", "text", controlID, "check")
    machen, hatte da aber das Problem da ich nicht wußte wie ich die Checkbox ansprechen kann. Autoitinfo bring da keine Info.

    Geht das irgendwie mit A3LTreeView.au3 ?

    Gruß
    Wolke

  • Mit Au3Lib geht es auf jeden Fall:
    //Edit: es ist _TreeView_SetChecked

    Einmal editiert, zuletzt von progandy (30. Oktober 2007 um 11:40)

  • Nehmt die aktuelle Beta-Version von AutoIt.
    Da ist eine entsprechende Funktion mit drin:

    Spoiler anzeigen

    Ansonsten wenn es sich doch um ein ListView handelt dann gibts ja die Funktion >>ControlListView()<<

    Einmal editiert, zuletzt von AspirinJunkie (30. Oktober 2007 um 11:53)

  • Hallo, langsam kommt ja doch leben in das Thema :)

    Ich will niehmand in seinem Eifer bremsen, die Vorschläge gehen alle in die richtige Richtung, ich habe aber immer noch eine Lücke die sich mir nicht erschließt.
    Ich weiß immer noch nicht wie ich genau herausbekomme wie ich (in diesem Fall) an genau die ID der Checkbox komme die ich verändern will.

    Wie gesagt, AUTOIT-INFO-WINDOWS gibt da keine Auskunft.

    Das klappte ja schon ganz gut:

    [autoit]


    #include<A3LTreeView.au3>
    $listv = ControlGetHandle("Ordneroptionen","Erweiterte Einstellungen",30120)
    MsgBox(0,"",_TreeView_GetText($listv,_TreeView_GetSelection($listv)))

    [/autoit]

    Hier wird das markierte Tool ausgelesen.

    Wenn ich aber anderes herum verfahren will benötige ich doch den Index/ID der Checkbox.

    Da gibt es nicht zufällig ein erweitertes INFO WINDOW ?

    Gruß
    Wolke