24. april 2001 - 20:50Der er
10 kommentarer og 1 løsning
Getwindow, enumwindows
Jeg sidder lige og leger lidt med getwindowtext og enumwindows - den sidste kan jeg egentlig ikke finde ud af, men takket være et eksempel jeg fik fra en af mine venner, dur det endda. Jeg ville høre, om der var nogen, der kunne give et velforklaret eksempel på en implementering af enumwindows og enumwindowsproc - gerne noget med et program, der finder alle vinduer, og lægger dem ind i et listbox.
Ovennævnte program har jeg allerede fået lavet med getwindowstext, men programmet finder alle sk*de applikationer, som kører, og ikke kun de åbne vinduer (topwindows, eller hvad det nu er, de hedder)- hvorledes kan man skille fårene fra bukken, så alle de uinteressante ting ikke kommer med?
function EnumWnd(Wnd: HWND; LParam: LParam): Bool; var Text: array[0..255] of Char; begin if IsWindowVisible(Wnd) then if GetWindowText(Wnd, Text, 255) <> 0 then Form1.Memo1.Lines.Add(Text);
Result := True; end;
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Clear; EnumWindows(@EnumWnd, 0); end;
bone>>lidt forklaring: enumwindows tager som parameter en pointer til en såkaldt callback function, der bliver kaldt hver gang enumwindows finder et vindue (svarer lidt til delphi events). Hvis vinduet er synligt, og det har en windowtext, bliver det skrevet ud i memoen
Jeg interessere mig meget for programmering og kunne godt tænke mig at starte i c++. Jeg kender en, som intet vidste om programmering, men en bog og en masse tutorials og øvede sig selvfølgelig og herefter et år ved han en del, meget synes jeg. de fleste c++ bøger eller programmerings bøger er generalt dårlige. For eksempel læste jeg engang i en delphi bog, som vidste mig hvordan man lavede en database. Jeg tror at 90% var knapper og componenter man bare smed på formen resten var noget man selv skulle skrive og når man ikke kender sproget og får en kæmpe kode i hovedet hjælper en forklaring ikke. C++ bøger omhandler altid dos programmering. Du synes sikkert også, at det er et godt sted at starte, men datamatiker uddannelserne er begyndt på at lærer eleverne Java og C++ windows programmering tidligere. jeg har det sådan... Teach your self c++ in 21 days hjælper mig intet..jeg skal have en god dansk bog først... Har du noget gode råd så ville jeg være glad:)
Hvis du gerne vil programmere i windows, syntes jeg du skulle overveje Delphi. Object Pascal er et meget \"venligere\" sprog, og du har nogenlunde de samme muligheder som med c++. Jeg kender ikke andre c++ bøger en teach your self, som jeg dog syntes var ok, men det er selfølgelig også nemmere at sætte sig ind i, når man kender et andet OOP sprog i forvejen.
Result := True betyder at EnumWindows skal fortsætte.
LParam er en bruger-parameter. dvs. den værdi du putter ind i EnumWindows, bliver sendt videre i callback-funktionen - du kan sætte den til hvad som helst, windows er ligeglad.
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.