Proxy OHNE neustart ändern (internen webbrowser)

  • VB.NET

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

    Proxy OHNE neustart ändern (internen webbrowser)

    Hallo,

    ich habe ein kleines problem habe nun schon seit einigen stunden danach gesucht wie ich ein Proxy einbinde.

    Bin dann zum entschluss gekommen dies in der Registry festzulegen das hat auch alles wunderbar geklappt nur wird der Proxy immer erst nach einen neustart der Application übernommen das führt im weiteren verlauf des Programmes zu problemen somit müsste ich es irgentwie ohne Neustart realisieren.

    Leider weiß ich nicht wie hab nun schon ne zeit lang gesucht doch leider nichts richtiges gefunden bzw. nicht verstanden.

    Wäre sehr nett wenn jemand mir das erklären könnte.

    Bisher genutzter Code:

    Proxy wird aktiviert:

    VB.NET-Quellcode

    1. My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software" & _
    2. "Microsoft\Windows\CurrentVersion\Internet Settings", _
    3. "ProxyEnable", "00000001", _
    4. Microsoft.Win32.RegistryValueKind.DWord)


    Proxy wird gesetzt:

    VB.NET-Quellcode

    1. Dim wert As String = Label2.Text
    2. My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software" & _
    3. "Microsoft\Windows\CurrentVersion\Internet Settings", _
    4. "ProxyServer", wert, _
    5. Microsoft.Win32.RegistryValueKind.String)
    6. Application.Restart()


    MFG Gorlo
    Das geht so nicht , der wert schaltet sich nach ein paar Sec wieder zurück ! - Selbst nach einem Neustart !


    Was hast für en Windows drauf ?

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

    Ganz ehrlich: In der Registry rumzupfuschen ist nicht gut. Egal, ob's funktioniert, oder nicht.
    Schmeiss doch den WebBrowser raus und baue dir das Ganze mit HttpWebRequest und HttpWebResponse auf. Dort kannst du ohne weiteres über 'nen Proxy gehen und auch immer wieder wechseln(HttpWebReq.Proxy = New WebProxy(New Uri("111.111......"))).
    Ich bin mir ziemlich sicher, dass dein Programm keinen ganzen WebBrowser benötigt.
    Einstellung ist Nur für Windows 7 !
    Ich hatte mir das für win7 so gemacht - so schaltet er direkt um und die Externe iIP wird angezeigt !

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports Microsoft.Win32
    3. Imports System.Net
    4. Public Class Form1
    5. Dim wc As New WebClient
    6. Dim Offset As Integer = 16
    7. Dim ProxyEnable As Boolean
    8. Dim ProxyServer As String
    9. Dim DefaultConnectionSettings As New List(Of Byte)
    10. Dim SavedLegacySettings As New List(Of Byte)
    11. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    12. 'Windows OS_Version prüfen ( Anfang )
    13. Dim OS_Prüfungsergebnis As String = ""
    14. For Each OS_Prüfen As String In My.Computer.Info.OSFullName.ToString
    15. If OS_Prüfen.Contains("7") Then
    16. OS_Prüfungsergebnis = OS_Prüfen
    17. End If
    18. Next
    19. If Not OS_Prüfungsergebnis = "7" Then
    20. MsgBox("Dieses Programm ist nur für Windows 7 geeignet !" & vbCrLf & "Das Programm wird beendet !") 'Wenn nich W7 oder W8 ,dann Meldung und aus
    21. Me.Close()
    22. End If
    23. 'Datei erstellen
    24. If IO.File.Exists("Proxy_IP_LIste.txt") = False Then
    25. System.IO.File.Create("Proxy_IP_LIste.txt").Close()
    26. End If
    27. Button1.Enabled = False
    28. 'IP Liste Laden
    29. ListBox1.Items.AddRange(IO.File.ReadAllLines(IO.Path.Combine(Application.StartupPath, "Proxy_IP_LIste.txt")))
    30. ' IP Test Start
    31. Extene_IP_Testen()
    32. End Sub
    33. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
    34. DefaultConnectionSettings.Clear() : SavedLegacySettings.Clear() : TextBox3.Clear() 'List(Of Byte) immer zuerst löschen + Fehler Textbox löschen
    35. If sender Is Button1 Then 'Button 1 Proxy an
    36. ProxyEnable = True 'Proxy Enable auf 1 setzen
    37. ProxyServer = ListBox1.SelectedItem.ToString ' IP in ProxyServer eintragen
    38. 'Windows7 Proxy Grundeinstellung - an - in List(Of Byte) übergeben
    39. DefaultConnectionSettings.AddRange(New Byte() {70, 0, 0, 0, 96, 0, 0, 0, 11, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 216, 153, 162, 35, 169, 48, 207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 192, 168, 178, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 94, 245, 121, 253, 16, 10, 17, 201, 178, 191, 29, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
    40. SavedLegacySettings.AddRange(New Byte() {70, 0, 0, 0, 58, 2, 0, 0, 11, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 216, 153, 162, 35, 169, 48, 207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 192, 168, 178, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 94, 245, 121, 253, 16, 10, 17, 201, 178, 191, 29, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
    41. 'IP Textbox mit Schleife und Substring durchlaufen
    42. For i = 0 To ListBox1.SelectedItem.ToString.Length - 1
    43. Dim c As Char = CType(ListBox1.SelectedItem.ToString.Substring(i, 1), Char)
    44. Dim Convertierte_IP As Byte = CByte(Asc(c).ToString) 'IP convertieren
    45. DefaultConnectionSettings.Insert(Offset + i, Convertierte_IP) 'IP convertierte IP mit Insert in List(Of Byte) einfügen
    46. SavedLegacySettings.Insert(Offset + i, Convertierte_IP) 'IP convertierte IP mit Insert in List(Of Byte) einfügen
    47. Next
    48. ElseIf sender Is Button2 Then 'Button 2 Proxy aus
    49. ProxyEnable = False 'Proxy Enable auf 0 setzen
    50. ProxyServer = "" ' IP in ProxyServer löschen
    51. 'Windows7 Proxy Grundeinstellung - aus - in List(Of Byte) übergeben
    52. DefaultConnectionSettings.AddRange(New Byte() {70, 0, 0, 0, 94, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 118, 21, 146, 18, 155, 48, 207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 192, 168, 178, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 94, 245, 121, 251, 20, 141, 23, 77, 178, 191, 29, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
    53. SavedLegacySettings.AddRange(New Byte() {70, 0, 0, 0, 52, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 52, 119, 115, 154, 48, 207, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 192, 168, 178, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 94, 245, 121, 251, 20, 141, 23, 77, 178, 191, 29, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
    54. End If
    55. 'Die Übergabe von Button 1 oder Button 2 in die Registry schreiben
    56. Dim regKey1, regKey2 As RegistryKey
    57. regKey1 = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", RegistryKeyPermissionCheck.Default)
    58. regKey1.SetValue("ProxyServer", ProxyServer, RegistryValueKind.String)
    59. regKey1.SetValue("ProxyEnable", ProxyEnable, RegistryValueKind.DWord)
    60. regKey1.Close()
    61. regKey2 = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections", RegistryKeyPermissionCheck.Default)
    62. regKey2.SetValue("DefaultConnectionSettings", DefaultConnectionSettings.ToArray, RegistryValueKind.Binary)
    63. regKey2.SetValue("SavedLegacySettings", SavedLegacySettings.ToArray, RegistryValueKind.Binary)
    64. regKey2.Close()
    65. ' IP Test Start
    66. Extene_IP_Testen()
    67. End Sub
    68. 'IP Test
    69. Private Sub Extene_IP_Testen()
    70. If wc.IsBusy = True Then
    71. wc.CancelAsync()
    72. wc = New WebClient
    73. End If
    74. TextBox1.Text = "Bitte warten..."
    75. Try
    76. wc.DownloadStringAsync(New Uri("http://www.myip.ch/"))
    77. AddHandler wc.DownloadStringCompleted, AddressOf DownloadCompleted
    78. Catch ex As Exception
    79. TextBox1.Text = "Keine Verbindung !"
    80. End Try
    81. End Sub
    82. Private Sub DownloadCompleted(sender As Object, e As DownloadStringCompletedEventArgs)
    83. If e.Error IsNot Nothing Then
    84. If e.Error.Message.Split(CChar(":"))(0) = "Die Anfrage wurde abgebrochen" Then
    85. TextBox1.Text = "Bitte warten..."
    86. Else
    87. TextBox1.Text = "Keine Verbindung !"
    88. End If
    89. Try
    90. TextBox3.Text = e.Error.Message.Split(CChar(":"))(0)
    91. Catch ex As Exception
    92. TextBox3.Text = e.Error.Message
    93. End Try
    94. Else
    95. TextBox1.Text = e.Result.Split(CChar(":"))(1).Split(CChar("<br/><br/>"))(0)
    96. TextBox3.Clear()
    97. End If
    98. End Sub
    99. 'Butten Sperren wenn nichts ausgewählt ist
    100. Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
    101. If ListBox1.SelectedItems.Count = Nothing Then
    102. Button1.Enabled = False
    103. Else
    104. Button1.Enabled = True
    105. If CheckBox1.Checked = True Then
    106. Button1.PerformClick()
    107. End If
    108. End If
    109. End Sub
    110. 'IP Liste Refresh
    111. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    112. Button1.Enabled = False
    113. ListBox1.Items.Clear()
    114. ListBox1.Items.AddRange(IO.File.ReadAllLines(IO.Path.Combine(Application.StartupPath, "Proxy_IP_LIste.txt")))
    115. End Sub
    116. 'IP LIste Öffnen
    117. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    118. Try
    119. Process.Start("notepad.exe", IO.Path.Combine(Application.StartupPath, "Proxy_IP_LIste.txt"))
    120. Catch ex As Exception
    121. MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler")
    122. End Try
    123. End Sub
    124. 'www.proxy-listen.de - öffnen
    125. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    126. Try
    127. Process.Start("http://www.proxy-listen.de/Proxy/Proxyliste.html")
    128. Catch ex As Exception
    129. Process.Start("iexplore.exe", "http://www.proxy-listen.de/Proxy/Proxyliste.html")
    130. End Try
    131. End Sub
    132. 'www.proxy-listen.de/Proxy/Proxychecker - öffnen
    133. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    134. Try
    135. Process.Start("http://www.proxy-listen.de/Proxy/Proxychecker.html")
    136. Catch ex As Exception
    137. Process.Start("iexplore.exe", "http://www.proxy-listen.de/Proxy/Proxychecker.html")
    138. End Try
    139. End Sub
    140. End Class




    W7 - Proxy Tool - VB Mappe.7z
    www21.zippyshare.com/v/14789264/file.html

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