Autor Beitrag
5M17H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

XP, Vista32, bald auch Vista64
PHP(3/5), Delphi(2), Java(1), C(3), C#(1)
BeitragVerfasst: Mo 02.07.07 19:07 
ausblenden EnumWindows(@TProgramme.ProgrammnamenAusgeben,0);
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function TProgramme.ProgrammnamenAusgeben(Wnd: THandle;  LParam: Integer): Boolean;
var Laenge : Integer;
    Text : String;
    rueck: boolean;
begin
  Rueck := true;
  laenge := GetWindowTextLength(Wnd);
  SetLength(Text, laenge);
  GetWindowText(Wnd, PChar(Text), laenge+1);
  if trim(Text) <> '' then
    form1.memo2.lines.add(text);
  result := rueck;
end;

Wieso ist 'wnd' immer der gleiche wert? Benutze ich EnumWindows falsch oder was?


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Mo 02.07.2007 um 19:08
Dezipaitor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: Mo 02.07.07 19:42 
Soweit ich weiß, darfst du keine Methode verwenden, sondern musst eine normale Funktion verwenden, die zudem noch stdcall am Ende stehen hat.
Über LPARAM kannst du ja den Instanzpointer übergeben.
5M17H Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

XP, Vista32, bald auch Vista64
PHP(3/5), Delphi(2), Java(1), C(3), C#(1)
BeitragVerfasst: Mo 02.07.07 20:33 
Äh entschuldigung.
Aber ich habe von deinem Post sowenig wie 1 wort verstanden. function. Kannst du bitte etwas 'unprofesioneller' reden damit ichs verstehe :oops: :lol: 8)
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Mo 02.07.07 20:48 
user profile icon5M17H hat folgendes geschrieben:
Äh entschuldigung.
Aber ich habe von deinem Post sowenig wie 1 wort verstanden. function. Kannst du bitte etwas 'unprofesioneller' reden damit ichs verstehe :oops: :lol: 8)

So in etwa:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ProgrammnamenAusgeben(Wnd: THandle;  LParam: Integer): Boolean; stdcall;
var Laenge : Integer;
    Text : String;
    rueck: boolean;
begin
  Rueck := true;
  laenge := GetWindowTextLength(Wnd);
  SetLength(Text, laenge);
  GetWindowText(Wnd, PChar(Text), laenge+1);
  if trim(Text) <> '' then
    form1.memo2.lines.add(text);
  result := rueck;
end;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 02.07.07 22:23 
Zur Erklärung: methoden habe imme rnoch den unsichtabren Self-Paramter. Somit würden bei der Callback Funktion als Methode die Paramter nicht mehr stimmen, da der Self-Parameter noch dazu kommt.
5M17H Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164

XP, Vista32, bald auch Vista64
PHP(3/5), Delphi(2), Java(1), C(3), C#(1)
BeitragVerfasst: Mo 02.07.07 22:32 
Jungs ihr seid die größten.... DANKE