Hallo @ all,
ich würde ihm Quelltext einer HTML-Datei gerne den Pfad zum Favoriten-Icon herauskiregen. Dazu wollte ich die Möglichkeit nutzen:
HtmlElementCollection links = webBrowser1.Document.Links;
foreach (HtmlElement link in links)
{
string pfad = link.GetAttribute("href").ToString();
}
Damit sollte er mit alle Links ausspucken, macht er auch mehr oder weniger...allerdings nur Links aus dem Body-Teil, nichts aus dem Header.... 😦
Wie kann ich ihm klar machen, dass er auch die Links aus dem Header suchen soll?
Danke für alle Antworten!!
Ohne Ziel ist auch der Weg egal.
jau danke, es hat geklappt!!
Un wie zeige ich das Icon (was ja bis jetzt nur im Internet exisitert...) in einer PictureBox an?
lg Dennis
Wird doch genau in dem Projekt von CodeProject gemacht... !?
Image aus dem Stream "erstellen" und PB zuweisen.
Friedel
Ohne Ziel ist auch der Weg egal.
Vorerst danke für die Antworten!
Ich habe mir den Artikel mal genau angeguckt...allerdings weißt mein darausgeleiteter Quelltext einen Fehler auf...denn es wird kein Icon angezeigt... 😦
(iconPath = z.B. "http://web.de/icon.ico"
WebRequest requestImg = WebRequest.Create("http://" + e.Url.Host + iconPath);
WebResponse response = requestImg.GetResponse();
Stream myStream = response.GetResponseStream();
Image img = Image.FromStream(myStream);
this.pictureBox1.Image = img;
webBrowser1.Url = requestImg.RequestUri;
webBrowser1.Update();
Wisst ihr warum?
lg Dennis
Wenn es jetzt nur um Web.de geht, das favicon liegt hier:
http://img.web.de/web/img/v4/web.ico
Gruss
Friedel
PS: Gibt mal http://web.de/favicon.ico im Browser ein
Ohne Ziel ist auch der Weg egal.
Hallo Friedel,
wo die Icons liegen, den Ofad, den weiß ich doch schon längst 😛 Das war nur ein Bsp...aber ich möchte wissen wie diese Icon mit Hilfe ihrer URL in einer PictureBox anzeigen kann. Ich hatte es ja schon versucht, aber es klappt nicht:
WebRequest requestImg = WebRequest.Create("http://" + e.Url.Host + iconPath);
WebResponse response = requestImg.GetResponse();
Stream myStream = response.GetResponseStream();
Image img = Image.FromStream(myStream);
this.pictureBox1.Image = img;
webBrowser1.Url = requestImg.RequestUri;
webBrowser1.Update();
lg Dennis
Also, wenn ich in dem Beispiel von Codeproject den Proxy rausnehme, funzt das Beipiel bei mir einwandfrei.
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
irgendetwas mach ich falsch 😦
Kannst du mir deinen Quelltext mal posten?
Es ist nicht mein Code 🙂
Auszug aus der Methode, welche das Icon ausliest und in der PictureBox anzeigt:
string iconPath = "";
Image img = null;
Stream myStream = null;
WebRequest requestImg = WebRequest.Create("http://" + e.Url.Host + "/favicon.ico");
requestImg.Timeout = 10000;
WebResponse response = requestImg.GetResponse();
if (response.ContentLength > 0) {
myStream = response.GetResponseStream();
} else {
HtmlDocument doc = webBrowser1.Document;
HtmlElementCollection collect = doc.GetElementsByTagName("link");
foreach (HtmlElement element in collect) {
if (element.GetAttribute("rel") == "SHORTCUT ICON")
iconPath = element.GetAttribute("href");
}
this.Text = doc.Title;
requestImg = WebRequest.Create("http://" + e.Url.Host + iconPath);
response = requestImg.GetResponse();
myStream = response.GetResponseStream();
}
img = Image.FromStream(myStream);
this.pictureBox1.Image = img;
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
danke für Posten des Quelltextes!
Aber bei mir funzt es immernoch nicht...was hast du für nen ie? ich hab 6, vielleicht desswegen?
lg Dennis
Das hat ja nichts mit dem IE zu tun, oder ändert dieser das UserControl WebBrowser und/oder die Klasse WebRequest, bwz. WebResponse ich gehe mal stark davon aus, und hoffe sehr das dem nicht so ist.
"Sitzt" du vielleicht hinter einem Proxy, oder hast eine Firewall, welche diese Aktion nicht zulässt?
Was macht das Programm von CodeProject? Läuft das, zumindest wenn man die Zeilen mit dem Proxy rausnimmt, bei dir korrekt?
Wenn nicht, tut es mir leid, dann habe ich auch keine Antwort(en) mehr X(
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
Hallo Friedel,
mein Fehler....verdammt^^ ich sitz ja hier in der Firma und benutz einen Proxy... peinlich
Aber was ich denn für daten eingeben?? Irgendwie schein ich sie wohl falsch einzugeben.. 😦
lg Dennis