Text aus Programm auslesen, ohne visible Text

  • Hi,


    ich möchte gerne aus einem Programm einen ganze bestimmten Text extrahieren.

    Bisher habe ich das immer über ControlGetText gemacht. Nur konnte ich da schon immer den Text den ich haben wollte unter "Visible Text" sehen, hier ist es nicht so. Es steht zwar Visible Text da, aber nicht der, den ich brauche. Habe ich trotzdem eine Chance diesen auszulesen?


    Spoiler anzeigen

    >>>> Window <<<<

    Title: MyTown 1.32

    Class: WindowsForms10.Window.8.app.0.3e799b_r16_ad1

    Position: 28, -4

    Size: 1646, 965

    Style: 0x17CF0000

    ExStyle: 0x00050100

    Handle: 0x00040140


    >>>> Control <<<<

    Class: WindowsForms10.Window.8.app.0.3e799b_r16_ad1

    Instance: 46

    ClassnameNN: WindowsForms10.Window.8.app.0.3e799b_r16_ad146

    Name:

    Advanced (Class): [CLASS:WindowsForms10.Window.8.app.0.3e799b_r16_ad1; INSTANCE:46]

    ID: 1049132

    Text:

    Position: 0, 910

    Size: 1638, 21

    ControlClick Coords: 1421, 10

    Style: 0x56000000

    ExStyle: 0x00000000

    Handle: 0x0010022C


    >>>> Mouse <<<<

    Position: 1453, 946

    Cursor ID: 0

    Color: 0xD5D9DD


    >>>> StatusBar <<<<


    >>>> ToolsBar <<<<


    >>>> Visible Text <<<<

    Wrong Entry


    >>>> Hidden Text <<<<

    layoutControl1

    ...

    Einmal editiert, zuletzt von os94p (2. Juni 2012 um 19:06)

  • Hi,


    den Window-text habe ich editiert. Ich habe mir die Forenregeln durchgelesen und kann im Prinzip auch den echten Titel nennen, weil er nicht gegen irgendwelchen Regeln verstößt: "xxx".


    Es geht darum festzustellen ob neue Bets vorhanden sind und anschließend eine Meldung (in bei in Form einer Email) abzugeben. Das Programm selbst erlaubt leider nur das abspielen von Soundfiles. Ich möchte mir jedoch in einem solchen Fall eine Email aufs Handy pushen.

    Einmal editiert, zuletzt von os94p (2. Juni 2012 um 18:02)

  • Es ist eigentlich komplett irrelevant wie Titel des Fenster lautet, da es nicht funktionieren wird an den Text zu kommen.
    Es sind keine Standard-Windows-Controls sondern Netframwork 4 Controls, die teilweise dynamisch erstellt werden und hinzukommt, das über den eigentlichen Controls noch ein durchsichtiges Datagrid liegt.

    Da wirst du keine Chance haben.
    Es gibt einige Überlegungen in Richtung OCR um das ganze auszulesen, aber bisher gibt es noch nicht wirklich zufriedenstellende Lösungen/Rückmeldungen dazu.

    Siehe dazu auch ähnliche Anfragen im englischen Forum ;)
    -> http://www.autoitscript.com/forum/topic/13…rning-anything/

    Du kannst auch gerne weiter goggeln nach "controlgettext WindowsForms10.Window.8.app"
    -> http://www.google.de/search?q=contr…10.Window.8.app

  • Hi,

    joar habs nun mit OCR gelöst, in meinem Fall, wo es nur Status Email senden oder Email nicht senden gibt, ists jetzt auch nicht so willt. Muss ich halt die Koordinaten beim Screencapture immer auf die jeweilige Auflösung anpassen, aber sollte jetzt nicht so wild sein.

    für interessierte:
    #include <ScreenCapture.au3>
    _ScreenCapture_Capture("c:\" & @YEAR & '-' & @MON & '-' & @MDAY & ' ' & @HOUR & @MIN & ".jpg",1450,939,1490,955)

    Local $Wert = ""

    RunWait(@ScriptDir &"\djpeg.exe -pnm -greyscale -dither none -outfile i.pnm i.jpg", @ScriptDir, @SW_HIDE)


    Local $App = Run(@ScriptDir & "\gocr049.exe -i i.pnm", @ScriptDir, @SW_HIDE, 0x2)
    While 1
    $Wert &= StdoutRead($App)
    If @error Then ExitLoop
    WEnd
    MsgBox(0,"moep",$Wert)