kann nicht genau sagen, ob OpenGL oder DirectX aber ich denke mal, das es im diesen Fall unwichtig ist.
Ich habe ein Fenster wo ein Spiel läuft, wo eine Namen und Passwordabfrage mit drinn ist.
Via Handle kann ich das Fenster anwählen.
Meine Frage ist, ob es eine Möglichkeit gibt ohne weiteres mittels Delphi diese Edit-Felder anzuwählen. Hab schon versucht mit einem Tool, womit ich informationen zum Handle bekomme die Edit-Felder anzuwählen was allerdingst nicht funktionierte, da es anscheinend eine Grafische Komponente ist.
Muss ich dann wirklich die Maus dann zur Hilfe nehmen? Zum anwählen halt.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Habe das mal ins Allgemeine verschoben, da es mit OpenGL jetzt so direkt nichts zu tun hat.
Also wenn das eine selbstgeschriebene Komponente ist, dann haben die intern auch eine eigene Fensterverwaltung. Und auf die interne Fensterverwaltung zurückgreifen ist so ziemlich unmöglich. Das Eingabefeld anwählen könntest du evtl. indem du einen Mausklick auf das Originalfenster simulierst. Mitunter kannst du dann auch noch Tastendrücke simulieren etc. Aber das kommt darauf an was dort benutzt wird. Wenn sie also Normale Windowsmessages verarbeiten sollte es gehen. Mit DirectInput etc dürfte es recht schwer werden. Außerdem benötigst du detailierte Informationen darüber wo sich was befindet. Allerdings wäre das alles nur in eine Richtung möglich. Die andere Anwednung würde höchstwahrscheinlich niemals antworten oder daten zurückliefern.
Ok, dann bleibt mir wohl nichts anderes übrig, als meine Maus zu sagen, klicke auf position x-y.
Noch ne frage am Rande. Wie kann ich dann, wenn das Feld im "Eingabemodus" ist eine Variable an das Feld senden ?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das klingt wie irgendein Login-Knack zeugs...
Wenn es das ist, dann find ich es ziemlich armseelig wenn mans noch nichtmal komplett selber schreiben kann...
Ganz nebenbei hat Lossy deine Frage schon beantwortet. Sicherlich willst du nicht "eine Variable" übertragen sondern einen string. Und wie gibt der Nutzer gleich Strings ein?...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Entschuldige Flash das hier nicht jeder so ein Crack ist wie du. Und wenn ich schon so eine Frage stelle ist die bestimmt nicht, weil ich wissen möchte ob andere es auch wissen. Bin eigentlich niemand der irgendein Streit anfangen will aber wenn man solch überheblichen Antworten bekommt find ich es wirklich erbärmlich so unkooperativ zu sein.
Hättest mir einfach mal geschrieben, wie ich den Befehl "DirectInput" anwende, hätte ich nix gesagt.
Aber da der Herr sich ja nicht mit so billigen Sachen abgibt Frag ich erst lieber garnicht.
Terra
PS: Knacken will ich bestimmt nichts sondern nur ein String von einem Programm in ein anderes übergeben.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
DirectInput ist eine Schnittstelle in DirectX. Diese ermöglicht es direkt auf die Hardware (Masu/Tastatur) zugreifen zu können. Bei einem herkömmlichen Program kannst du Maus und Tastendrücke über Windows Messages senden. Wenn die ander DirectInput verwenden fehlt diese Schicht und ich kann dir nicht sagen, ob die sich dann überhaupt noch manipulieren lassen würden.
Um Messages zu senden gibt es die Methode SendMessage und als Messages dürften WM_CHAR ganz gute Dienste leisten. Fallst du wissen möchtest was für Messages ein Programm bekommt solltest du dir mal den Winspector Spy anschauen.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Da sieht man erst mal was im Windows wirklich alles vor geht. Und das ist auch nur das was an andere Programme gesendet wird.
Du kannst aber auf einzelnen Messages die rechte Maustaste drücken und dann die komplette Gruppe (z.B der Mausmesages) ausfiltern lassen. So kann man das schon recht gut auf das gewollte herrunterfiltern. In dem Messagefenster oben ist auch ein Knopf um die Aufnahme von den Messages anzuhalten oder wiederaufzunehmen. Es empfielt sich nur die wirklich wichtigen Momente aufzunehmen. Alles andere wäre gigantisch und nicht zu durchschauen.
Also, ich konnte rausfinden, das neben dem Clienten im Spiel auch die Edit Boxen zum Login aufgeführt sind. Allerdingst besizen beide die selben Klassen und Werte, sodas man nicht zwischen Namen und Passwort Editfeld unterscheiden kann.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
War das gerade eine Frage?
Sofern es ein typisches Passworteingabefeld ist kann man sie unterscheiden. Und zwar wird in einem Passworteingabefeld ein Passwordchar gesetzt. Das bedeutet eigentlich nur, dass jedes Zeichen des Inhalt mit diesem Zeichen ersetzt wird. Nur zum Anzeigen versteht sich.
So wird dieses Zeichen in der VCL gesetzt. Das Gegenstück zu SET ist natürlich GET. Also sollte dir EM_GETPASSWORDCHAR dabei helfen können die Eingabefelder unterscheiden zu können.
Mitglieder in diesem Forum: Bing [Bot] und 11 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.