Autor Beitrag
Manfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: So 27.07.03 01:53 
Hi!

Ich will auch mal etwas Verwirrung stiften: Mag sein, dass der Name der Anwendung nicht geändert werden kann, aber der Name des Main-Windows bleibt auch dann gleich, wenn das Programm umbenannt wird. Die meisten Delphi-Programme dürften wohl den Namen "TForm1" besitzen. Wie wär's, wenn man eine Liste aller existierenden Fenstertitel zusammenstellt?

Formular basteln mit einem TRichEdit (Name re) und einem Button (Name Button1). Programm starten und Button betätigen. Hier ist der Code:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    re: TRichEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function enumwndproc ( h : HWND ; l : lParam ) : bool ; stdcall ;
var
  fname : array [ 0..70 ] of char ;
  cname : string ;
  wname : string ;
begin
  GetWindowText ( h , @fname , 70 ) ;
  wname := fname ;
  GetClassName ( h , @fname , 70 ) ;
  cname := fname ;
  form1.re.lines.add ( wname + '  :  ' + cname ) ;
  result := true ;
end ;

procedure TForm1.Button1Click(Sender: TObject);
begin
  enumwindows ( @enumwndproc , 0 ) ;
end;

end.

Das Resultat liefert alle Fenster am Rechner. Das gesuchte Fenster ist auch dabei. Frage: Wie heißt es?

_________________
Computer können schneller rechnen als wir, deshalb machen sie auch mehr Fehler