INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Poker - PokerStars - Instant Hand History aufzeichnen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

30.10.2011, 12:47
Beitrag #21

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Hey lv_user,

also die direkte Antwort lautet nein. Hast Du auch mal versucht über die user32.dll andere "Dinge" auszulesen - nur um dich an die Handhabung zu gewöhnen (z.B. isChild oder das Fenster zu verschieben)? Dann habe ich im noch ein bisschen gesucht, da so scheint mir nirgends steht wie man ein Child ausließt und bin auf dieses Tutorial gestoßen (natürlich für C++). Behandelt leider nicht die Hauptfrage direkt, lässt aber einen Einblick in die Child Funktionen zu. In dem Tutorial wird eine TextChildProc Funktion erstellt zu der ich keine Beschreibung gefunden habe, die aber ähnlich der EnumChildProc Funktion ist, die man in LabView benutzen kann. Die Funkionen an sich sind sehr schwer zu verstehen, da ich mit meinen C- Kenntnissen zu Pointer noch nicht vorgedrungen bin, EnumChildProc soll aber Teile des Child auslesen, richtig angesprochen habe ich diese aber auch noch nicht bekommen.
Das mit den LabView Abstürzen kann ich nur bestätigen, läuft bei mir WinDowse und das VI ist nicht aktiv, kann es trotzdem sein das LabView abschmiert, nur wenn man mit der Maus darüber fährt - keine Ahnung was hier falsch läuft.
Ich bin jedenfalls noch dran.

Gruß snuz

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.11.2011, 09:24
Beitrag #22

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Es gibt noch eine andere Möglichkeit an die Daten heran zukommen. Gestern wurde mir Wireshark vorgestellt, damit kann man den Netzwerkverkehr beobachten. Dieses Wireshark benötigt, um den Verkehr abzuhören WinPcap. Dies, so wie ich es verstanden habe, ist ein Proxy der den Traffic halt "einfach" umleitet damit man drauf Zugriff hat. Jetzt kommt LabView wieder ins Spiel, es gibt ein "Packet Sniffer Example" somit laufen die gewollten Daten direkt an einem vorbei. Man müsste einfach mal ein bisschen damit rumspielen, ob man da zu einer Lösung kommen kann.

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2011, 11:18
Beitrag #23

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Ok und weiter gehts. Also Handverlauf ist ja Parent und unsere "Textbox" ist Child. Zusätzlich gibt es das Problem, dass die Textbox 2 Parents hat. Mit lvwutils kann man ja die Handle der Fenster auslesen, aber nicht deren Childs. Handverlauf kann man also auslesen, man sieht auch das nach einem Neustart sich der Handle jedes mal ändert, also sucht man um den Handle auszulesen nach "Handverlauf" und hat jetzt immer den richtigen Handle.
So, da das jetzt feststeht ist die Frage wie finde ich raus welche Childs "Handverlauf" hat und da gibt es die 'FindWindowEx' Funktion(user32.dll). Die Funktion ist ziemlich einfach, ich glaube deshalb hat es auch funktioniert Undecided. Man übergibt den ParentHandle, also den Handle von "Handverlauf", und weißt für für hwndChildAfter eine "0" zu. Die "0" bedeute: gib mir das erste Child was Du findest. So jetzt bekommt man den Handle des ersten Childs! Jetzt packt man das Ganze in eine For-Schleife und übergibt den Handle des ersten Childs hwndChildAfter, also fragt die Funktion welches Child nach dem gefunden Child (das erste welches Handverlauf hat) steht und so weiter bis keine Childs mehr da sind. So das 2. Child interessiert hier am meisten, da die Textbox die wir auslesen wollen ja 2 Parents hat und (*Anfang der dramaturgische Pause*)...(*Ende der dramaturgische Pause*) diese 2. Child ist das zweite Parents von Textbox und somit wichtig fürs auslesen. So weiter bin ich momentan noch nicht...

Gruß snuz


