Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi [DELPHI 2010] EnumWindows mit Handle (https://www.delphipraxis.net/147240-%5Bdelphi-2010%5D-enumwindows-mit-handle.html)

DarkItachi 4. Feb 2010 11:22


[DELPHI 2010] EnumWindows mit Handle
 
Hallöchen!

Langsam bin ich echt sauer, dass mein Vater mit Delphi 2010 von seiner Firma mitgebracht hat!
Nagut, es ist schnell, stabil und teuer! JEDOCH LASSEN SICH VIELE SOURCECODES NICHT KOMPILIEREN!!!!!! :evil:
Ich glaube ich werde wieder zu delphi 7 umsteigen müssen!


Naja.. Jetzt zu meinem Problem:

Ich habe von Torry's Delphi Pages diesen Code:
Delphi-Quellcode:
function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindowVisible(wHandle) then
     lb.Items.Add(string(Title) + '-' + string(ClassName));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumWindowsProc, Integer(Listbox1));
end;
um in einer ListBox alle offenen Fenster aufzulisten! [+ Handle]

Doch kompilieren lässt sich mal wieder nicht, der Aufrufcode!
Nach
Delphi-Quellcode:
EnumWindows(@EnumWindowsProc
sagt er:
Variable erforderlich!

Hat jemand ne Idee? :drunken:

Dezipaitor 4. Feb 2010 12:01

Re: [DELPHI 2010] EnumWindows mit Handle
 
Hmm, bei mir funkz es auf Anhieb in 2010. Welche Units nutzt du?

DarkItachi 4. Feb 2010 12:21

Re: [DELPHI 2010] EnumWindows mit Handle
 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;

Also ich weiß auch nicht weiter...

Dezipaitor 4. Feb 2010 12:29

Re: [DELPHI 2010] EnumWindows mit Handle
 
Zeig mal DEINEN gesamten Code.

DarkItachi 4. Feb 2010 12:32

Re: [DELPHI 2010] EnumWindows mit Handle
 
Liste der Anhänge anzeigen (Anzahl: 2)
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 EnumWindows(@EnumWindowsProc, Integer(ListBox1));
end;

function TForm1.EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindowVisible(wHandle) then
     lb.Items.Add(string(Title) + '-' + string(ClassName));
end;

end.

Hoffentlich ist das kein dussliger Fehler :pale:

DeddyH 4. Feb 2010 12:36

Re: [DELPHI 2010] EnumWindows mit Handle
 
EnumWindowsProc muss eine reguläre Funktion sein, keine Methode.

himitsu 4. Feb 2010 12:39

Re: [DELPHI 2010] EnumWindows mit Handle
 
Jupp, funktioniert ohne Probleme.

Nur dieses stört mich etwas, aber es bereitet zumindestens keine Probleme.
Zitat:

Die Direktiven near, far und export beziehen sich auf die Aufrufkonventionen bei der Programmierung für 16-Bit-Windows-Umgebungen. Sie dienen ausschließlich der Abwärtskompatibilität und haben in 32-Bit-Anwendungen keine Auswirkung.
Zitat:

function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
PS: Das kommt davon, wenn man was anderes zeigt und nicht das, wo man Probleme hat.

DarkItachi 4. Feb 2010 12:42

Re: [DELPHI 2010] EnumWindows mit Handle
 
OK, sry!

wie muss ich das denn jetzt machen?
Wisst ihr, ich hatte Delphi nie in der Schule und habe mir das selber beigebracht!
Wie muss ich das jetzt aufrufen? ^^


[DCC Fehler] Unit1.pas(29): E2003 Undeklarierter Bezeichner: 'EnumWindowsProc'
Wenn ich das so schreibe function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;





€D1T: OK Ok alles Ok!
Danke! Danke Danke!

GOOGLE: http://www.google.de/search?rlz=1C1C...%A4re+funktion ^^

DeddyH 4. Feb 2010 12:53

Re: [DELPHI 2010] EnumWindows mit Handle
 
Setze die Funktion im Quelltext vor den Aufruf.

DarkItachi 4. Feb 2010 12:55

Re: [DELPHI 2010] EnumWindows mit Handle
 
Ja, so ist das noch besser! Klasse! ^^
Hier erhält man sehr viel Erfahrung und Hilfe :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz