[winApi] Text ab einem bestimmten Punkt aus einem RichEdit auslesen

roxX0r

Mitglied
Hallo...

ich versuche einen Teil eines Textes aus einem RichEdit eines anderen Programmes auszulesen...

ich bin soweit jetzt gekommen, aber ich bekomm nur ein char aus dem p array raus?

Code:
              TEXTRANGE trw, *_trw;    
        pid = 1;
        GetWindowThreadProcessId(edit, &pid);
        process = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ |
                PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION, FALSE, pid);    
        _trw = (TEXTRANGE*) VirtualAllocEx(process, NULL, sizeof (TEXTRANGE),
                MEM_COMMIT, PAGE_READWRITE);          
           
        printf("%d, %d\n", process, pid);
        char* cBuffer;
        char p[50];
             
         cBuffer = (char*) VirtualAllocEx(process, NULL, 50,
                MEM_COMMIT, PAGE_READWRITE);            
             
         
             trw.chrg.cpMin = 2;
             trw.chrg.cpMax = 49;
             trw.lpstrText = (LPSTR)cBuffer;
             WriteProcessMemory(process, _trw, &trw, sizeof (TEXTRANGE), NULL);
             printf("%d\n",SendMessage(edit, EM_GETTEXTRANGE, 0 , (LPARAM)_trw));

            ReadProcessMemory(process, cBuffer, p, 50, NULL);
             printf("%s\n", p );
             
             VirtualFreeEx(process, _trw, 0, MEM_RELEASE);

edit ist ein gültiges Handle zu einem RichEdit eines anderen Programmes...
Was mir ausgegeben wird ist die Zahl der kopierten Zeichen, d.h. es wird was kopiert. Und genau ein Zeichen ....
Wie komm ich an die anderen 50. Sie stehen definitiv in "cBuffer" und mit ReadProcessMemory kopiere ich sie doch in "p" ?
Danke für die Hilfe
 
Zuletzt bearbeitet:
Zurück