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:
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 public 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?