Finds auch nicht, aber aber cih hab mal folgenden Schnipsel gebastelt, hilft allerdings noch nicht interher auch die Klasse von der Kompnente im Fenster zu finden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Window: HWND;
WindowClassName: array[0..79] of Char;
begin
//Window := FindWindow(nil, 'Titel in Titelleiste');
Window := FindWindow('Notepad', 'Unbenannt - Editor');
if Window <> 0 then
begin
GetClassName(Window, @WindowClassName, 80); //gehe davon aus das daas NULL an Ende mit gezählt wird, falls das falsch ist, bitte mal anmerken
Showmessage('Fenster lpClassName: ' + WindowClassName);
Window := FindWindowEx(Window, 0, 'Edit', nil);
PostMessage(Window, WM_KEYDOWN, 48, 0);
GetClassName(Window, @WindowClassName, 80);
Showmessage('Komponente lpClassName: ' + WindowClassName);
end
else showmessage('Konnte das Editorfenster nicht finden! Errorcode: ' + IntToStr(GetLastError));
end;
So
Window := FindWindow(nil, 'Titel in Titelleiste');
solltest du dein Fenster eigentlich schon finden, du musst aber beachten, dass dir das bei mehreren Fenstern mit gleichen Titel nur das
Handle auf das zuletzt angeklickte liefert (Ergebnis von einem praktischen Test eben), ist also hier sicherer, wenn du es erst mal anklickst. Danach sollte dir das
GetClassName den Namen liefern, nur wie ich an die Komponente komme, wenn ich sie vorher nicht kenne, weiß ich auch noch nicht.