Hallo,
wie kann ich ein PageControl von einer anderen Anwendung steuern, also die ActivePage auswählen? Das
Handle ist bekannt (WinSpy), ich habe schon mit SendMessage und WM_LBUTTONDOWN versucht auf das PageControl zu "klicken", klappt aber leider nicht.
Hintergrund ist das ich den Refresh Button der anderen Anwendung drücken will, der wird bei der anderen Anwendung aber erst zur Laufzeit erzeugt wenn in den Settings auf das entsprechende Tab geklickt wird. Danach ist der Button da und mein Code für den Button funktioniert. Ich muss also auch die Seite des PageControls anwählen, damit der Button da ist. Code für Button drücken:
Delphi-Quellcode:
procedure TForm1.btnRefreshClick(Sender: TObject);
var
wndMain, wndChild: HWND;
begin
wndMain := FindWindow('TSettingsForm','Settings');
if wndMain <> 0 then begin
// button
wndChild := FindWindowEx(wndMain, 0, 'TPageControl', nil);
wndChild := FindWindowEx(wndChild, 0, 'TTabSheet', nil);
wndChild := FindWindowEx(wndChild, 0, 'TAdvSmoothPanel', nil);
wndChild := FindWindowEx(wndChild, 0, 'TAdvSmoothButton', nil);
if wndChild <> 0 then begin
SendMessage(wndChild, WM_LBUTTONDOWN,0,0);
SendMessage(wndChild, WM_LBUTTONUP,0,0);
end;
end;
end;