Angehängte Datei(en) Thumbnail(s)
   

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2011, 09:39
Beitrag #24

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Und wieder einen kleinen Schritt weiter. Um den Text eines Objektes sei es nun ein Parent oder Child auszulesen benötigt man die Länge der Information die in dem Objekt gespeichert ist (als Platzhalter). Nun funktioniert weder die "GetWindowText" noch die "GetWindowTextLength" Funktion bei Childs. Jetzt gibt es die Funktion "SendMessage", diese kann verschiedene Nachrichten an Button, Textbox etc. schicken (also an Childs, vermutlich auch an Parents). Nun gibt es die Nachricht "WM_GETTEXTLENGTH", diese ist mit dem Wert '0x000E' definiert. Sendet man nun "E" an ein Child erhält man die Länge zurück. Wichtig für die Funtkion "SendMessage" ist nur der Handle und die Nachricht, die beiden anderen Parameter müssen "0" sein.
Wenn man nun das Ergebnis betrachtet (s.B.) erkennt man, dass das erste Child "197878" 11 Zeichen lang ist, zum Verständnis da steht der Wert "Alle Tische" drin. Wählt man nun einen Tisch aus und startet das LabView Programm erneut, stellt man fest, dass sich der Wert anpasst. Man hat also Zugriff auf dieses Child (und die anderen). Das zweite Child "197874" hat eine Länge von "0", hier ist nichts schief gelaufen - dieses Objekt besitzt einfach keinen Text, genau wie das nachfolgende Child. Problematisch ist hier, man kann nicht nach einem bestimmten Namen suchen, um genau dieses Child zu finden, da es ja keinen hat und der Handle sich bei Neustart des Programms ändert. Dieses Child "197874" ist wichtig, da es ja das Parent von unserer Textbox ist die wir auslesen wollen.
"SendMessage" unterstützt natürlich auch andere Nachrichten, wie z.B. WM_GETTEXT, also welchen Text beinhaltet das Element / Objekt.

Gruß snuz


Angehängte Datei(en) Thumbnail(s)
   

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2011, 15:30
Beitrag #25

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Hey Lv_user,

(29.10.2011 17:41 )lv_user schrieb:  .... habe bisher mit Hilfe von lvwutils geschafft die "handles" bzw. die Nummern der einzelnen Childs auszulesen ....

kannst Du mal schreiben wie Du an die Handles der Childs gekommen bist? Evtl. gibt das noch einen Denkanstoß, über lvwutils bin ich nicht an die Handles der Childs gekommen.

Gruß snuz

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2011, 22:55
Beitrag #26

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Die Liste der gespielten Hände wird doch sicherlich nach einem http-Request von einem Server bereitgestellt. Wäre es nicht möglich, dass LabVIEW diesen Request sendet und dann gleiche die Liste in der Hand hält, die dann nur noch analysiert werden muss?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
13.11.2011, 13:53
Beitrag #27

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
(11.11.2011 22:55 )unicorn schrieb:  Die Liste der gespielten Hände wird doch sicherlich nach einem http-Request von einem Server bereitgestellt. Wäre es nicht möglich, dass LabVIEW diesen Request sendet und dann gleiche die Liste in der Hand hält, die dann nur noch analysiert werden muss?

Das hab ich mir auch schon überlegt. Mit wireshark kann man schauen auf welchen Port die Antwort vom Server kommt, nur ist hier das Problem, dass scheinbar keine zwei Anwendungen auf dem gleichen Port lauschen können (da dann in LabView die Fehlermeldung kommt Port ist bereits belegt). Über das oben genannt VI "Packet Sniffer Example" würde das gehen, denn WinPcap ermöglicht das man den Traffic ansehen kann (durch eine Umleitung des Traffics). Man müsste es mal ausprobieren, ich weiß allerdings nicht wie man den Datenstream in "etwas Lesbares" umwandeln kann.

Gruß snuz

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.11.2011, 18:11
Beitrag #28

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
Ich habe mich jetzt noch nicht mit der Form der Liste der Hände auseinandergesetzt. Aber sie wird ja z. B. vom IE dargestellt. Also kann LabView die Daten empfangen und sie in einem über eine in einem Active-X-Control eingebetteten IE-Instanz darstellen und gleichzeitig analysieren. Datenformat ist HTML.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.11.2011, 08:51
Beitrag #29

snuz Offline
LV-Eumel
**


Beiträge: 245
Registriert seit: Mar 2009

2011
2008
EN


Deutschland
RE: Poker - PokerStars - Instant Hand History aufzeichnen
So, geschafft! Mit der Message MW_GETTEXTLENGTH bekommt man die Anzahl der Zeichen die man einlesen muss und mit WM_GETTEXT (alles mit der Funktion SendMessage) bekommt man den Text des Child. Vorher wendet man die Funktion, mit der wir die Childs des Hauptfensters "Handverlauf" auf das 2. Child von Handverlauf an, dadurch bekommen wir den Handle unserer Textbox (das 2. Child von Handverlauf ist Parent von unserer Textbox und die Texbox ist das 3. Child vom 2. Child von Handverlauf). Das Ergebnis und der Code s.B..

Gruß snuz


Angehängte Datei(en) Thumbnail(s)
   

Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.

http://www.techniker2013.eu
http://www.plapilab.de
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: