Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser Download abbrechen (https://www.delphipraxis.net/91610-twebbrowser-download-abbrechen.html)

endeffects 7. Mai 2007 18:50


TWebBrowser Download abbrechen
 
Hallo,

ich hab in meinem aktuellen Projekt eine Instanz
des TWebbrowsers laufen und möchte den Download
einer bestimmten Datei abbrechen. Die if Bedingung
wird auch erfüllt - so nebenbei, es handelt sich
hier nur um eine optimierte pos() variante - aber
der TWebbrowser öffnet trotz meiner Abbruchversuche
den Downloaddialog der exe Datei und genau den
möchte ich nicht haben. Ich könnte echt verzweifeln. =(


Delphi-Quellcode:
procedure TForm1.WebBrowserBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
if SmartPos('.exe', URL, False, 1, True) > 0 then
  WebBrowser.Stop;
end;

shmia 7. Mai 2007 18:55

Re: TWebBrowser Download abbrechen
 
Statt WebBrowser.Stop schreibe Abort;
Dies erzeugt eine stille Exception die weitere Aktionen verhindert.

endeffects 7. Mai 2007 19:05

Re: TWebBrowser Download abbrechen
 
oh danke, aber das hilft leider auch nicht,
der download dialog kommt trotzdem.
das ist alles sehr merkwürdig =((

marabu 7. Mai 2007 20:49

Re: TWebBrowser Download abbrechen
 
Hallo,

wieso merkwürdig?

Delphi-Quellcode:
procedure TForm1.WebBrowserBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if SmartPos('.exe', URL, False, 1, True) > 0 then
  begin
    Cancel := True;
    with pDisp as IWebBrowser2 do Stop;
    Exit;
  end;
  // ...
end;
Gute Nacht

endeffects 7. Mai 2007 21:11

Re: TWebBrowser Download abbrechen
 
es klappt einfach nicht, ich such selbst schon
seit stunden im netz und nichts funktioniert :(

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser.Navigate('http://go.winantivirus.com/MTQ1NjY=/2/5390//');
end;

procedure TForm1.WebBrowserBeforeNavigate2(Sender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if SmartPos('.exe', URL, False, 1, True) > 0 then
  begin
    Cancel := True;
    with pDisp as IWebBrowser2 do Stop;
    Exit;
  end;
end;

marabu 7. Mai 2007 21:26

Re: TWebBrowser Download abbrechen
 
Hallo,

der von mir gezeigte Code funktioniert - dein SmartPos() habe ich natürlich nicht testen können. Wenn ich den Download zulasse, dann schlägt mein AntiVir Alarm: SPR/Dldr.WinFixer.O.87

Nachdenkliche Grüße

endeffects 7. Mai 2007 21:38

Re: TWebBrowser Download abbrechen
 
genau das ist der grund warum ich solche urls
in meinem programm blockieren möchte.
es soll auch niemanden dazu angeleitet werden das programm
zu installieren, es geht einfach nur darum diese art
von downloads über den twebbrowser zu blockieren.
ich hab zurzeit leider auch kein anderes beispiel
zur hand und ich werde die url später sicher editieren.
momentan bin ich einfach nur auf der suche nach einer lösung.

marabu 8. Mai 2007 05:56

Re: TWebBrowser Download abbrechen
 
Guten Morgen,

eine Lösung habe ich dir ja gezeigt. Mich würde interessieren was du machst um deren Erfolg zu verhindern. Hast du das Problem auch noch dann, wenn du ein Miniprojekt (TWebBrowser, TButton) erstellst, bei dem nur dieser Aspekt (OnBeforeNavigate2) implementiert ist?

Freundliche Grüße

endeffects 8. Mai 2007 08:05

Re: TWebBrowser Download abbrechen
 
Liste der Anhänge anzeigen (Anzahl: 1)
juuhu,

also wie gesagt, irgendetwas funktioniert
da bei mir nicht, ich hab dir mal eine
ganz einfache demo an das posting gehängt.

marabu 8. Mai 2007 09:06

Re: TWebBrowser Download abbrechen
 
Hallo,

als erstes habe ich - quasi gewohnheitsmäßig - deinen virenverseuchten URL gegen einen harmlosen URL auf meinem lokalen Server ausgetauscht. Deine Demo funktioniert dann bei mir so wie ich es erwarte. Danach habe ich den von dir vorgegebenen URL verwendet. Jetzt beobachte ich zwei verschiedene Auswirkungen: Auf meinem Rechner im Heimbüro (IE7) wurde der Download zuverlässig verhindert, auf meinem Rechner im Firmennetz (IE6) erscheint der Download-Dialog trotz Abbruchs (der ja auch visuell quittiert wird).

Der IE6 beginnt offensichtlich bereits mit dem Download noch bevor ich es ihm verbiete. Vermutlich gibt es für diese Tuningmaßnahme bzw. Sicherheitslücke einen Schalter im IE7, aber den kenne ich gerade nicht. Oder ich liege ganz falsch.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Seite 1 von 2  1 2      

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