Fremdes Fenster auslesen

  • So Leute da ich nu absolut nicht weiter komme brauche ich hier ma hilfe^^


    Ich versuche den iBot auszulesen...
    Mit ReadProcessMemory ist da ja nicht viel da der iBot den GoldWert direkt aus dem Packet holt und ins Label auf der GUI schreibt.
    Die Speicheraddresse der Werte der Labels sind bei Programmstart immer anders...


    Nun hatte ich halt noch meine Schleife in der ich mir die Prozess ID's geholt hatte für meine Bot Prozesse.


    Dann meinte Peach ich solle es mal mit EnumChildWindows versuchen. Inzwischen habe ich es ja so weit das ich scheinbar alle Controls aller Bots finden kann....


    Aber^^ ... Wenn ich in meiner Callback funktion via strcmp vergleiche ob ein String mit einem aktuell abgelesenen Goldwert übereinstimmt erhalte ich kein Ergebniss...


    Hier mal mein Code vielleicht könnt ihr mir ja helfen.


    Ziel: Den Goldwert von allen Bots auslesen.





    danke im vorraus


    MfG Sick^

  • Weiß ich net obs so klappt, aber ich hätte es so versucht.
    [cs]
    void Test( )
    {
    HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, NULL );
    PROCESSENTRY32 p32;


    p32.dwSize = sizeof( PROCESSENTRY32 );
    Process32First( hSnapshot, &p32 );


    char window_name[ 256 ];


    while( Process32Next( hSnapshot, &p32 ) )
    {
    GetWindowText( ( HWND )p32.th32ProcessID, window_name, 256 );
    if( !strcmp( window_name, "[ISRO - iB0t] Silkroad Online B0t - http://ibotforfun.blogspot.com/" ) )
    {
    cout << "control: " << window_name << endl;
    }
    }


    CloseHandle( hSnapshot );
    }
    [/cs]


    MfG

  • peach das hilft nicht das habe ich schon lange... die frage ist wie ich rausfinde welches das control ist mit dem goldvalue



    (meine maus befindet sich auf der "0" vom Gold Amt.)
    so findet man es bei AutoIt raus...weiß nicht inwiefern das für C++ verwendbar ist
    MfG

    Rsro (Artemis):
    ЛисаСССР(110 - Glavie)|Критика(110 - Rogue)|Руго(108 - Wizard)|Помет(106 - Nuker)
    Status: inaktiv
    Diamond Sro:
    _Crit2Death_ (110ff - Rogue Bard) | Inamorta (110 - Fire Force Bow)
    Status: inaktiv

  • kannst du mir sagen ob die control id oder die instanz immer gleich ist bei jedem bot start und character


    Edit: hab mal geforscht windowinfo gibts allerdings hab ich immernoch kein plan wie ich damit rausfinde welches das gold control ist^^


    die instance ist jedesmal gleich...
    und wenn es kein allzu großes projekt sein sollte sondern nur dazu da ist die gold werte rauszufinden würde ich dir echt autoit empfehlen
    (kann dir auch ein paar code schnipsel aus meinem manager zukommen lassen)

    Rsro (Artemis):
    ЛисаСССР(110 - Glavie)|Критика(110 - Rogue)|Руго(108 - Wizard)|Помет(106 - Nuker)
    Status: inaktiv
    Diamond Sro:
    _Crit2Death_ (110ff - Rogue Bard) | Inamorta (110 - Fire Force Bow)
    Status: inaktiv

  • ne danke ich will für meine g15 ne kleine app machen die den gesamt goldbesitz anzeigt das was man ca pro minute und ca pro tag macht und das geht nur mit cpp meines wissens nach^^


    ich müsste nur noch ne möglichkeit finden die instanz oder den instanznamen auszulesen....


    die strunktur WindowInfo brint sowas i-wie nicht mit sich^^


  • die instance ist jedesmal gleich...
    und wenn es kein allzu großes projekt sein sollte sondern nur dazu da ist die gold werte rauszufinden würde ich dir echt autoit empfehlen
    (kann dir auch ein paar code schnipsel aus meinem manager zukommen lassen)


    kannst du mal den autoit befehl sagen mit dem du das ausliest? dann kann man ja ganz einfach schauen welchen c befehl autoit benutzt

  • Ja, bei ControlGetText wird entweder das Handle oder die ID oder Art + Instanz des Controls übergeben.
    Die ID von dem Control wird nicht immer die gleiche sein. Ich würde mich jedenfalls nicht darauf verlassen. Denn ändert der iBot-Ersteller mal was anner GUI kann es schnell sein, dass sich diese ändert. Das gilt auch für die Instanz.
    Ich würds echt mitm Speicher machen, wenn du willst, dass das möglichst lange funktioniert.

  • ja also mit umgebung gleich und so is da nix....


    hier mal nen beispiel


    bot start1 00 00 00 00 EC 01 A6 03 23 C5 D2 62 B8 CC 00 18 37 31 32 39 36 00 00 00 00 00 00 00 00 00 00 00
    bot start2 00 00 00 00 EC 01 CF 01 E2 48 56 05 6A 9A 00 18 37 31 32 39 36 00 00 00 00 00 00 00 00 00 00 00


    der Goldwert 37 31 32 39 36 -> 71296 ist der selbe aber die umgebung nicht