1. #1
    Nachrichtendienst
    Avatar von Baumstumpf
    Registriert seit
    04.12.2011
    Beiträge
    138
    Thanked 110 Times in 32 Posts

    Standard Bereits laufende Console auslesen...

    Hi,

    ich würd gern die laufende Console eines Spiels (RocketLeague) auslesen, da in den Logdatein- welche von dieser erstellt werden- die Informationen die ich brauche nicht enthalten sind.
    Die Console ist eine "ConsoleWindowClass".
    Diese Console dürfte eins zu eins wie die CMD-Console sein.
    Einen redirect ("RedirectStandardOutput") kann ich nicht benutzen, da ich die Console nicht starte, sondern das Spiel von selbst.
    Daher muss ich mit der FindWindow-API arbeiten, wobei genau das Problem liegt.

    Ich bekomme nur den Titel der Console, nicht den Inhalt ausgegeben...

    Mein Code:

    Code:
        Private Const WM_GETTEXT As Integer = &HD
        Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
        Private Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer, _
        ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
        <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
        Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
                                         ByVal childAfter As IntPtr, _
                                         ByVal lclassName As String, _
                                         ByVal windowTitle As String) As IntPtr
        End Function
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Hwnd As IntPtr = FindWindow("ConsoleWindowClass", "C:\Program Files (x86)\Steam\steamapps\common\rocketleague\Binaries\Win32\RocketLeague.exe")
            Dim Handle As IntPtr = Marshal.AllocHGlobal(1000)
            Dim NumText As Integer = SendMessage(Hwnd, WM_GETTEXT, 500, Handle)
            Dim Text As String = Marshal.PtrToStringUni(Handle)
            MsgBox(Text)
        End Sub

    Dies gibt mir nur den Titel der Console zurück, welchen ich auch verändern kann (das Handle scheint also zu stimmen)...
    Hat jemand ne Idee, wie ich an den Inhalt der Console komme?

    Danke im Voraus

    LG
    Baumstumpf

    Edit: ChildHandles scheint die Console einfach nicht zu haben :/
    Geändert von Baumstumpf (15.06.2017 um 20:14 Uhr)

  2. The Following User Says Thank You to Baumstumpf For This Useful Post:

    Negok (17.06.2017)

  3. #2
    Projektleitung
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    4.238
    Thanked 8.595 Times in 2.597 Posts
    Blog Entries
    5

    Standard AW: Bereits laufende Console auslesen...

    Wird schwierig unter Windows. Wäre Linux eine Option? Dort geht das relativ einfach mit Tools wie reredirect. Die leiten die Ausgabe wahlweise in eine Datei um, oder wie du es möchtest in die Standardausgabe (stdout/stderr).


  4. The Following User Says Thank You to DMW007 For This Useful Post:

    Negok (17.06.2017)

  5. #3
    Nachrichtendienst
    Avatar von Baumstumpf
    Registriert seit
    04.12.2011
    Beiträge
    138
    Thanked 110 Times in 32 Posts

    Standard AW: Bereits laufende Console auslesen...

    Leider ist Linux keine Option :/
    Dennoch vielen Dank für das raussuchen, ich werd schauen, ob ich eine andere Möglichkeit finde um mein Problem zu lösen

Ähnliche Themen

  1. Ist die Matrix bereits Realität?
    Von Benzol im Forum RealLife
    Antworten: 5
    Letzter Beitrag: 26.12.2014, 16:17
  2. VB.Net Doppelte Eingabe vermeiden [Console]
    Von Impact im Forum .Net
    Antworten: 9
    Letzter Beitrag: 01.05.2012, 16:22
  3. [C#] Console bunt schreiben
    Von The Don of NYC im Forum Showroom
    Antworten: 0
    Letzter Beitrag: 01.09.2011, 03:41
  4. [C#] Fifty! Console
    Von Brainy im Forum Showroom
    Antworten: 0
    Letzter Beitrag: 23.08.2011, 00:43
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191