![]() |
Delphi-Version: 10.4 Sydney
Datei-Download per webview2/TEdgeBrowser
Hallo,
in einem Projekt prüfen wir ob ein Wechsel von cef3 auf Edge möglich wäre. Da die Anwendung auch Dateien herunterladen und gezielt ablegen können soll, suche ich nach einem Weg das zu tun. Hier mal mein versuchter Weg das über WebResourceRequested umzusetzen:
Code:
Er kann die Datei zwar anlegen, danach kommt aber eine Zugriffsverletzung auf 0x00000000. Meine Vermutung ist, dass IStream zum Zeitpunkt des hineinschreibens bereits freigegeben worden ist.
procedure Tdownload.EdgeBrowser1WebResourceRequested(Sender: TCustomEdgeBrowser; Args: TWebResourceRequestedEventArgs);
var request: ICoreWebView2WebResourceRequest; requestURI, responseHeaders, method: PWideChar; response: ICoreWebView2WebResourceResponse; requestFilename, localFilename, payload: string; headers: ICoreWebView2HttpRequestHeaders; requestStringStream, : IStream; core:ICoreWebView2; sett:ICoreWebView2Settings; begin Args.ArgsInterface.Get_Request(request); request.Get_uri(requestURI); //kann man sich anschauen wenn man will :) //Teile dem Server ein paar Infos über mich mit request.Get_Headers(headers); headers.SetHeader('User-Agent', PChar('TestBrowserDownload v' + GetVersion)); headers.SetHeader('Content-Type', PChar('application/x-www-form-urlencoded')); request.Set_Method('POST'); payload := 'a=textusw'; requestStringStream := TStreamAdapter.Create(TStringStream.Create(payload, TEncoding.UTF8), soOwned); request.Set_Content(requestStringStream); //Versuch IStream für den Dateitransfer zur Verfügung zu stellen... Args.ArgsInterface.Get_Response(response); requestFileStream := TStreamAdapter.Create(TFileStream.Create(extractfilepath(paramstr(0)) + 'test.dat', fmCreate or fmOpenReadWrite or fmShareDenyNone), soOwned); response.Set_Content(requestFileStream); end; Was mache ich hier falsch? Alternativ gibt es laut Microsoft-Doku ( ![]() Viele Grüße |
AW: Datei-Download per webview2/TEdgeBrowser
Ich kann nur ganz allgemein empfehlen sich die Rückgabewerte (von z.B.
![]() Und ganz dumme Idee: Nicht dass
Delphi-Quellcode:
einfach nur
response
Delphi-Quellcode:
war?
nil
|
AW: Datei-Download per webview2/TEdgeBrowser
Das werde ich bei nächster Gelegenheit überprüfen. Danke schon mal für die Ideen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr. |
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-2025 by Thomas Breitkreuz