Einzelnen Beitrag anzeigen

nytaiceman

Registriert seit: 15. Dez 2005
Ort: Schweiz, Bern
58 Beiträge
 
Delphi XE3 Professional
 
#1

Zurücksetzen des aktiven Control einer fremden Applikation

  Alt 5. Aug 2021, 15:16
Hallo zusammen,

Ich versuche eine Eingabe in einer fremden Applikation zu machen die mehrere Input Controls hat.
--> Es ist eine Anmeldemaske

Die fremde Applikation anhand des Namens finden
Delphi-Quellcode:

  hWnd := FindWindow( nil, pChar ( 'FormDescription' ) );

  if hWnd <> 0 then
  begin

    SetForegroundWindow( hWnd );

  end;
Nun habe ich die fremde Aplikation fokussiert und könnte Eingaben senden.
Das Problem ist nun, dass es mehrere Eingabefelder gibt und ich nicht weiss, ob der Benutzer schon mit der Tab-Taste oder mit der Maus eines der Eingabefelder selektiert hat.

Kann ich z.B. alle Selektionen zurücksetzen? So das also keines der Eingabefelder fokussiert ist und dann die Tab-Taste senden um das erste Feld zu bekommen.
Keybd_event(VK_TAB, 0, 0, 0); Es kommt noch erschwerend dazu, dass die Eingabemaske welche in der fremden Applikation angezeigt wird, eigentlich ein WebFormular ist.
Die Class ist "InternetExplorer_Server (Unicode)".
Mehr gibt mir das Werkzeug "WinSpy" nicht heraus.

Ideen wie ich sicherstellen kann, dass meine Eingabe das jeweils richtige Feld trifft?
Einfach ist nur einfach, wenn Einfach auch einfach ist!
Vermeintlich einfache Workarounds führen irgendwann zu Problemen!
  Mit Zitat antworten Zitat