GeckoFX

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von Thiemo1991.

    Jo.

    Also brauche ich nicht mehr das Experiment zu machen?

    Also zur Klärung:

    Ich habe die DomClick-Ereignisse nicht auf der Skype Webseite gemacht, bei einem WikiMedia-Anbieter.
    Dort geht das Abfangen aller Mausklicks, aber bei Skype scheint irgendwas (vermutlich JavaScript) das Downloadfenster auszulösen, bevor das weiter zum DomClick-Ereignis geht.

    Wenn ich jetzt versuche das zu lösen, und du bist mit deiner Anforderung fertig, dann sag mir kurz bescheid ob ich es sein lassen kann.


    c.u. Joshi
    Mozilla Firefox sowie das GeckoWebbrowser Control kann eigentlich von Haus aus, kein Flash anzeigen und da habe ich mir gedacht, dies zu ändern. Aber nur wie kann ich das ändern?
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Lieber @Thiemo1991,

    ich weis das mit dem Flash anzeigen nicht, und ich werde das auch nicht nutzen, es gab große Sicherheitslücken im Flash-Plugin.

    Das ein Plugin für den Firefox genutzt werden muss und zugleich eingebunden, ist das ein starker aufwand, der in die Programmierung gehört.
    Ich selber werde sowas scheuen.

    Da kann ich dir nicht helfen.

    Vielleicht weiss jemand wie Plugin-Einbindung und Steuerung funktioniert, damit könnten dann auch andere Plugins genutzt werden.

    Aber jetzt kannst Du den Skype Clienten downloaden?

    c.u. Joshi
    @SpaceyX
    Dito, ich finde es toll, wie du die Arbeit und seinem Drive beschrieben hast. Ich kann nur sagen, ich kenne @Thiemo1991 seit vier Jahren und ich finde es wirklich klasse , wie er mit seiner Behinderungen umgeht. Viele Menschen sehen Ihre Gesundheit als Selbstverständlich an, dies ist leider nicht so. Was ist mit dem Jungen, der sich bei "Wetten dass", das Genick gebrochen hat, der ist heute im Rollstuhl. Überlegt Euch mal bitte, wie Ihr das Leben von anderen einschätzen solltet.

    Viele Grüße
    Joachim Strömer
    @Joshi
    Wie funktioniert das mit der Suchmaschiene bzw. was brauche ich als Google Link, @joachim68 hat mir einen Link geschickt, der aber leider nicht funktioniert hat.
    google.de/search?source=hp&ei=KHNzWs7oCNDdwAKyrJuABQ&q=

    Ich habe das so probiert aber er navigiert nicht zu Google mit dem Suchtext aus der ComboBox:

    VB.NET-Quellcode

    1. Select Case My.Settings.Search
    2. Case "Google" : auswahl = "https://www.google.de/search?source=hp&" & cmbURL.Text & "ei=KHNzWs7oCNDdwAKyrJuABQ&q="
    3. 'Case "Yahoo" : auswahl = "http://de.search.yahoo.com/search?p=" & TextBox2.Text & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
    4. 'Case "Ask" : auswahl = "http://de.ask.com/web?q=" & TextBox2.Text & "&qsrc=0&o=0&l=dir&s=&part=&dm=lang"
    5. 'Case "Amazon" : auswahl = "http://redir.opera.com/amazon/?q=" & TextBox2.Text
    6. 'Case "Ebay" : auswahl = "http://redir.opera.com/ebay/?q=" & TextBox2.Text
    7. 'Case "Wikipedia" : auswahl = "http://de.wikipedia.org/wiki/" & TextBox2.Text
    8. End Select
    9. aktiverBrowser.Navigate(auswahl)

    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Für die Google-Suche reicht hier schon ein Parameter aus, nämlich q. Da hattest du ja nicht angegeben, kann ja auch nicht funktionieren, schau bei dir am Ende der Url da steht &q= also ist q nichts.
    auswahl = "https://www.google.de/search?q=" & cmbURL.Text

    Google Such-Parameter
    moz.com/blog/the-ultimate-guid…-google-search-parameters
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „NoIde“ ()

    @NoIde
    Also, du meinst dass ich nur dass brauche, was du mir geschickt hast und wie sieht es mit den anderen Suchmaschienenlinks aus?

    Edit: Das hat nicht funktioniert.

    Kann es sein, dass ich nur im eigentlich, ursprünglichen Link nur das https, durch ein http ersetzen muss?

    VB.NET-Quellcode

    1. "Google" : auswahl = "http://www.google.de/search?hl=de&source=hp&q=" & cmbURL.Text & "&btnG=Google-Suche&meta=&aq=f&oq="

    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thiemo1991“ ()

    Also hab das jetzt nochmal von Hand im Firefox getestet, wie auch mit dem normalen Webbrowsercontrol, warum sollte es mit dem Gecko nicht gehen?

    Wenn du so dahin navigierst, klappst dann?
    aktiverBrowser.Navigate("https://www.google.de/search?q=Test")

    google
    "https://www.google.de/search?q=" & cmbURL.Text
    yahoo
    "https://de.search.yahoo.com/search?p=" & cmbURL.Text
    ask
    "https://de.ask.com/web?q=" & cmbURL.Text
    amazon
    "http://redir.opera.com/amazon/?q=" & cmbURL.Text
    ebay
    "http://redir.opera.com/ebay/?q=" & cmbURL.Text
    wikipedia
    "http://de.wikipedia.org/wiki/" & cmbURL.Text

    Zeig mal den Code wie du "meine Url" getestet hast.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    Kann es sein, das du da Controls verwechselt hast? cmbURL vermute ich ist eine ComboBox, ich kann mir nur schwer vorstellen, das da der Suchbegriff drin steht. Hast du sicher mit einer TextBox verwechselt.

    Ich hatte das(cmbUrl) von dir übernomen.

    Thiemo1991 schrieb:

    Case "Google" : auswahl = "https://www.google.de/search?source=hp&" & cmbURL.Text & "ei=KHNzWs7oCNDdwAKyrJuABQ&q="


    Thiemo1991 schrieb:

    Es funktioniert nicht. Der Browser navigiert nicht zu Google.


    Wenn der Webbrowser garnicht zu Google Navigiert, dann liegt noch etwas anderes im Argen. Zeigt Google statt Suchergebnisse die Startseite an, ist die Url(sind die Parameter) nicht ganz korrekt. In Post25 hast du geschrieben:
    er navigiert nicht zu Google mit dem Suchtext aus der ComboBox


    Höhrt sich für mich so an als ob er doch zu Google navigiert, nur nicht so wie du es wolltest(Das Suchergebnisse angezeigt werden). Nun sagt du er navigiert nicht, du musst das Problem schon so exakt wie es nur geht beschreiben, sonst wirds knifflig.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „NoIde“ ()

    Hi.

    Muß er aber! Das hab ich ihm aber gesagt... :D

    Das sollte so gehen, mit der Parameterübergabe in der URL.

    Bitte versuche mal vor der Programmzeile mit dem "Navigate"-Befehl, eine Debug.WriteLine("Der Wert im Eingabetextfeld: " & cmbURL.Text zeile einzubauen. Dann schau in das "Direkt-Fenster" des Visual Studios, ob da etwas nicht stimmt.

    Wenn der Wert stimmt, dann solltest Du die Endgültige URL mal ausgeben lassen.

    Quellcode

    1. Debug.WriteLine("Gesamte Google Abfrage: https://www.google.de/search?" & cmbURL.Text


    Kommt etwas Oberlehrehaft rüber, aber das wäre mein Vorgehen, meine Seite des Problems einzukreisen.

    Wenn Du z.B. das Suchwort "Planet" übergeben willst.

    Sollte dein aktuellerBrowser.Navigate("https://www.google.de/search?q=Planet") sein.

    Wie ich sehe ist in der Variable "ausgabe" dann der Ganze Text enthalten?

    Also sollte dann dein Navigieren so ausehen: aktuellerBrowser.Navigate(auswahl).

    Liegt es vielleich daran, das Du nicht das Richtige and den Navigate-Befehl schickst?

    Kommt sehr oft vor, bessonders bei Bill Gates. Der schickt mir auch nichts... mhhh

    @Thiemo1991

    Wenn ich vermuten darf, holst Du mit den MausKlick (DomClick) nun den Button-Befehl des "blauen Such Knopf" auf der Google-Webseite.
    Das ist mit der tollen Möglichkeit "Webanfrage über die URL mit Parametern" nicht wirklich Notwendig.
    Der Webservice (alle Webserver) empfangen URL-Parameter, und die sind von Webseite zu Webseite anders.
    Im Fall von Google, kann mit dem einleiten einer Parameterübergabe mit dem "?" und einem folgenedem "q=" und dem Suchbegriff, direkt eine suche ohne Knopfdruck angestossen werden.

    Ist mal was anderes, als im Webbrowser was zu klicken.

    Aussserdem können die Suchanfragen mit Leerzeichen evtl. nicht von allen verarbeitet werden, und somit müssen diese leerzeichen mit " " ersetzt werden.
    Muss es aber nicht bei allen Webservern!

    Quellcode

    1. "https://www.google.de/search?q=Planet der Affen" wird zu,
    2. "https://www.google.de/search?q=Planet der Affen"


    Würdest du versuchen mal ein Replace auf Leerzeichen zu " " im cmbURL.Text

    VB.NET-Quellcode

    1. cmbURL.Text.Replace(" ", " ")


    Edit: Ich scheine das nicht mit den UrlEncoding im Forum nicht editiern zu können. Es geht hier um das Ersetzen vom Leerzeichen mit "ProzentZweiNull" als UrlEncoded-Leerzeichen.
    Alternative ist die "HttpUtility.UrlEncode-Methode: (String)".


    Dann erst den Navigate anstossen.

    Bei Dir sehe ich sowas wie das hier: "&btnG=Google-Suche&meta=&aq=f&oq="
    Lass das mal einfach weg und schau ob es dann geht.

    c.u. Joshi

    GROSSES UDATE:

    Mann bin ich Blind heute...

    So ich glaube jetz eine noch bessere Fehlerquelle geraten zu haben. ;)

    Wie ich sehe benutzt Du "vielleicht" eine ComboBox und deren Text Eigenschaft.

    Also wenn du die Varriable "auswahl" benutzt, wird doch das was du in der Combobox ausgesucht hast in diese variable gespeichert.
    Da wir zwei Dinge verknüpfen müssen, sollte dein "Suchtext" nur hinter dem "q=" angefügt werden.

    Da ich den Quellcode nicht sehe, ich aber das auch mal "falsch" gemacht habe, könnte das der Fehler sein.

    Möchtest Du die Funktion die die meisten Webbrowser haben, einen beliebigen Text einzutippen (Das Textfeld der Combobox) um zu suchen, falls keine URL/Webadresse eingegeben wurde, muss vor dem Navigate mit den "Eingabetext" eine andere Vorgehensweise geschehen als mit einer Auswahl eines Eintrags in der ComboBoxListe.

    In dem fall von Google-Suche, muss dann der Befehl so aussehen:

    VB.NET-Quellcode

    1. If cmbURL.Text.StartsWith("http") = True Or cmbURL.Text.StartsWith("www") = True Then
    2. 'Navigiere zur URL, wie gehabt
    3. aktuelleAuswahl = cmbUrl.Text
    4. Else
    5. 'jetzt das Suchen vorbereiten, weil keine URL eingegeben.
    6. aktuelleAuswahl = "https://www.google.de/search?q=" & cmbUrl.Text
    7. EndIf
    8. 'und jetz das Navigieren im Browser mit aktuelleAuswahl


    @'Nolde' hatte Dir die richtige Antwort gegeben.

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Joshi“ ()

    Eine immer mögliche Fehlerquelle sehe ich bei deiner Art nen String so für Settings zu verwenden. Nutze eine Enum! Wenn du alle Strings HardCodest kannste dich schnell mal verschreiben und hast diese auch keine unterstützung der Intellisense. Nutzt du eine Enum und du verschreibst dich, wirds direkt als Fehler gekennzeichnet, ist dann auch in der Intellisense drin, beim String nicht!

    Enums können diese Typen sein: Byte, Short, Integer und Long. Gibst du nichts an, ist es Standart ein Integer.
    Enum ohne Typangabe:(Standart-Typ ist Integer)

    VB.NET-Quellcode

    1. Public Enum Auswahlmoeglichkeit
    2. Google
    3. Yahoo
    4. End Enum

    Enum mit Typangabe:

    VB.NET-Quellcode

    1. Public Enum Auswahlmoeglichkeit As Short
    2. Google
    3. Yahoo
    4. End Enum


    Du kannst auch den Membern einen Wert zuweisen, brauchste aber nicht. Der erste Member hat den Wert 0 wenn du keinen zuweist, der nächste Member(Zeile runter) ist der gleiche Wert + 1, also immer 1 mehr, wenn du keinen Wert zuweist. Gibst du einen Member den Wert 9 hat der Member darunter den Wert 10, wenn du es nicht anders angibst.

    VB.NET-Quellcode

    1. Public Enum Auswahlmoeglichkeit
    2. Google = 3
    3. Yahoo
    4. End Enum
    5. ' Yahoo hat hier den Wert 4


    In den Einstellungen legst du dann eine Setting vom Typ Integer an. Wenn jetzt eine ComboBox für die Auswahl eines Suchanbieters genutzt wird, kann man die ComboBox mit einer Zeile füllen, änderst du die Enum, wirkt sich das auch auf die ComboBox aus. Weisen wir den Membern der Enum keinen Wert zu, ist der erste Member hat Wert 0, der zweite Member Wert 1, usw... das ist dann alles identisch mit dem Index in der ComboBox. Ich hab dir ein Beispiel gemacht, ist nicht viel Code drin, probier da mal mit rum, aus faulheit habe ich nicht den Gecko verwendet, sondern nur den Standart-Webbrowser.
    Dateien
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „NoIde“ ()

    @NoIde

    NoIde schrieb:

    ich kann mir nur schwer vorstellen, das da der Suchbegriff drin steht.


    Der Suchbegriff steht da drinnen, weil ich kein extra Feld für die Eingabe des Suchbegriffes machen möchte da es viel besser ist wenn der User einfach in der Adressleiste (sowie in Google Chrome) eingeben kann.

    Ich komme irgendwie nicht weiter deshalb gebe ich euch auch meinen KOMPLETTEN Quellcode (bitte nur die jetigen Fehler beheben und nicht irgendwie nachbauen bzw. veröffentlichen).
    Spoiler anzeigen

    VB.NET-Quellcode

    1. #Region "Importieren"
    2. Imports System.ComponentModel
    3. Imports System.Net
    4. Imports System.Threading
    5. Imports Gecko
    6. #End Region
    7. Public Class tmBrowser
    8. #Region "Deklarationen/Funktionen"
    9. Public WithEvents aktiverBrowser As GeckoWebBrowser
    10. Dim i As String
    11. Private WeiterGehts As Boolean = False
    12. Private ms As Integer
    13. Dim selectedTabIndex As Integer
    14. Dim auswahl As String
    15. #End Region
    16. #Region "Überprüfen"
    17. Public Sub getAktiverBrowser()
    18. For Each wb As GeckoWebBrowser In tbc.SelectedTab.Controls
    19. aktiverBrowser = wb
    20. Exit Sub
    21. Next
    22. End Sub
    23. Public Sub Wartezeit(ByVal Sekunden As Integer)
    24. ms = Sekunden * 1000
    25. WeiterGehts = False
    26. Dim T As Thread = New Thread(AddressOf Warten)
    27. T.Start()
    28. Do
    29. Application.DoEvents()
    30. Loop Until WeiterGehts = True
    31. End Sub
    32. Private Sub Warten()
    33. Thread.Sleep(ms)
    34. WeiterGehts = True
    35. End Sub
    36. Function ÜberprüfeURL(ByVal URL As String) As String
    37. Dim fertig As String = URL
    38. If Not fertig.StartsWith("http://") Then
    39. fertig = "Http://" & URL
    40. End If
    41. Return fertig
    42. End Function
    43. #End Region
    44. #Region "Tabs"
    45. Private Sub addTab(ByVal name As String, ByVal url As String)
    46. Dim tab As TabPage = New TabPage(name)
    47. Dim wb As GeckoWebBrowser = New GeckoWebBrowser
    48. AddHandler wb.DocumentTitleChanged, AddressOf BrowserDocumentTitle_Changed
    49. AddHandler wb.ProgressChanged, AddressOf wb_ProgressChanged
    50. wb.Navigate(url)
    51. wb.Dock = DockStyle.Fill
    52. tab.Controls.Add(wb)
    53. tbc.TabPages.Add(tab)
    54. tbc.SelectTab(tab)
    55. End Sub
    56. Private Sub removeTab()
    57. Try
    58. Call getAktiverBrowser()
    59. selectedTabIndex = tbc.SelectedIndex
    60. tbc.TabPages.Remove(tbc.SelectedTab)
    61. If selectedTabIndex = tbc.TabCount Then
    62. tbc.SelectedIndex = selectedTabIndex
    63. Else
    64. tbc.SelectedIndex = selectedTabIndex - 1
    65. End If
    66. Call getAktiverBrowser()
    67. Catch ex As Exception
    68. Call addTab("Neuer Tab", "about:blank")
    69. cmbURL.Text = "about:blank"
    70. lblStatus.Text = ""
    71. End Try
    72. End Sub
    73. Private Sub LoadTabs()
    74. Call getAktiverBrowser()
    75. addTab("Neuer Tab", "about:blank")
    76. End Sub
    77. Private Sub tbc_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbc.SelectedIndexChanged
    78. Try
    79. Call getAktiverBrowser()
    80. cmbURL.Text = aktiverBrowser.Url.OriginalString
    81. Catch
    82. End Try
    83. Call FavIcon()
    84. End Sub
    85. #End Region
    86. #Region "Laden/Speichern von Elementen"
    87. Private Sub SettingOpen()
    88. 'Laden (ohne hängen)
    89. Application.DoEvents()
    90. 'Funktionen ausführen bzw. laden
    91. Call LoadBookmarks()
    92. Call getAktiverBrowser()
    93. cmbURL.Focus()
    94. Assistent.Close()
    95. 'Starseite auslesen
    96. aktiverBrowser.Navigate(My.Settings.Home)
    97. 'Farben und Schriftart öffnen
    98. Me.BackColor = My.Settings.Colors
    99. cmbURL.BackColor = My.Settings.Colors
    100. lblStatus.BackColor = My.Settings.Colors
    101. ListBox1.BackColor = My.Settings.Colors
    102. ctMenu.BackColor = My.Settings.Colors
    103. msMenu.BackColor = My.Settings.Colors
    104. cmbURL.Font = My.Settings.Fonts
    105. 'Suchmaschienen
    106. Select Case My.Settings.Search
    107. Case "Google" : Suche.Image = My.Resources.Google
    108. Case "Yahoo" : Suche.Image = My.Resources.Yahoo
    109. Case "Ask" : Suche.Image = My.Resources.Ask
    110. Case "Amazon" : Suche.Image = My.Resources.Amazon
    111. Case "Ebay" : Suche.Image = My.Resources.ebay
    112. Case "Wikipedia" : Suche.Image = My.Resources.Wikipedia
    113. End Select
    114. End Sub
    115. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    116. tbc.TabPages.Clear()
    117. addTab("Neuer Tab", "about:blank")
    118. Call getAktiverBrowser()
    119. Call SettingOpen()
    120. End Sub
    121. Private Sub SettingSave()
    122. 'Farben und Schriftar speichern
    123. My.Settings.Colors = Me.BackColor
    124. My.Settings.Colors = cmbURL.BackColor
    125. My.Settings.Colors = lblStatus.BackColor
    126. My.Settings.Colors = ListBox1.BackColor
    127. My.Settings.Colors = ctMenu.BackColor
    128. My.Settings.Colors = msMenu.BackColor
    129. My.Settings.Fonts = cmbURL.Font
    130. End Sub
    131. Private Sub Form1_FormClosing(sender As Object, e As EventArgs) Handles MyBase.FormClosing
    132. Call SettingSave()
    133. End Sub
    134. #End Region
    135. #Region "Seite laden/Informationen anzeigen"
    136. Private Sub wb_ProgressChanged(sender As Object, e As GeckoProgressEventArgs)
    137. lblStatus.Text = "Laden von der Website " & cmbURL.Text
    138. Try
    139. pgbLoad.Maximum = CInt(e.MaximumProgress)
    140. pgbLoad.Value = CInt(e.CurrentProgress)
    141. Catch ex As Exception
    142. pgbLoad.Value = 0
    143. End Try
    144. End Sub
    145. Private Sub BrowserDocumentTitle_Changed(sender As Object, e As EventArgs)
    146. If Not aktiverBrowser.DocumentTitle = Nothing Then
    147. tbc.SelectedTab.Text = aktiverBrowser.DocumentTitle
    148. End If
    149. lblStatus.Text = "Fertig"
    150. Call getAktiverBrowser()
    151. cmbURL.Text = aktiverBrowser.Url.OriginalString.ToString
    152. Me.Text = "tmBrowser | " & aktiverBrowser.DocumentTitle & " | " & aktiverBrowser.Url.OriginalString.ToString
    153. Call FavIcon()
    154. End Sub
    155. #End Region
    156. #Region "Farben/Schriftart"
    157. Private Sub Colors()
    158. If cd.ShowDialog = DialogResult.OK Then
    159. Me.BackColor = cd.Color
    160. cmbURL.BackColor = cd.Color
    161. lblStatus.BackColor = cd.Color
    162. ListBox1.BackColor = cd.Color
    163. ctMenu.BackColor = cd.Color
    164. msMenu.BackColor = cd.Color
    165. My.Settings.Save()
    166. End If
    167. If cd.Color = Color.Black Then
    168. cmbURL.ForeColor = Color.White
    169. lblStatus.ForeColor = Color.White
    170. ListBox1.BackColor = Color.White
    171. ctMenu.ForeColor = Color.White
    172. msMenu.ForeColor = Color.White
    173. My.Settings.Save()
    174. End If
    175. If cd.Color = Color.White Then
    176. cmbURL.ForeColor = Color.Black
    177. lblStatus.ForeColor = Color.Black
    178. ListBox1.BackColor = Color.Black
    179. ctMenu.ForeColor = Color.Black
    180. msMenu.ForeColor = Color.Black
    181. My.Settings.Save()
    182. End If
    183. End Sub
    184. Private Sub Fonts()
    185. fd.Font = cmbURL.Font
    186. If fd.ShowDialog = DialogResult.OK Then
    187. cmbURL.Font = fd.Font
    188. lblStatus.Font = fd.Font
    189. Label1.Font = fd.Font
    190. Else
    191. cmbURL.Font = New System.Drawing.Font("Microsoft Sans Serif", 8, FontStyle.Regular)
    192. End If
    193. End Sub
    194. #End Region
    195. #Region "Icons"
    196. Public Sub FavIcon()
    197. Try
    198. Dim url As Uri = New Uri(cmbURL.Text)
    199. If url.HostNameType = UriHostNameType.Dns Then
    200. Dim iconURL = "http://" & url.Host & "/favicon.ico"
    201. Dim request As System.Net.HttpWebRequest = CType(System.Net.HttpWebRequest.Create(iconURL), System.Net.HttpWebRequest)
    202. Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse)
    203. Dim stream As System.IO.Stream = response.GetResponseStream()
    204. Dim favicon = Image.FromStream(stream)
    205. Me.web_pic.Image = favicon
    206. End If
    207. Catch
    208. End Try
    209. End Sub
    210. #End Region
    211. #Region "Lesezeichen"
    212. Private Sub LoadBookmarks()
    213. For Each item In My.Settings.Bookmarks
    214. ListBox1.Items.Add(item)
    215. Next
    216. End Sub
    217. Private Sub AddBookmarks()
    218. My.Settings.Bookmarks.Add(aktiverBrowser.Url.ToString)
    219. cmbURL.Items.Add(aktiverBrowser.Url.ToString)
    220. ListBox1.Items.Add(aktiverBrowser.Url.ToString)
    221. End Sub
    222. Private Sub RemoveBookmarks()
    223. My.Settings.Bookmarks.Remove(CType(ListBox1.SelectedItem, String))
    224. ListBox1.Items.Remove(ListBox1.SelectedItem)
    225. cmbURL.Items.Remove(ListBox1.SelectedItem)
    226. End Sub
    227. Private Sub bntAddBookmarks_Click(sender As Object, e As EventArgs) Handles bntAddBookmarks.Click
    228. Call AddBookmarks()
    229. End Sub
    230. Private Sub bntRemoveBookmarks_Click(sender As Object, e As EventArgs) Handles bntRemoveBookmarks.Click
    231. Call RemoveBookmarks()
    232. End Sub
    233. Private Sub ListBox1_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseDoubleClick
    234. aktiverBrowser.Navigate(CType(ListBox1.SelectedItem, String))
    235. End Sub
    236. #End Region
    237. #Region "Menü"
    238. Private Sub NewWindowToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewWindowToolStripMenuItem.Click
    239. Dim Form = New tmBrowser
    240. Form.ShowDialog()
    241. End Sub
    242. Private Sub NeuerTabToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles NeuerTabToolStripMenuItem1.Click
    243. Call LoadTabs()
    244. End Sub
    245. Private Sub TabSchließenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles TabSchließenToolStripMenuItem1.Click
    246. Call removeTab()
    247. End Sub
    248. Private Sub ÖffnenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles ÖffnenToolStripMenuItem1.Click
    249. If ofd.ShowDialog() = DialogResult.OK Then
    250. aktiverBrowser.Navigate(ofd.FileName)
    251. End If
    252. End Sub
    253. Private Sub SpeichernunterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichernunterToolStripMenuItem.Click
    254. sfd.Filter = "*.html, *.htm|*.html,*.htm"
    255. sfd.FileName = Nothing
    256. If sfd.ShowDialog() = DialogResult.OK Then
    257. aktiverBrowser.SaveDocument(sfd.FileName)
    258. End If
    259. End Sub
    260. Private Sub DruckenToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles DruckenToolStripMenuItem1.Click
    261. Call getAktiverBrowser()
    262. aktiverBrowser.Navigate("javascript:window.print()")
    263. End Sub
    264. Private Sub SchriftartToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SchriftartToolStripMenuItem.Click
    265. Call Fonts()
    266. End Sub
    267. Private Sub SchriftfarbeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SchriftfabeToolStripMenuItem.Click
    268. Call Colors()
    269. End Sub
    270. Private Sub StartseiteÄndernToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles StartseiteÄndernToolStripMenuItem1.Click
    271. My.Settings.Home = cmbURL.Text
    272. My.Settings.Save()
    273. MsgBox(cmbURL.Text & " wurde als Startseite gespeichert.", MsgBoxStyle.Information, "Information")
    274. End Sub
    275. Private Sub WebsiteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WebsiteToolStripMenuItem.Click
    276. Call getAktiverBrowser()
    277. aktiverBrowser.Navigate("http://thiemo-melhorn.ws")
    278. End Sub
    279. Private Sub FacebookToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FacebookToolStripMenuItem.Click
    280. Call getAktiverBrowser()
    281. aktiverBrowser.Navigate("https://www.facebook.com/ThiemoSoftware/")
    282. End Sub
    283. Private Sub ZumEntwicklerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZumEntwicklerToolStripMenuItem.Click
    284. MsgBox("Entwickler: tmBrowser" & vbNewLine & "Version: 1.0.0.0")
    285. End Sub
    286. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    287. aktiverBrowser.GoBack()
    288. End Sub
    289. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    290. aktiverBrowser.GoForward()
    291. End Sub
    292. Private Sub cmbURL_KeyUp(sender As Object, e As KeyEventArgs) Handles cmbURL.KeyUp
    293. If e.KeyCode = Keys.Enter Then
    294. aktiverBrowser.Navigate(cmbURL.Text)
    295. e.SuppressKeyPress = True
    296. End If
    297. End Sub
    298. Private Sub bntHome_Click(sender As Object, e As EventArgs) Handles Button3.Click
    299. Call getAktiverBrowser()
    300. aktiverBrowser.Navigate(My.Settings.Home)
    301. End Sub
    302. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    303. Call LoadTabs()
    304. Call getAktiverBrowser()
    305. cmbURL.Text = "about:blank"
    306. End Sub
    307. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    308. Call removeTab()
    309. End Sub
    310. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    311. aktiverBrowser.Reload()
    312. End Sub
    313. Private Sub SuchemaschienenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SuchemaschienenToolStripMenuItem.Click
    314. Select Case My.Settings.Search
    315. Case "Google" : auswahl = "http://www.google.de/search?hl=de&source=hp&q=" & cmbURL.Text & "&btnG=Google-Suche&meta=&aq=f&oq="
    316. Case "Yahoo" : auswahl = "http://de.search.yahoo.com/search?p=" & cmbURL.Text & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
    317. Case "Ask" : auswahl = "http://de.ask.com/web?q=" & cmbURL.Text & "&qsrc=0&o=0&l=dir&s=&part=&dm=lang"
    318. Case "Amazon" : auswahl = "http://redir.opera.com/amazon/?q=" & cmbURL.Text
    319. Case "Ebay" : auswahl = "http://redir.opera.com/ebay/?q=" & cmbURL.Text
    320. Case "Wikipedia" : auswahl = "http://de.wikipedia.org/wiki/" & cmbURL.Text
    321. End Select
    322. aktiverBrowser.Navigate(auswahl)
    323. End Sub
    324. Private Sub Suche_Click(sender As Object, e As EventArgs) Handles Suche.Click
    325. Suchmaschienen.Show
    326. End Sub
    327. Private Sub LesezeichenImportierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LesezeichenImportierenToolStripMenuItem.Click
    328. Assistent.Show()
    329. End Sub
    330. #End Region
    331. #Region "Downloader"
    332. #End Region
    333. #Region "Suchmaschienen"
    334. Private Sub Suchen()
    335. Select Case My.Settings.Search
    336. 'Case "Google" : auswahl = "http://www.google.de/search?q=" & cmbURL.Text
    337. 'Case "Yahoo" : auswahl = "http://de.search.yahoo.com/search?p=" & TextBox2.Text & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
    338. 'Case "Ask" : auswahl = "http://de.ask.com/web?q=" & TextBox2.Text & "&qsrc=0&o=0&l=dir&s=&part=&dm=lang"
    339. 'Case "Amazon" : auswahl = "http://redir.opera.com/amazon/?q=" & TextBox2.Text
    340. 'Case "Ebay" : auswahl = "http://redir.opera.com/ebay/?q=" & TextBox2.Text
    341. 'Case "Wikipedia" : auswahl = "http://de.wikipedia.org/wiki/" & TextBox2.Text
    342. End Select
    343. aktiverBrowser.Navigate("https://www.google.de/search?q=Test")
    344. aktiverBrowser.Navigate(auswahl)
    345. End Sub
    346. #End Region
    347. End Class
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

    Jetzt reden wir in .NET

    @Thiemo1991

    Astrein mein Bester...

    So geht das wohl mit dem "Tabbedbrowsing" in WindowsForms.

    Public WithEvents aktiverBrowser As GeckoWebBrowser

    Perfekt um ein Control in VB anzulegen, sofortige Debugger Unterstützung.

    Also Dein Browser ist schon sehr fortgeschritten, und ich kann hier mit deinem Quellcode besser verstehen wo Stolpersteine sind.

    Ich nehme mal mir die Stolpersteine vor, und arbeite diese mal ab.

    VB.NET-Quellcode

    1. Function ÜberprüfeURL(ByVal URL As String) As String
    2. Dim fertig As String = URL
    3. If Not fertig.StartsWith("http://") Then
    4. fertig = "Http://" & URL
    5. End If
    6. Return fertig
    7. End Function


    Frage: Nutzt Du diese Funktion auch woanders?

    Aufgefallen ist mir, innerhalb der Funktion, das Du auf "http://" prüfst, aber evtl. die gesicherten Webseiten mit "https://" nicht berücksichtigt werden. Ich würde einfach nach "http" prüfen, weil das ist der gemeinsame Nenner.
    If Not fertig.StartsWith("http") Then

    Du könntest diese Funktion gut nutzen, um den Suchtext von einer URL zu unterscheiden.




    Vorweg würde ich mir eine Variable mit der ausgesuchten/eingestellten Suchmaschine anlegen. Und den Vorschlag von @Nolde beherzigen.

    VB.NET-Quellcode

    1. Dim aktuelleSuchmaschine as Suchmaschinen
    2. 'Die Aufzählung (Enum = Enumeration) mit dem Namen: "Suchmaschinen"
    3. Public Enum Suchmaschinen
    4. Google
    5. Yahoo
    6. Ask
    7. Amazon
    8. Ebay
    9. Wikipedia
    10. End Enum
    11. 'Zuweisen von einem Wert aus der Aufzählung: "Suchmaschinen"
    12. aktuelleSuchmaschine = Suchmaschinen.Wikipedia
    13. 'oder diese Schreibweise. Bitte nicht nutzen, ist schlechter zu lesen...
    14. aktuelleSuchmaschine = 5


    Anmerkung: Wie Nolde im folgendem Post erwähnt, ist die Schreibweise mit den Zahlenwerten die beste Methode beim Schreiben/Lesen in die Einstellungen des Programms. SettingSave

    Wo überall Du diese Variable nutzt ist beim Laden der Einstellungen und beim Speichern, und bei der Verarbeitung.

    VB.NET-Quellcode

    1. Private Sub SuchemaschienenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SuchemaschienenToolStripMenuItem.Click
    2. Select Case My.Settings.Search
    3. Case "Google" : auswahl = "http://www.google.de/search?hl=de&source=hp&q=" & cmbURL.Text & "&btnG=Google-Suche&meta=&aq=f&oq="
    4. Case "Yahoo" : auswahl = "http://de.search.yahoo.com/search?p=" & cmbURL.Text & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
    5. Case "Ask" : auswahl = "http://de.ask.com/web?q=" & cmbURL.Text & "&qsrc=0&o=0&l=dir&s=&part=&dm=lang"
    6. Case "Amazon" : auswahl = "http://redir.opera.com/amazon/?q=" & cmbURL.Text
    7. Case "Ebay" : auswahl = "http://redir.opera.com/ebay/?q=" & cmbURL.Text
    8. Case "Wikipedia" : auswahl = "http://de.wikipedia.org/wiki/" & cmbURL.Text
    9. End Select
    10. aktiverBrowser.Navigate(auswahl)
    11. End Sub


    Hier ist deine Suchmaschinenauswahl, die wie folgt geändert werden kann.

    VB.NET-Quellcode

    1. Private Sub SuchemaschienenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SuchemaschienenToolStripMenuItem.Click
    2. Select Case My.Settings.Search
    3. Case "Google" : aktuelleSuchmaschine = Suchmaschinen.Google
    4. Case "Yahoo" : aktuelleSuchmaschine = Suchmaschinen.Yahoo
    5. Case "Ask" : aktuelleSuchmaschine = Suchmaschinen.Ask
    6. Case "Amazon" : aktuelleSuchmaschine = Suchmaschinen.Amazon
    7. Case "Ebay" : aktuelleSuchmaschine = Suchmaschinen.Ebay
    8. Case "Wikipedia" : aktuelleSuchmaschine = Suchmaschinen.Wikipedia
    9. End Select
    10. aktiverBrowser.Navigate(ÜberprüfeURL(cmbURL.Text))
    11. End Sub
    12. 'Die Funktion: Dem URL-Parameterwert können auch nicht Webaddressen übergeben werden.
    13. 'Rückgabewert: Eine Webaddresse, mit Prüfung auf Suchanfragen oder konkrete Webaddressen.
    14. Function ÜberprüfeURL(ByVal URL As String) As String
    15. Dim fertig As String = URL 'Der Ausgabe String für die verarbeitete URL.
    16. 'Prüfen ob eine URL oder eine Suchanfrage
    17. Select Case True
    18. Case fertig.StartsWith("http://")
    19. 'nichts an dem Wert in fertig ändern
    20. Case fertig.StartsWith("www")
    21. 'am Anfang http:// anfügen, evtl. https://
    22. fertig = "http://" & fertig
    23. 'fertig = "https://" & fertig
    24. Case fertig.StartsWith("about:") 'für die Browser Einstellungen
    25. 'nichts an dem Wert in fertig ändern
    26. Case fertig.StartsWith("javascript:") 'für den Druckbefehl
    27. 'nichts an dem Wert in fertig ändern
    28. Case fertig.StartsWith("https://")
    29. 'nichts an dem Wert in fertig ändern
    30. Case Else
    31. 'Anfang Suchmaschinenbereich
    32. 'keine URL, benutze Suchmaschinen Aufruf URLs
    33. 'ACHTUNG! Verschachteltes Select Case
    34. Select Case aktuelleSuchmaschine
    35. Case Suchmaschinen.Google
    36. fertig = "http://www.google.de/search?hl=de&source=hp&q=" & fertig & "&btnG=Google-Suche&meta=&aq=f&oq="
    37. 'fertig = "http://www.google.de/search?q=" & fertig
    38. Case Suchmaschinen.Yahoo
    39. fertig = "http://de.search.yahoo.com/search?p=" & fertig & "&fr=yfp-t-501&ei=UTF-8&rd=r1"
    40. Case Suchmaschinen.Ask
    41. fertig = "http://de.ask.com/web?q=" & fertig & "&qsrc=0&o=0&l=dir&s=&part=&dm=lang"
    42. Case Suchmaschinen.Amazon
    43. fertig = "https://www.amazon.de/s/ref=nb_sb_ss_i_1_5?__mk_de_DE=ÅMÅŽÕÑ&url=search-alias%3Daps&field-keywords=" & fertig.Replace(" ", "+")
    44. Case Suchmaschinen.Ebay
    45. fertig = "http://redir.opera.com/ebay/?q=" & fertig
    46. 'ist bestimmt nicht richtig die URL, bitte selber prüfen!
    47. Case Suchmaschinen.Wikipedia
    48. fertig = "https://de.wikipedia.org/wiki/Special:Search?search=" & fertig.Replace(" ", "_")
    49. End Select 'Ende Suchmaschinenbereich
    50. End Select
    51. Return fertig
    52. End Function



    Die URL´s zu den Suchmaschinen, habe ich nicht alle geprüft.

    Vor allem wenn die Url "http://redir.opera.com/" ist, nehme ich an, das ist ein Operabrowser angefertigter Weblink, und funktioniert nicht in GeckoFX.

    Und jedesmal vor dem navigieren einfach die Funktion mit der URL-Prüfung ausführen.

    Quellcode

    1. aktiverBrowser.Navigate(ÜberprüfeURL(cmbURL.Text))


    Hier mal ein Ersatz für deine Suchen-Prozedur.
    Weil jetzt ja alles in URLPrüfen geschieht, ist hier nix mehr drin. Verdammte suche... ?(

    VB.NET-Quellcode

    1. Private Sub Suchen()
    2. aktiverBrowser.Navigate(ÜberprüfeURL(cmbURL.Text))
    3. End Sub


    Das ist eine Möglichkeit.

    Ob und wie eine Funktion wie im Operabrowser oder Firefox im geckoFX aktiviert wird, um die Suchefunktionen zu nutzen, weiss ich nicht.
    Vielleicht ist das schon eingebaut?

    Evtl. muss noch der Initialwert von der Variable aktuelleSuchmaschine im SettingOpen() festgelegt werden.




    Kleiner Tipp:

    Spoiler anzeigen
    In deinem HTTPRequest Teil:

    VB.NET-Quellcode

    1. Public Sub FavIcon()
    2. Try
    3. Dim url As Uri = New Uri(cmbURL.Text)
    4. If url.HostNameType = UriHostNameType.Dns Then
    5. Dim iconURL = "http://" & url.Host & "/favicon.ico"
    6. Dim request As System.Net.HttpWebRequest = CType(System.Net.HttpWebRequest.Create(iconURL), System.Net.HttpWebRequest)
    7. Dim response As System.Net.HttpWebResponse = CType(request.GetResponse(), System.Net.HttpWebResponse)
    8. Dim stream As System.IO.Stream = response.GetResponseStream()
    9. Dim favicon = Image.FromStream(stream)
    10. Me.web_pic.Image = favicon
    11. End If
    12. Catch
    13. End Try
    14. End Sub


    Hier benutzt Du einen Stream, der sollte immer geschlossen werden, wenn er nicht mehr gebraucht wird.

    VB.NET-Quellcode

    1. Dim stream As System.IO.Stream = response.GetResponseStream()
    2. Dim favicon = Image.FromStream(stream)
    3. Me.web_pic.Image = favicon
    4. stream.Close()



    So ich mach mal Pause. Biofestplatte bei 7200rpm...
    Ich habe da noch einiges zu korrigieren im Text und habe noch nicht alle Stolpersteine abgearbeitet, das sollte aber das Hauptproblem abdecken.

    Edit: Edit abgeschlossen. So Biofestplatte mit Kaffee geschmiert. LÄUFT! :P

    c.u. Joshi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Joshi“ () aus folgendem Grund: Biofestplatte Kaffeeunterversorgung endeckt. Maßnahmen eingeleitet...

    Joshi schrieb:

    Und den Vorschlag von @Nolde beherzigen.


    :thumbsup:

    Wobei nicht ganz richtig umgesetzt.

    VB.NET-Quellcode

    1. Select Case My.Settings.Search Case "Google" :


    Solch sollte damit vermieden werden. Strings so angewendet, das führt schnell mal zu Fehlern, die VS dir nicht zeigen kann, schreib Google an der Stelle mal versehendlich klein. Das reicht schon damit es schief geht. Daher Enum, die Setting als Integer, dadurch weniger Fehleranfälligen Code.

    Joshi schrieb:

    Die URL´s zu den Suchmaschinen, habe ich nicht alle geprüft.


    Die Urls In der Beispiel-Projektmappe von mir funktionieren.
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin
    Mein Dank geht an die mir sehr gehofen haben, so wie ich auch es brauche. DANKE DAFÜR NOCHMALS

    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Thiemo1991“ ()

    Das würde ich zwar gerne einbauen, wenn ich keine zusätzliche Form hätte aber nun mal habe ich die und ich weis nicht wo dieser Code (der auf der ersten Seite steht) auch dafür ist, weil in der ersten Form wird auschließlich NUR überprüft, welches Bild zu welcher Auswahl gehört.

    Ich weis nicht, ob es etwas euch bringt aber ich wwerde den Code aus meiner ersten Form hier rein tun.
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Public Class Suchmaschienen
    2. Private Sub Suchmaschiene_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    3. If Google.Checked Then
    4. My.Settings.Search = "Google"
    5. tmBrowser.Suche.Image = My.Resources.Google
    6. ElseIf Yahoo.Checked Then
    7. My.Settings.Search = "Yahoo"
    8. tmBrowser.Suche.Image = My.Resources.Yahoo
    9. ElseIf Ask.Checked Then
    10. My.Settings.Search = "Ask"
    11. tmBrowser.Suche.Image = My.Resources.Ask
    12. ElseIf Amazon.Checked Then
    13. My.Settings.Search = "Amazon"
    14. tmBrowser.Suche.Image = My.Resources.Amazon
    15. ElseIf Ebay.Checked Then
    16. My.Settings.Search = "Ebay"
    17. tmBrowser.Suche.Image = My.Resources.ebay
    18. ElseIf Wikipedia.Checked Then
    19. My.Settings.Search = "Wikipedia"
    20. tmBrowser.Suche.Image = My.Resources.Wikipedia
    21. End If
    22. My.Settings.Save()
    23. End Sub
    24. Private Sub Suchmaschiene_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    25. Select Case My.Settings.Search
    26. Case "Google" : Google.Checked = True
    27. Case "Yahoo" : Yahoo.Checked = True
    28. Case "Ask" : Ask.Checked = True
    29. Case "Amazon" : Amazon.Checked = True
    30. Case "Ebay" : Ebay.Checked = True
    31. Case "Wikipedia" : Wikipedia.Checked = True
    32. End Select
    33. End Sub
    34. End Class
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Ich habe das ganze eingebaut mit der Suchmaschiene aber es passiert nichts - nicht mal eine Fehlermeldung bekomme ich - außer, dass, wenn ich ein normales Wort eingebe, mein Programm versucht, daraus eine URL zu machen und keinen Suchbegriff auf Google zu gehen.

    Edit: Die Suche habe ich jetzt so wie @NoIde gelöst. Danke Nochmal.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thiemo1991“ ()

    @Joshi

    Ich habe soeben den Code von dem

    Quellcode

    1. DomClick
    Event versucht, es hin zu bekommen, dass ich den Firefox Downloader zu gesicht bekomme aber bekomme ich gar nichts angezeigt, wenn ich auf einen Download-Link klicke. Könntest du mir das in einem Beispiel Projekt schicken?

    MFG
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de