AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button in einer Anwendung drücken.

Ein Thema von IMPEGA · begonnen am 30. Apr 2015 · letzter Beitrag vom 1. Mai 2015
 
IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
80 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Button in einer Anwendung drücken.

  Alt 30. Apr 2015, 11:39
Hi
Ich schon wieder mit einer Frage.
Ich versuche ein "Play" Button in einer Anwendung (Wahrscheinlich Java) zu drücken.
Fragt mich bitte nicht wozu man es braucht, es ist für einen Kumpel.
Es handelt sich um "SDRSharp" (Download hier: http://sdrsharp.com/#download)

In der Anwendung möchte ich einfach nur das Play drücken.
Bild: http://www.xup.in/dl,19032894/SDR.JPG/

Meine Versuche sind leider gescheitert.
Hier habe ich die Class mit WinSpy ausgelesen und so getestet.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wndMain, wndChild: HWND;
  i : Word;
begin
  wndMain := FindWindow('WindowsForms10.Window.8.app.0.2004eee','SDR# v1.0.0.1337 - IQ Imbalance: Gain = 1,000 Phase = 0,000°');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'WindowsForms10.BUTTON.app.0.2004eee', nil); (*Das Button OK bestimmen.*)
    PostMessage(199070, WM_KEYDOWN, VK_RETURN, 0); (*Drücke auf das Button OK.*)
  end;
end;
Leider wird mein Button nicht gefunden.
Dann habe ich versucht die ganzen HWND zu erfassen um zu testen ob mein Button vorhanden ist.
Scheinbar ja, scheinbar ist die Class auch richtig aber es passiert nichts.
Delphi-Quellcode:
function FindWindowEx2(hParent: HWND; ChildClassName: string; ChildNr: Word): HWND;
var
  i: Word;
  hChild: HWND;
begin
  hChild := 0;
  Result := 0;
  Dec(ChildNr);
  for i := 0 to ChildNr do
  begin
    hChild := FindWindowEx(hParent, hChild, PChar(ChildClassName), nil);
    if hChild = 0 then
      Break;
    Result := hChild;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  wndMain, wndChild, Jogi: HWND;
begin
  wndMain := FindWindow('WindowsForms10.Window.8.app.0.2004eee','SDR# v1.0.0.1337 - IQ Imbalance: Gain = 1,000 Phase = 0,000°');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx2(wndMain,'WindowsForms10.Window.8.app.0.2004eee', 5); //Damit habe ich versucht die Gruppe zu erfassen.
      if wndChild <> 0 then
        begin
           Jogi := FindWindowEx2(wndChild,'WindowsForms10.BUTTON.app.0.2004eee', 5); //Das sollte eigentlich mein Button sein
           ShowMessage('Window Handle: ' + IntToStr(Jogi)); //Nur ein Test ob die HWND stimmt
           PostMessage(Jogi, WM_KEYDOWN, VK_RETURN, 0); //Drücke Play
        end;
  end;
end;
Ich komme nun nicht weiter.
Das Ganze habe ich schon aufgegeben, meine Neugier aber hat mich zu der Frage bewegt.
Ist es überhaupt in diesem Fall machbar?
Vorschläge?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz