Avatar billede bone Nybegynder
24. april 2001 - 20:50 Der 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?

MvH

Bone
Avatar billede nico26 Nybegynder
24. april 2001 - 21:01 #1
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;
Avatar billede nico26 Nybegynder
24. april 2001 - 21:06 #2
du skal huske at erklære functionen i interface delen:

function EnumWnd(Wnd: HWND; LParam: LParam): Bool; stdcall;
Avatar billede nico26 Nybegynder
24. april 2001 - 21:06 #3
du skal huske at erklære functionen i interface delen:

function EnumWnd(Wnd: HWND; LParam: LParam): Bool; stdcall;
24. april 2001 - 21:09 #4
kan du programmere i c++ nico?
Avatar billede nico26 Nybegynder
24. april 2001 - 21:11 #5
meget lidt - hvorfor da
Avatar billede nico26 Nybegynder
24. april 2001 - 21:14 #6
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
24. april 2001 - 21:23 #7
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:)

Takker___lidt kedelig post jeg giver her
Avatar billede nico26 Nybegynder
24. april 2001 - 21:55 #8
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.
Avatar billede bone Nybegynder
24. april 2001 - 22:41 #9
Nico22>> Hvorfor skal det der Result := true med i funktionen og hvad gør 0\'et efter @enumwindow?
Avatar billede nico26 Nybegynder
24. april 2001 - 23:05 #10
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.
Avatar billede martinlind Nybegynder
25. april 2001 - 09:46 #11
insaneinthebrain2000killerjoeyoungkiller! >>

Kig her >> http://www.eksperten.dk/spm/56912

/Martin
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester