Probleme mit dem Hidden Text

  • Hallo,

    ich will von einem Java-Shell Programm den Hidden Text auslesen mit ControlGetText().
    (Mit Hidden Text meine ich das, was beim Au3 Window Info Tool unter Hidden Text steht.)
    Den Visible Text bekomme ich ohne Probleme hin mit ControlGetText("SP PLATFORM", "", "RichEdit20A1") oder mit WinGetText("SP PLATFORM").
    Mit AutoitSetOption(WinDetectHiddenText, 1) ändert sich auch nichts.

    Hier die Summary vom Au3 Info Tool:

    Spoiler anzeigen

    >>>> Window <<<<
    Title: SP PLATFORM
    Class: ATL:2227C348
    Position: -4, -4
    Size: 1288, 1002
    Style: 0x15CF0000
    ExStyle: 0x00000100
    Handle: 0x0009051C

    >>>> Control <<<<
    Class: RichEdit20A
    Instance: 1
    ClassnameNN: RichEdit20A1
    Name:
    Advanced (Class): [CLASS:RichEdit20A; INSTANCE:1]
    ID:
    Text:
    Position: 1, 162
    Size: 1278, 788
    ControlClick Coords: 527, 517
    Style: 0x560341C4
    ExStyle: 0x00000200
    Handle: 0x00020524

    >>>> Mouse <<<<
    Position: 528, 705
    Cursor ID: 0
    Color: 0xE1E6FC

    >>>> StatusBar <<<<
    1:
    2: Ins
    3: Ready
    4: Ln 20 Col 2
    5: SP TM

    >>>> ToolsBar <<<<

    >>>> Visible Text <<<<
    >RT
    CANCEL - Q47 C0 (21)
    --- TST ---
    RP/DELUF33Q8/DELUF33Q8 18FEB12/1210Z JHMLNJ
    1.TEST/TEST MR
    2 APB 082123/126446
    3 TK OK18FEB/DELUF33Q8
    >ir
    CANCEL - Q47 C0 (21)
    --- TST ---
    RP/DELUF33Q8/DELUF33Q8 18FEB12/1210Z
    JHMLNJ
    1.TEST/TEST MR
    2 APB 082123/126446
    3 TK OK18FEB/DELUF33Q8

    >qi


    IGNORED - OFF QUEUE
    >
    >
    >
    >


    >>>> Hidden Text <<<<

    IGNORED - OFF QUEUE
    >


    Ich bin für jede Hilfe dankbar!

    Einmal editiert, zuletzt von oispnr (25. Februar 2012 um 16:33)

  • Weißt du denn wie das Hidden Control heißt? soweit ich weiß ermöglicht dir opt(WinDetectHiddenText, 1) nur dass du auch die Hidden Controls auslesen kannst aber den Namen musst du natürlich angeben.. ich habe eben mal im Internet bisschen gelesen es könnte sein das sich das Control auch mit dem Namen "Hidden" ansprechen lässt kann natürlich auch völliger mist sein :P also ohne Garantie ^^


    EDIT: gerade noch mal etwas schlau gemacht, es scheint so dass die Opt(Hidden..) Funktion einfach den Hidden text freigibt also dass er bei Winget.. einfach mit übergeben wird, was er normalerweise nicht wird
    Quelle Englisches Forum
    Link

    [autoit]


    Opt("WinDetectHiddenText", 1)
    $Line = WinGetText($Title)
    MsgBox(0, "", $Line)

    [/autoit]

    Gruß Marvin

    Einmal editiert, zuletzt von Protex (23. Februar 2012 um 08:04)

  • Vielen Dank für die Antwort ! =D
    Ich kanns leider erst am Samstag testen.
    Aber um nur das Hidden Text zu bekommen müsste ich dann wohl so etwas machen schätze ich mal:

    Spoiler anzeigen
    [autoit]

    Func _getHiddenText()

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

    Opt("WinDetectHiddenText", 0)
    $noHiddenText = WinGetText($Title)

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

    Opt("WinDetectHiddenText", 1)
    $inclHiddenText = WinGetText($Title)

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

    $hiddenText = StringReplace($inclHiddenText, $noHiddenText, "")

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

    return $hiddenText

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

    EndFunc

    [/autoit]
  • Danke Protex!
    Ich war nicht auf die Idee gekommen, dass es durch WinDetectHiddenText einfach an den Visible Text dranhängt.
    Meine Funktion funktioniert.
    Danke für den Ansatz.

  • Hallo zusammen,

    Ich habe das gleiche problem - bei mir scheint allerdings die vorgeschlagenen loesung nicht zu funktionieren...

    Haette jemand eine Idee wieso? Unten habe ich die details aufgefuehrt.

    Danke!

    Ruud


    --Dann hier die Details:

    Das Window Info Tool gibt folgende infos raus (unter 'summary'):


    Ich moechte den Text "schop: noun, masculine" bekommen.

    Die Code die ich dafuer benutze ist

    [autoit]


    Opt ("WinDetectHiddenText", 1)
    ConsoleWrite(WinGetText("Visual UI Automation Verify : Client Side Provider"))

    [/autoit]

    Dies fuehrt aber leider lediglich zu


    also, der hidden text fehlt, nur der visible text wird returned...