15. juni 2003 - 22:33Der er
18 kommentarer og 1 løsning
Gemme internetadresse i char-array
Dau eksperter
Jeg har lidt problemer med at få GetWindowText() til at virke. Problemet er at jeg vil have den internetadresse brugeren skriver gemt i et char-array. Jeg kunne forestille mig at det skulle se nogenlunde sådan ud:
char test[222]=GetWindowText(/*her ved jeg ikke hvad der skal stå*/);
er det rigtigt og hvis ja hvad skal der så stå i parentesen??
Eksempelvis fra FindWindow funktionen, den kan du finde info om på MSDN Library. Det kommer an på, hvilket vindue du vil have fat i. Jeg kan forklare nærmere i morgen, har ikke tid nu - men det er der sikkert en anden, der har ;-)
int main(void) { EnumWindows(EnumWindowsProc, 0); system("pause"); return 0; }
Det eneste er bare at den i stedet for adressen viser det øverste (på nuværende tidspunkt: Eksperten | Programmering : C/C++ :Gemme internetadresse i char-array - Microsoft Internet Explorer) i stedet for det som jeg vil have nemlig: http://www.eksperten.dk/spm/365239 altså internetadressen.
Du skal løbe child vinduerne for IE-vinduet igennem og finde det vindue der har text'en. Du løber child vinduerne igennem med EnumChildWindows (virker ligesom EnumWindows). Du kan så hente teksten med GetWindowText() for alle child-vinduer (det kan være nødvendigt at sende WM_GETTEXT direkte). Du kan bruge GetDlgCtrlID() til at få ID'en for vinduet, så kan du prøve dig frem indtil du finder det rigtige.
Jeg må ærlig talt indrømme at jeg ikke kender noget til EnumChildWindows(). Er der en der gider forklare mig om den. Er det en funktion jeg bare skal køre igennem med et loop EnumChildWindows(1) osv........?
Du skal enumerere dine child windows. For hvert child window skal du så kontrollere, om det er addressefeltet, du har fat i. Addressefeltet er altid en ComboBoxEx32, og derfor kan du kontrollere om det er det rigtige child window ved at hente det pågældende vindue's class name. Dette fejler dog i det tilfælde at der er mere end én ComboBoxEx32 i et Explorer vindue - jeg kan dog ikke komme på, hvornår dette skulle være tilfældet ;-). Når du har fundet det rigtige child window, sender du en WM_GETTEXT message til vinduet og får derved kopieret indholdet af addressefeltet over i en buffer.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.