Report TOOL - Probleme mit der Support hp

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

    Report TOOL - Probleme mit der Support hp

    Hallo Jungs sowie Mädels,

    Ich versuche derzeit ein kleines Tool zum schreiben, das sich auf der Support Homepage von einem Spiel einloggt. Das Einloggen und absenden der Daten habe ich mit WebBrowser1.Document.GetElementById schon hinbekommen. Das Problem ist aber wenn ich nach dem Einloggen zum Formular möchte, muss ich im Menü auf die Schaltfläche klicken da das Formular trotz richtiger URL nicht erscheint. Bekomme es leider nicht hin, das VB im Browser auf das Formular klickt. Was kann ich nun weiter tun?

    Zumden ist dann die Frage wie ich aus der Combo Box der HP, den richtigen text senden kann 8|

    URL siehe hier: support.gameforge.com/
    Naja soll ja kein Bot sein. Die Idee dahinter ist, das Personen die sich kein Support ACC oder nicht jedes mal mühselig auf der Support Seite einlogen müssen.

    Er sendet normal nur die Login Daten von z.b. meinem Support ACC und über ein Ausfüll Formular der Anwendung soll der Support über einen Spieler benachrichtigt werden, der nicht fair Spielt.
    Mach das über einen Httpwebrequest.

    Hier ist der POST String zum einloggen:

    email=Email%40hotmail.de&password=Passwort&login=Login
    %40 = @ (Das musst du aber so lassen)

    Email%40hotmail.de musste umändern
    Passwort musste umändern

    Hier die Seite für Passwort ändern:
    http://support.gameforge.com/index.php?my=password


    & Der POST String beim ändern des PW's:

    old_pass=altesPasswort&pass=neuesPasswort&pass_2=neuesPasswortbestätigen&submit=Abschicken

    altesPasswort musste umändern
    neuesPasswort musste auch umändern
    und neuesPasswortbestätigen.

    Das ist dann 1. schneller und 2. Kannst dir ne eigene Gui zusammenbasteln und musst nicht das Webbrowser Element verwenden.


    Hier eine Anleitung wie du vorgehen musst:
    Schick ein Httpwebrequest auf die Startseite (brauchst auch einen Cookiecontainer).
    Änder die Methode zu "POST",
    Content-Type: application/x-www-form-urlencoded
    & User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
    Dann hol dir den Stream der Anfrage & schreibe den POST Stream rein (vorher in bytes umwandeln).
    Anschliessend hol dir die Antwort & lies Sie aus, jenachdem ob dort "Erfolgreich eingeloggt" (Oder was auch immer da sonst steht) steht,
    schickst du noch einen Request für's PW Ändern oder was auch immer oder gibst eine Fehlermeldung wegen falschen Daten / kein Internet blabla aus.

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

    So, ich hab hier mal nen kleinen Teil für dich, mit dem kannst du das Passwort ändern (2 Textboxen) und dich einloggen. Zusätzlich wird vorher noch geprüft ob man eingeloggt ist bevor man das passwort ändert bzw, wenn man versucht sich erneut einzuloggen ob man nicht schon eingeloggt ist
    (Ich weiß dass ich das eigtl in eine Prozedur packen könnte und die kleinen Unterschiede als parameter übergeben könnte, aber ist auch egal):

    Was du brauchst:
    3 Buttons - Button1 = Einloggbutton / Button2 = Passwort ändern Button /Button3 = Ausloggbutton
    4 Textboxen - Zum einloggen: Textbox1 = E-Mail zum einloggen // Textbox2 = Passwort zum einloggen
    Zum Passwort ändern: Textbox3 = altes Passwort // Textbox4 = neues Passwort

    VB.NET-Quellcode

    1. Imports System.Text
    2. Imports System.IO
    3. Imports System.Net
    4. Public Class Form1
    5. Private cookiecon As New CookieContainer
    6. Private angemeldet As Boolean = False
    7. Private UserAgent As String = "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0"
    8. Private ContentType As String = "application/x-www-form-urlencoded"
    9. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    10. If angemeldet Then
    11. MessageBox.Show("Bereits angemeldet")
    12. Exit Sub
    13. End If
    14. Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://support.gameforge.com/index.php?my=login"), HttpWebRequest)
    15. request.Method = "POST"
    16. request.CookieContainer = cookiecon
    17. request.UserAgent = UserAgent
    18. request.ContentType = ContentType
    19. Dim POST As String = String.Format("email={0}&password={1}&login=Login", TextBox1.Text.Replace("@"c, "%40"), TextBox2.Text)
    20. Dim bytes() As Byte = Encoding.Default.GetBytes(POST)
    21. Dim datastream As Stream = request.GetRequestStream
    22. datastream.Write(bytes, 0, bytes.Length)
    23. datastream.Close()
    24. Dim response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
    25. Using sr As New StreamReader(response.GetResponseStream)
    26. Dim input As String = sr.ReadToEnd
    27. angemeldet = input.Contains("logout")
    28. If angemeldet Then
    29. MessageBox.Show("Erfolgreich eingeloggt")
    30. Exit Sub
    31. End If
    32. MessageBox.Show("Fehlgeschlagen")
    33. End Using
    34. End Sub
    35. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    36. If Not angemeldet Then
    37. MessageBox.Show("Noch nicht angemeldet")
    38. Exit Sub
    39. End If
    40. Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://support.gameforge.com/index.php?my=password"), HttpWebRequest)
    41. request.Method = "POST"
    42. request.CookieContainer = cookiecon
    43. request.UserAgent = UserAgent
    44. request.ContentType = ContentType
    45. Dim Post As String = String.Format("old_pass={0}&pass={1}&pass_2={1}&submit=Abschicken", TextBox3.Text, TextBox4.Text)
    46. Dim bytes() As Byte = Encoding.Default.GetBytes(Post)
    47. Dim datastream As Stream = request.GetRequestStream
    48. datastream.Write(bytes, 0, bytes.Length)
    49. datastream.Close()
    50. Dim response As HttpWebResponse = DirectCast(request.GetResponse, HttpWebResponse)
    51. Using sr As New StreamReader(response.GetResponseStream)
    52. Dim input As String = sr.ReadToEnd
    53. If input.Contains("The password has been changed successfully.") Then
    54. MessageBox.Show("Erfolgreich geändert")
    55. Else
    56. MessageBox.Show("Fehlgeschlagen")
    57. End If
    58. End Using
    59. End Sub
    60. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    61. If Not angemeldet Then
    62. MessageBox.Show("Nicht angemeldet")
    63. Exit Sub
    64. End If
    65. cookiecon = Nothing
    66. Enabled = False
    67. MessageBox.Show("Erfolgreich ausgeloggt")
    68. End Sub
    69. End Class


    Das löst gleichzeitig dein Problem & ist performanter.

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

    Wieso ihr mir ein Beispiel für das Passwort ändern gebt, kann ich nicht zu 100% nachvollziehen.

    Dennoch riesen dank schon mal. Werde mir das die Tage mal genau durchlesen und rumprobieren.

    Wie kann ich den so ein POST STRING loggen? Es geht ja darum, das ich mit dem TOOL ein Support Ticket erstellen kann, dies müsste ja auch mit dem POST STRING funktionieren oder?
    Hol dir das Firefox Add-on Live httpheader und dort aktivierst du das Kästchen auf mitschneiden & anschliessend schickst du eine Supportanfrage. Dann wird alles mitgeschnitten & du speicherst und suchst die nach POST, dort suchst du dann einen String / Textausschnitt / Zeichenkette wo du deine Daten wiederfindest.
    Das kopierst du jetzt & packst das in die Variable POST rein und schreibst ihn in den Stream (Wie ich's oben gemacht hab)
    Das mit dem Passwort ändern war jetzt nur ein Beispiel, um dir zu verdeutlichen wie das mit httpwebrequest geht.

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