Mit C# auf den Speicher einer anderen Anwendung zugreifen?
-
Hallo,
ich spiele über das Internet eine Basketballsimulation, bei der wir Spieler Online eine Aufstellung posten, die der Admin dann auf seinem Rechner ins Spiel einträgt. Da er ja auch nur ein Mensch ist kommt es hin und wieder zu Fehlern (also Spieler die auf der falschen Position stehen etc.). Deshalb würde ich das gerne automatisieren, weshalb ich mich auch schon ein wenig erkundigt hatte was es da für Möglichkeiten gibt. Als erstes bin ich auf das UIAutomation Framework gestoßen, dank dem man Klicks etc. simulieren kann.
Dies funktioniert leider nicht bei allen Steuerelementen, weshalb daraus leider nichts geworden ist. Mir kam nun die Idee das - sobald der Speicherstand des Spiels geladen wird - ja auch die zuletzt genutzte Aufstellung in den Speicher geladen wird. Diese könnte man ja - so stelle ich es mir zumindest vor - manipulieren.
Geht das überhaupt mit C#? Ich denke da an "unsafe" Methoden. Habe allerdings noch keine Erfahrung damit.
Einen schönen Tag wünsche ich noch.
-
Ich denke nicht dass es sinnvoll ist fremden Speicher zu manipulieren. Schließlich haben wir ja nicht drei Jahrzehnte der Abstraktion mühvoll durchgezogen um es jetzt wieder einzureißen.
Was ist das für eine Anwendung die der Admin verwendet? Du könntest doch einen anderen Weg finden:
* du sendest ein xml-File zum Admin die er dann einlädt.
* du schreibst es in eine Online-DB, die er dann ausliest.
* die Admin-App bietet eine Webservice an über den du deine Aufstellung postest
-
Wenn der Fehler auf der Seite des Admins zu suchen ist, ist er auch dafür verantwortlich.
Informiere ihn über Fehler und lass es korrigieren, nicht mutwillig seine eingaben manipulieren!Für die Zukunft kann man sich ein Weg ausdenken die ein Fehler auf seiner Seite verhindert, zb die bereits angesprochene Datenbank oder Informationsdatei.
-
Danke schon einmal für die Antwort.
Ich denke nicht dass es sinnvoll ist fremden Speicher zu manipulieren.
Denke ich ebenfalls nicht, mir fallen nur keine anderen Möglichkeiten ein. Aber ich programmiere auch erst seit knapp 3 Monaten. Da wird mir wohl das Wissen fehlen.
Was ist das für eine Anwendung die der Admin verwendet?
Folgendes Computerspiel - http://www.fbbgames.com/index.htm
Dazu sei gesagt das dieses Spiel eigentlich schon eine Option bietet, dank der die Spieler ihre Aufstellung in einem File speichern können (hat die Endung .exp), welches man als Admin dann nachher in das eigene Spiel laden kann. Allerdings sind in dem Spiel ein paar Fehler, und wenn man diese ausnutzt ist das ein enormer Vorteil gegenüber den Spielern die das nicht machen. Aus diesem Grund werden die Savefiles nicht genutzt, sondern alles manuell eingetragen, da man so überprüfen kann ob die Aufstellung Regelkonform ist.
* du sendest ein xml-File zum Admin die er dann einlädt.
So sah mein erster Gedanke sogar aus. Die Spieler machen per Online-Formular ihre Aufstellung, welche dann als XML gespeichert wird. Diese XML-Dateien holt sich ein von mir geschriebenes Programm dann vom Server, liest die Dateien ein, kontrolliert ob sie Regelkonform sind, und trägt dann per UIAutomation Framework die Aufstellungen ein.
Das hat ja leider nicht geklappt. Oder gibt es da eine viel näher liegende Möglichkeit?
Wenn der Fehler auf der Seite des Admins zu suchen ist, ist er auch dafür verantwortlich.
Informiere ihn über Fehler und lass es korrigieren, nicht mutwillig seine eingaben manipulieren!Dies ist schon längst geschen. Er war ja selber derjenige der auf die Idee mit dem Programm gekommen ist.
-
Dann reicht ja ein Programm zum lesen und schreiben von xml Dateien.
Die User starten es, gibt seine Aufstellung ein und lässt es als xml speichern.
Der Admin startet das Ding, liest die xml ein, schaut sich das an und macht dann Copy/Paste wenn alles richtig ist
-
CSL schrieb:
Dann reicht ja ein Programm zum lesen und schreiben von xml Dateien.
Die User starten es, gibt seine Aufstellung ein und lässt es als xml speichern.
Der Admin startet das Ding, liest die xml ein, schaut sich das an und macht dann Copy/Paste wenn alles richtig istDann kann man es ja im Grunde so lassen wie es jetzt ist? Momentan muss er ja Online die Aufstellung lesen und dann ins Programm übernehmen. Sehe da keinen Vorteil wenn er das Offline macht (außer dass das Programm ihm die Validierung abnehmen kann). Beim eintragen kann der Admin ja wieder einen Fehler machen. Oder verstehe ich dich falsch? ^^
Womöglich habe ich auch irgendetwas unklar gelassen, dann bitte bescheid geben.
-
Mag sein, die Fehleranfälligkeit wird aber verringert.
-
Warum schreibst du nicht ein Programm, dass die *exp-Dateien validiert. Die kann man dann anschließend über die schon vorhandene Schnittstelle importieren.
Wäre die denke ich am wenigsten frickelige Lösung.
-
O.o schrieb:
Warum schreibst du nicht ein Programm, dass die *exp-Dateien validiert. Die kann man dann anschließend über die schon vorhandene Schnittstelle importieren.
Wäre die denke ich am wenigsten frickelige Lösung.
Daran habe ich auch gedacht, aber ganz schnell davon abgelassen, da ich dachte das man exakt wissen muss was darin steht, und ich bisher nur mit *txt, *csv, *ini und *xml gearbeitet habe, die man ja auch mit jedem x-beliebigen Texteditor lesen kann. Könntest Du mir da ein Tutorial empfehlen wie man dabei vorgeht? Oder wonach ich suchen muss um mich zu informieren.
-
Big hairy object schrieb:
O.o schrieb:
Warum schreibst du nicht ein Programm, dass die *exp-Dateien validiert. Die kann man dann anschließend über die schon vorhandene Schnittstelle importieren.
Wäre die denke ich am wenigsten frickelige Lösung.
Daran habe ich auch gedacht, aber ganz schnell davon abgelassen, da ich dachte das man exakt wissen muss was darin steht,
ja und? ... der Admin wird Dir sicherlich sagen können wie das Format aufgebaut ist
-
mogel schrieb:
ja und? ... der Admin wird Dir sicherlich sagen können wie das Format aufgebaut ist
Woher soll der Admin wissen wie das Format aufgebaut ist? Der nutzt doch auch nur das Spiel, und hat das nicht entwickelt. Ich würde ihm da eher empfehlen den Entwickler des Spiels zu fragen.
Oder meinstest Du den mit Admin?
-
Dem Entwickler hatte ich schon geschrieben aber keine Antwort bekommen. Eventuell ist meine Email auch einfach im Spamordner gelandet, wer weiß.
O.o schrieb:
Warum schreibst du nicht ein Programm, dass die *exp-Dateien validiert. Die kann man dann anschließend über die schon vorhandene Schnittstelle importieren.
Wäre die denke ich am wenigsten frickelige Lösung.
Habe ich nun gemacht. War nichts weiter nötig als die Teamfiles binär einzulesen.
Danke nochmal an alle für die Hilfe.