Negok (17.06.2017)
-
15.06.2017, 19:36 #1
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)
-
The Following User Says Thank You to Baumstumpf For This Useful Post:
-
16.06.2017, 15:42 #2
- Registriert seit
- 15.11.2011
- Beiträge
- 6.408
- Blog Entries
- 5
Thanked 9.168 Times in 3.038 PostsAW: 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).
-
The Following User Says Thank You to DMW007 For This Useful Post:
Negok (17.06.2017)
-
16.06.2017, 20:27 #3
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
-
Ist die Matrix bereits Realität?
Von Benzol im Forum RealLifeAntworten: 5Letzter Beitrag: 26.12.2014, 16:17 -
VB.Net Doppelte Eingabe vermeiden [Console]
Von Impact im Forum .NetAntworten: 9Letzter Beitrag: 01.05.2012, 16:22 -
[C#] Console bunt schreiben
Von The Don of NYC im Forum ShowroomAntworten: 0Letzter Beitrag: 01.09.2011, 03:41 -
[C#] Fifty! Console
Von Brainy im Forum ShowroomAntworten: 0Letzter Beitrag: 23.08.2011, 00:43
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.