Laden...

[erledigt] Game Console Redirect Input/output

Erstellt von Let it Burn vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.575 Views
L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren
[erledigt] Game Console Redirect Input/output

Hallo,
dies ist mein erster Post in diesem Forum und hab auch gleich ein paar fragen 😉

Ich bin zurzeit dabei ein eigenes AdminInterface für Gameserver zu erstellen. Dabei läuft das Programm momentan nur lokal auf dem Server, soll aber später Remote gesteuert werden können.
Alle Spieleserver werden in einem Datagridview dargestellt, mit den Butons Start und Stop.

Nun möchte ich um den Desktop nicht unübersichtlich werden zu lassen und als Vorbereitung für die Remotesteuerung, die GameKonsolen verstecken und die Ein-/Ausgaben über mein AdminInterface leiten. Dazu habe ich versucht die RedirectStandardInput/Output Properties der Process Klasse zu benutzen, allerdings funktioniert das momentan nur mit cmd Konsolenfenstern.
Spiele, die vorgesehen sind, sind z. B. Call of Duty 4-8, die über eine eigene Konsole verfügen.
Ist es überhaupt möglich mein Vorhaben mit diesen Spielen umzusetzen?

F
174 Beiträge seit 2007
vor 11 Jahren

Das hilft dir jetzt vielleicht nur bedingt weiter, aber hast du schonmal daran gedacht, dein Admin-Interface mit ASP.NET zu realisieren?

Dadurch hättest du:

  1. keine störenden Konsolen-Fenster
  2. Theoretisch von überall Zugriff auf die Verwaltung der GameServer, ohne ein Extraprogramm installieren zu müssen.

Edit:
Ich hab' gerade gemerkt, dass ich dein Vorhaben noch nicht so ganz verstanden habe.

1.346 Beiträge seit 2008
vor 11 Jahren

Du kannst versuchen den StandardError auszulesen. Vielleicht gibt das Spiel darüber die Konsole auch noch aus. Ansonsten kannst du eigentlich nur noch das Internet durchforsten, ob man den Server mit einem kommandozeilenschallter dazu bringen kann die Logs darüber auszugeben.

4.221 Beiträge seit 2005
vor 11 Jahren

Könnte hiflreich sein: Console als Steuerelement einbinden

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

4.931 Beiträge seit 2008
vor 11 Jahren

Hallo,

das wird so nicht funktionieren, da die Spiele meistens eine eigene Implementierung einer Konsole (z.B. mit DirectX oder OpenGL) anzeigen (d.h. diese hat nichts mit der Windows Konsole zu tun und kennen auch meistens kein Redirect).
Ich selber kenne es noch von Sacred 2 so (an dem ich damals mitgearbeitet habe).

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Gibts es eine Möglichkeit diese speziellen Spiele Konsolen auszulesen?
Der Input ist denke ich mal nicht so schwer, aber ich hab keine nicht allzu komplizierte Idee die Konsole auszulesen.

Ich wäre für jede Idee oder Anregung, vieleicht ein paar Code Schnipsel, dankbar. Allerdings erwarte ich von niemandem eine Copy/Paste-Vorlage zu machen.

1.346 Beiträge seit 2008
vor 11 Jahren

Noch eine Idee: Die Server schreiben bestimmt ihre Logeinträge in eine Datei. Und das sollte sich ja auslesen lassen

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Leider werden keine Logs geschrieben, bzw. sie bringen nichts zum administrieren.

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Let it Burn,

da wird es keine pauschale Antwort geben. Wie und ob man überhaupt die Konsole eines bestimmten Spiels auslesen kann, hängt davon ab, wie die Konsole in dem jeweiligen Spiel technisch realisiert ist.

Zum Auslesen von Informationen aus fremden Fenstern wirst du im Forum und im Netz sicher fündig. Aber es gibt wie gesagt kein Patentrezept, das immer funktioniert.

herbivore

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Danke für eure Antworten.

Ich werde mich da mal etwas durchlesen...
Für den Anfang habe ich einfach mit der WinAPI die Konsolen versteckt und lasse sie durch einen Kontextmenüpunkt anzeigen.

Was haltet ihr davon den Client an die HWID des jeweiligen Benutzers zu binden, die dann immer beim Server überprüft wird?

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Let it Burn,

gar nichts. Auch wenn Spiele natürlich weniger kritisch sind als Business-Anwendungen, sollte man Hardware-Verdongelung gar nicht erst bahnbrechen lassen. Allerdings ist die Frage ist wirklich offtopic. Deshalb verweise ich nur auf bestehende Threads, die das Thema behandeln und meine Ablehnung begründen, z.B. Lizenzierungsmechanismus für Program selbst programmieren, Sicherheit durch Lizenzvergabe für Software, Konzept Lizenzgenerator und -prüfer, Id berechnen, die einen Recher eindeutig identifiziert. In diesem Thread hier sollten wir das nicht vertiefen.

herbivore

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Was man sagen kann ist also, dass man außer für die cmd keine Allround-Lösung basteln kann. Man müsste also hingehen und mit Hilfe der WinAPI das entsprechende Handle herausfinden um dann die Textbox auslesen zu können.

Falls ich etwas falsch verstanden habe, oder es eine elegantere/bessere Lösung gibt, weist mich bitte zurecht =)

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Let it Burn,

natürlich kann man mit Win32 den Handle und den Text einer fremden Textbox auslesen, aber das funktioniert dann eben nur, wenn es sich überhaupt um Win32-Controls handelt. Und das muss ja nicht sein. Die Anwendung kann die Darstellung auch selberzeichnen, ganz ohne Controls oder mit ganz eigenen Controls.

Man kann also sagen, dass man für bestimmte Techniken der Realsierung der Konsole (z.B. Windows- Eingabeaufforderung, Win32) vermutlich relativ standardisiert an den Text kommt, für andere nur mit Klimmzügen und bei bestimmten Techniken (alles selber gezeichnet, Texte im Hauptspeicher verborgen oder gar verschleiert/verschlüsselt) auch gar nicht. Es gibt eben keine allgemeingültige Lösung, die immer funktioniert.

herbivore

742 Beiträge seit 2005
vor 11 Jahren

Die Konsolen werden zu geschätzt 99% nicht über WinAPI realisiert, sondern sind normalerweise direkte Steuerelemente der jeweiligen Game-Engine bzw. selbstentwickelt. Deshalb wirst du da auch keine Möglichkeit finden, das auszulesen, falls es keine Schnittstelle gibt.

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Könnte man die Gamekonsole auf einer Form zeichnen, sodass sie in meiner Anwendung integriert ist und kein separates Programm ist?

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo Let it Burn,

ich denke, auf deine letzte Frage gilt die Antwort von malignate auf die Frage davor analog. Sprich, wenn das Spiel nicht extra etwas dafür anbietet, wird es wohl nicht generell gehen.

herbivore

L
Let it Burn Themenstarter:in
21 Beiträge seit 2013
vor 11 Jahren

Schade.
Dann kann hier abgeschlossen werden...

Danke für eure Hilfe 👍