Webbrowser Button/Label etc. Text rausfinden

  • Allgemein

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von TVX.

    Webbrowser Button/Label etc. Text rausfinden

    Huhu :)

    wollte mal fragen ob es möglich ist rauszufinden was ein Label Button oder was auch immer zur Zeit anzeigt...

    Webcode: <input type="submit" class="button_skill" name="Submit2" value="Abbrechen">

    Jetzt will ich halt die Value "Abbrechen" bekommen, wofür es gut sein soll?

    If Value = Abbrechen then
    was auch immer^^

    hoffe ihr versteht was ich meine

    Mfg OpferKopfer
    @OpferKlopfer

    Hier kann man perfekt RegularExpressions benutzen.
    Den Code habe ich nicht komplett perfekt gemacht ... ;) :p Da musst du selber noch ran.
    [Allgemein] Regular Expressions von 0 an

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Text.RegularExpressions
    3. Public Class Form1
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. Dim quellcode As String = "<input type='submit' class='button_skill' name='Submit2' value='Abbrechen'> " 'Dein Ausgangstext (der Quellcode)
    6. quellcode.Replace(Environment.NewLine, "") '(optional alle Zeilenumbrüche entfernen)
    7. Dim r As New Regex("value='(?<deintext>(.*?)[A-Z]{0,20})'", RegexOptions.IgnoreCase) 'Neues RegEx mit Suchmuster (alles von value=' bis '
    8. Dim matches As MatchCollection = r.Matches(quellcode) 'Alle Übereinstimmungen holen
    9. For Each m As Match In matches 'Für jede
    10. Dim result As String = m.Groups("deintext").Value
    11. MessageBox.Show(result) 'Ergebnis zeigen (optional)
    12. Next
    13. End Sub
    14. End Class
    Hallo,
    ich nehme mal an das du etwas mit einer Webseite vorhast.
    Um den Inhalt über VB abzufragen musst du die Daten erst wieder zurück an den Server senden, das würde sich aber für das beschriebene (nicht wirklich viel) nicht lohnen. Ich denke mal eher das du auf dem Client bleiben möchtest. Dafür kannst du dann beispielsweise einen kleinen Javascript benutzen:

    HTML-Quellcode

    1. <input type="submit" class="button_skill" name="Submit2" value="Adbrechen" onclick="if (this.value == 'Abbrechen') alert('Standarttext: Abbrechen'); else alert('Text: ' + this.value);" />

    Wenn du lieber VB nutzen möchtest, dann schaue dir mal Silverlight an, aber ob sich das lohnt, du willst ja momentan nur einen Button...

    Falls du doch nur "Value" aus dem String auslesen willst, ist Regex zwar sicher möglich, ich halte es hier aber für übertrieben es einzusetzen. .NET bietet alles was du brauchst:

    VB.NET-Quellcode

    1. Dim s As String = "<input type=""submit"" class=""button_skill"" name=""Submit2"" value=""Abbrechen"">"
    2. Dim tmp As Integer = s.IndexOf(" value=""")
    3. Dim value As String = s.Substring(tmp + 8, s.IndexOf("""", tmp + 8) - tmp - 8)

    IndexOf bestimmt das Vorkommen des angegebenen Strings. Der 2. Parameter bestimmt den kleinsten Index, an dem die Zeichenkette vorkommt. Substring gibt einen Teilstring des Strings zurück.
    Das geht ungefähr so :

    VB.NET-Quellcode

    1. Dim name As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
    2. Dim x As Integer
    3. For x = 0 To name.Count - 1
    4. If name(x).GetAttribute("value") = "Abbrechen" Then
    5. 'Was auch immer
    6. End If
    7. Next