Statusbar auslesen / Memory

  • Hallo zusammen,

    jede Statusbar kann man ja nicht auslesen. Nur zur Sicherheit die Frage.
    Hat es jemand evtl. mit dieser Class geschafft?

    Ich versuche diese Statusbar auszulesen und bekomme es nicht hin.
    Mal wird hier eine Prozessbar und mal ein Text gezeigt. Und ich brauche den Text.

    >>>> Window <<<<
    Title: MAX - system
    Class: MaxMainForm
    Position: 0, 0
    Size: 1024, 738
    Style: 0x16CF0000
    ExStyle: 0x00050100
    Handle: 0x000B01BC

    >>>> Control <<<<
    Class: TRzStatusBar
    Instance: 1
    ClassnameNN: TRzStatusBar1
    Name:
    Advanced (Class): [CLASS:TRzStatusBar; INSTANCE:1]
    ID: 459452
    Text:
    Position: 24, 670
    Size: 989, 19
    ControlClick Coords: 358, 8
    Style: 0x56000000
    ExStyle: 0x00010000
    Handle: 0x000802BC

    Hat einer eine Idee?

    Gruß Schumi

    4 Mal editiert, zuletzt von Schumi (4. Juli 2012 um 18:12)

  • Wie heisst denn das Programm eigentlich ?
    Man kann ja wenig helfen, wenn man mans nicht selbst ausprobiert.

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.

  • Hallo,
    es ist eine Art Terminal-Programm. Man arbeitet also an einem Großrechner und das Terminalfenster ist in eine GUI verpackt.
    Man kann also nicht mal eben bei sich auf dem heimischen PC das Zeug installieren und testen.
    Wäre aber toll wenn ich weitere Lösungsansätze zum Testen bekomme.

    Bisher habe ich das hier versucht.

    Spoiler anzeigen
    [autoit]


    #Include <Array.au3>
    Local $i
    Local $WinFenster = "Basissystem"
    Local $Text = WinGetClassList($WinFenster)
    $Text = StringSplit($Text,@lf)

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

    Local $Classliste1[UBound($Text)][2]
    Local $Classliste2[UBound($Text)][2]

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

    For $i = 0 To UBound($Text) - 1
    $Classliste1[$i][0] = $Text[$i]
    $Classliste1[$i][1] = ControlGetText("[Class:MaxMainForm]","","[CLASS:" & $Text[$i] & "; INSTANCE:1]")

    $Classliste2[$i][0] = $Text[$i]
    $Classliste2[$i][1] = ControlGetText("[Class:MaxMainForm]","","[CLASS:TRzStatusBar]")
    Next
    ; Inhalte anzeigen
    _ArrayDisplay($Classliste1, " mit INSTANCE:1")
    _ArrayDisplay($Classliste2, " ohne ")

    [/autoit]


    Das hat aber nichts gebracht.
    Was könnte ich noch testen?

    Gruß Schumi

  • Im engl. Forum ist was zu dem Thema: http://www.autoitscript.com/forum/topic/71…statusbar-text/

    Ich habs mit HeidiSQL ausprobiert (Delphi), das dürfte vergleichbar sein.
    Folgendes Script liest mir einen Text aus der Statusbar:

    [autoit]


    #include <GUIStatusBar.au3>

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

    MsgBox(0,'StatusBar_GetText_All',StatusBar_GetText_All(ControlGetHandle('Unnamed /world - HeidiSQL 7.0.0.4053','','TStatusBar1')))

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

    Func StatusBar_GetText_All($statusbarhwnd)
    Local $statusbartext
    Local $panelcount = _SendMessage($statusbarhwnd, $SB_GETPARTS, 0, 0)
    For $panel = 0 to $panelcount-1
    $statusbartext &= $panel & ": " & _GUICtrlStatusBar_GetText($statusbarhwnd, $panel) & @CRLF
    Next
    Return $statusbartext
    EndFunc

    [/autoit]


    'Unnamed /world - HeidiSQL 7.0.0.4053' ist bei mir der Fenstertitel.

    Wer andern eine Bratwurst brät
    der hat ein Bratwurstbratgerät.

  • Hallo,

    recht herzlichen Dank für den Tipp.
    Mein erster Test war leider ohne Erfolg. Ich habe alle Namen duchgetestet. Das Gleiche auch mit #Include <SendMessage.au3>. Lt. Hilfe gehört die ja dazu, oder?
    Der Link ist auch interessant. Das teste ich auch noch und melde mich dann wieder.

    Vielen Dank.
    Gruß Schumi