.net - Få tekst fra a-tekstboks i andet program - ved hjælp af hwnd

Indlæg af Hanne Mølgaard Plasc

Problem



hej, jeg har et vindue fra et program, når jeg ser det i UIspy, har jeg bemærket, at RuntimeIds af childs er som:


"window"      RuntimeId:        "42 1510446"  //parent
    "pane"    RuntimeId:        "42 394736"
    "image"   RuntimeId:        "42 1510446 2 0"
    "button"  RuntimeId:        "42 1510446 2 1"
    "text"    RuntimeId:        "42 1510446 2 2"


Jeg har brug for at få indholdet af 'tekst' og jeg har en funktion, der kan gøre det, men jeg har brug for hwnd.
har 'tekst' en hwnd (det skal være 1510446 eller noget)? eller hvordan kan jeg få adgang til det?

Bedste reference


HWND er tildelt, når tekstvinduet er oprettet, og det vil variere hver gang vinduet indeholdende det er indlæst.


Du skal bruge:



  1. Hent HWND af det indeholdende vindue med FindWindow(Ex)

  2. Brug det som forælder HWND ring til FindWindowEx igen med angivelse af TEXT som klassenavn

  3. Få størrelsen på det faktiske tekstindhold med SendMessage/WM\_GETTEXTLENGTH & opret en buffer

  4. Fyld den buffer med værdien ved hjælp af SendMessage/WM\_GETTEXT



Dette antager, at der kun er en af ​​vinduesklassen på moderfeltet, og at text er en implementering af lagerklassen EDIT.