Hallo,
ich krame das Thema nochmal vor.
Im MediaPlayer steht unten rechts die aktuelle Position des Videos (in mm:ss). Die will ich haben. Wenn ich Winspy (oder Eda) nehme, komme ich nicht nur an das
Handle, es wird dort dann auch die Position als Fenstertitel angezeigt. Vgl. Bild im Anhang ("00:06"). Also muss es ja möglich sein, die auszulesen.
Habe es so versucht:
Delphi-Quellcode:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
i: Word;
hChild: HWND;
begin
hChild := 0;
Result := 0;
ChildNr := ChildNr - 1;
for i := 0 to ChildNr do
begin
hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
if hChild = 0 then
Exit;
Result := hChild;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
wnd: hwnd;
lBuffer: String;
lSize : Integer;
begin
wnd := FindWindow('MediaPlayerClassicW', nil);
wnd := FindWindowEx2(wnd,'Static', 2);
// wnd := 00040292;
if wnd <> 0 then begin
form1.Color := clgreen;
SetLength(lBuffer, 255);
lSize := SendMessage(wnd, WM_GETTEXT, Length(lBuffer), Integer(@lBuffer[1]));
Label1.Caption := copy(lBuffer, 1, lSize);
end;
end;
Wenn ich es bei "wnd := FindWindowEx2(wnd,'Static', 2)" belasse, wird kein
handle gefunden (Formular wird nicht grün). Wenn ich stattdessen "wnd := 00040292" nehme, wird zwar ein
handle gefunden, in Label 1 aber nichts angezeigt.
Was mache ich falsch?
LG, Stephan.