c ++ - Henter GUI-objekter fra en anden proces

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil hente et GUI-objekt, så jeg kan læse og ændre de objekt.
Lige nu er den eneste måde jeg kan tænke på at gøre dette på via injektion (hvor injektionen gør meget af hentningen af ​​dataene og sender tilbage, hvad jeg vil). Mit problem med injektion er, at jeg ikke nemt kan debugere det, og det tager lang tid at finde ud af, hvad man skal gøre.


Jeg kan finde håndtaget på GUI objektet, så er der en måde jeg kan bruge ReadProcessMemory () eller noget lignende her, så jeg kan læse hukommelsen i en anden proces og fra dette bygge det op i det GUI objekt, jeg vil have?

Bedste reference


Hvis du antager, at du har de rigtige tilladelser og har en eller anden måde at opnå vindueshåndtaget (HWND) for et bestemt GUI-objekt (se FindWindow()), kan du ringe til almindelige Win32 API-funktioner som SetWindowText() at ændre indholdet af disse GUI objekter. [4] [5]


Hvis dette gør det, kan det bryde den anden proces 'logik! Hvis processen, der ejer GUI-objektet, har cachelagret nogle oplysninger, og du ændrer kilden bag sin ryg, får du muligvis ikke den ønskede effekt.