Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Standard Webbrowser Username und Passwort übergeben (https://www.delphipraxis.net/203670-standard-webbrowser-username-und-passwort-uebergeben.html)

xthing98 10. Mär 2020 12:23

Standard Webbrowser Username und Passwort übergeben
 
Hallo Delphi Freunde,

ich bin neu in dem Forum und habe gleich mal eine Frage.
Wie kann ich dem Standard Webbrowser, Username und Passwort, aus einem Delphi Programm übergeben? Ich habe hier schon etwas programmiert, allerdings funktioniert das noch nicht. Die Webseite startet gleich im richtigen Eingabefeld, dem Username bzw. in diesem Fall ist das die E-Mailadresse. Allerdings wird das Feld nicht aufgefüllt. Was mache ich da falsch?

Code:
procedure StringSenden(sendStr: string; browserStr: string; Handle: Longint);
var
  hTargetWnd1,hTargetWnd2: HWND;
  ProcID: Cardinal;
begin
   hTargetWnd1 := 0;

   hTargetWnd1 := Shellexecute(0, nil, 'https://www.brack.ch/anmelden', nil, nil, SW_SHOW);
   setForegroundWindow(hTargetWnd1);
   sleep(10000);
   if hTargetWnd1 <> 0 then
   SendMessage(hTargetWnd1, WM_SETTEXT, Longint(Handle), LongInt(PChar(sendStr)));
end;


Schon einmal vielen Dank für eure Hilfe.

Gruss
Marc

KodeZwerg 10. Mär 2020 12:27

AW: Standard Webbrowser Username und Passwort übergeben
 
Willkommen im Forum!

Zitat:

Zitat von xthing98 (Beitrag 1459395)
Code:
hTargetWnd1 := Shellexecute(0, nil, 'https://www.brack.ch/anmelden', nil, nil, SW_SHOW);


tausche den aufruf so aus:
Code:
'https://username:password@www.brack.ch/anmelden'
ob es mit dem anmelden danach klappt hängt von der webseite ab....


Hilft dir das evtl?

xthing98 10. Mär 2020 12:37

AW: Standard Webbrowser Username und Passwort übergeben
 
Hallo Kodezwerg,

danke, das habe ich auch schon probiert, leider funktioniert das nicht.

Diese Funktion, soll auch andere Webseiten bedienen können.

Gruss Marc

Rollo62 10. Mär 2020 12:41

AW: Standard Webbrowser Username und Passwort übergeben
 
Vielleicht musst Du irgendeine Zwischenschicht aufrufen, statt der richtigen Seite.
https://phantomjs.org/
https://bitbucket.org/freeonterminate/scriptgate/src

Die Frage wäre, geht das was Du willst mit z.B. mit einem anderen Tool, ohne das etwas in Eingabefelder eingetragen werden muss ?

KodeZwerg 10. Mär 2020 12:52

AW: Standard Webbrowser Username und Passwort übergeben
 
Zitat:

Zitat von xthing98 (Beitrag 1459400)
danke, das habe ich auch schon probiert, leider funktioniert das nicht.
Diese Funktion, soll auch andere Webseiten bedienen können.

Naja, wie mein Vorredner bereits schrieb (sowie auch ich) hängt es von der Site ab.
Generell ist der Aufruf so wie beschrieben.

Eine Universal-Lösung kann ich Dir an dieser Stelle nicht anbieten, nur eine Site-bezogene Variante die Dein Kode-Schnippsel erweitern würde indem man Tabulatoren sendet um auf's richtige Feld zu gelangen.

xthing98 10. Mär 2020 12:56

AW: Standard Webbrowser Username und Passwort übergeben
 
Hallo Kodezwerg, das würde mir eventuell helfen. Wie sende ich Tabs an die Seite?

Danke und Gruss
Marc

KodeZwerg 10. Mär 2020 13:07

AW: Standard Webbrowser Username und Passwort übergeben
 
Delphi-Quellcode:
procedure StringSenden(sendStr: string; browserStr: string; Handle: Longint);
var
  hTargetWnd1,hTargetWnd2: HWND;
  ProcID: Cardinal;
begin
   hTargetWnd1 := 0;

   hTargetWnd1 := Shellexecute(0, nil, 'https://www.brack.ch/anmelden', nil, nil, SW_SHOW);
   setForegroundWindow(hTargetWnd1);
   sleep(10000);
   if hTargetWnd1 <> 0 then
   begin
     // probiere es mal so... ungetestet aus dem Bauch heraus
     PostMessage(hTargetWnd1, WM_KEYDOWN, VK_TAB, 0);
     PostMessage(hTargetWnd1, WM_KEYUP, VK_TAB, 0);

     SendMessage(hTargetWnd1, WM_SETTEXT, Longint(Handle), LongInt(PChar(sendStr)));
   end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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