0

There is a way to change The User-Agent of web browser control and it works! I changed the User-Agent by using the following code:

WebBrowser1.Navigate("https://example.com/file.php", Nothing, Nothing, "User-Agent: Your User-Agent" + vbCrLf)

It works, But the problem is that this code works one time!

For example if you entered to this site "https://example.com/login.php" and the site has referred you to another page! The second page will use the default User-Agent of Microsoft visual studio

Let me clarify this,The problem is that the code shown above cannot use the User-Agent more than once, After the site redirect you to another page the web browser will use the default User-Agent

salm
  • 1
  • 5
  • I checked out this before, I can't understand C#, thank you very much my dear. –  Jul 11 '20 at 15:49

1 Answers1

1

You can call the UrlMkSetSessionOption API function as described here, and additionally use URLMON_OPTION_USERAGENT_REFRESH to avoid the renavigation problem described here:

Module UserAgentChanger
    <Runtime.InteropServices.DllImport("urlmon.dll", CharSet:=Runtime.InteropServices.CharSet.Ansi)>
    Private Function UrlMkSetSessionOption(
        ByVal dwOption As Integer,
        ByVal pBuffer As String,
        ByVal dwBufferLength As Integer,
        ByVal dwReserved As Integer) As Integer
    End Function

    Const URLMON_OPTION_USERAGENT As Integer = &H10000001
    Const URLMON_OPTION_USERAGENT_REFRESH As Integer = &H10000002

    Public Sub SetUserAgent(ByVal UserAgent As String)
        UrlMkSetSessionOption(URLMON_OPTION_USERAGENT_REFRESH, vbNullString, 0, 0)
        UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0)
    End Sub
End Module
CherryDT
  • 25,571
  • 5
  • 49
  • 74