Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Fenster soll im geöffneten Browser über dem Browser stehen (https://www.delphipraxis.net/200651-delphi-fenster-soll-im-geoeffneten-browser-ueber-dem-browser-stehen.html)

Moombas 13. Mai 2019 15:49

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Ist zwar eine bekloppte Lösung, aber hast du mal probiert vor dem SendText ein Alt+Tab (Fenster wechseln) zu senden.
Also vom Ablauf:
  1. Dein Programm starten
  2. Browser starten
  3. Im Browser auf das zu füllende Feld klicken
  4. In deinem Programm den Button drücken

Wie man Alt+Tab Simuliert: https://www.swissdelphicenter.ch/en/...de.php?id=2103

Theoretisch müsste durch den Alt+Tab er dann zum Browser zurück springen (vom Fokus), das Eingabefeld ist noch als Fokus gesetzt (normalerweise) und somit müsste dein dann ausgeführter Code den Text einfügen. Ggf. musst du mit sleep() arbeiten damit er zur richtigen Zeit deinen Code ausführt und nicht zu früh.
Hab es selber nicht getestet, nur ein dummer Gedanke. Zumal, wenn du dann woanders hin klickst in der Zeit vom sleep() das ganze nicht mehr funktioniert.

Und falls du noch mehr Daten übergeben willst, wäre definitiv die vorgeschlagene Lösung eines Browserplugins die beste Variante.

Delphi.Narium 13. Mai 2019 16:28

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
@Moombas Die Idee ist überhaupt nicht bekloppt. Dieses Vorgehen war früher durchaus mal gang und gäbe.

Eine weitere Möglichkeit (muss natürlich entsprechend angepasst werden): How to Send Information (String, Image, Record) Between Two Applications

jaenicke 13. Mai 2019 17:42

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Die saubere Variante ist die, die auch die Bildschirmtastatur geht:
Das Fenster kann den Fokus nicht bekommen.

Ich habe vwrgessen wie das ging... irgendwie WM_ACTIVATEAPP abfangen oder so.

oldmann 13. Mai 2019 19:58

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Hallo Sebastian,

du hast von einer Browserextension geschrieben.
Was ist das ?
Und wie komme ich daran ?
Es wäre Nett, wenn Du mir hier aud die Sprünge helfen könntest.

Eberhard Werner

hoika 13. Mai 2019 20:15

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Hallo,
eine Browserextension ist eine Dll, die dynamisch in den Browser "eingeblendet" wird,
und damit auch Zugriff auf den DOM (das Browserfenster) hat.
Dürfte für dich aber viel zu kompliziert sein (für mich jedenfalls).

Bleib doch einfach mal bei Alt+Tab-Simulieren.

jaenicke 14. Mai 2019 06:27

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Zitat:

Zitat von hoika (Beitrag 1432127)
eine Browserextension ist eine Dll, die dynamisch in den Browser "eingeblendet" wird,
und damit auch Zugriff auf den DOM (das Browserfenster) hat.
Dürfte für dich aber viel zu kompliziert sein (für mich jedenfalls).

Eine DLL würde ich dafür nicht benutzen, viel einfacher ist ein fertiges Grundgerüst einer Erweiterung zu nehmen und mit JavaScript diese mit Leben zu füllen.

Wenn allerdings keine JavaScript Kenntnisse vorhanden sein sollten, würde ich das eher nicht versuchen. Mit JavaScript Kenntnissen ist das nicht so kompliziert wie du dir das offenbar vorstellst.

Zitat:

Zitat von hoika (Beitrag 1432127)
Bleib doch einfach mal bei Alt+Tab-Simulieren.

Das ist die schlechteste Lösung. Sinnvoller wäre zu schauen, dass das Fenster nicht mehr aktivierbar wird, sprich den Eingabefokus nicht bekommen kann.

Das geht sogar sehr einfach, ich habe es kurz ausprobiert:
Delphi-Quellcode:
  TExampleForm = class(TForm)
  ...
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;


procedure TExampleForm.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE;
end;

Moombas 14. Mai 2019 09:07

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Zitat:

Zitat von jaenicke (Beitrag 1432176)
Zitat:

Zitat von hoika (Beitrag 1432127)
Bleib doch einfach mal bei Alt+Tab-Simulieren.

Das ist die schlechteste Lösung.

Es ging mir nur erstmal darum eine evtl. funktionierende (Quick and dirty) Lösung anzubieten. Das diese bei weitem nicht eine schöne Lösung ist, sollte klar sein.

Mal eine andere Sache. @jaenicke wie ist das mit TWebBrowser im eigenen Programm? Wenn man die gewünschte Website dort darstellt und die Informationen einträgt müsste doch auch funktionieren oder denke ich da nun zu einfach. Mir fehlt da leider aktuell die Zeit um das für den TE zu testen, viel mir aber eben als evtl. weitere Möglichkeit ein.

oldmann 14. Mai 2019 09:25

AW: Delphi Fenster soll im geöffneten Browser über dem Browser stehen
 
Hallo,

Es funktioniert.
Das letzte Listing von Sebastian Jaenicke brachte den Durchbruch.
Vielen Dank dafür ebenso vielen Dank an alle die sich an der Lösung beteiligten.
Damit ist dieses Thema beendet.

Gruß oldmann


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz