Einzelnen Beitrag anzeigen

surfer007

Registriert seit: 17. Jan 2010
51 Beiträge
 
Delphi 7 Professional
 
#1

PageControl auf anderer Anwendung steuern

  Alt 13. Nov 2015, 14:40
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;

Geändert von surfer007 (13. Nov 2015 um 15:36 Uhr)
  Mit Zitat antworten Zitat