Click here to Skip to main content
15,867,308 members
Articles / Desktop Programming / WPF

Mobile Browser for PC

Rate me:
Please Sign up or sign in to vote.
3.55/5 (5 votes)
24 May 2013CPOL1 min read 143K   8   5
This is a simple mobile web browser for PC, to view mobile web sites in PC( Windows).

Introduction

This code guides you to change the User Agent in any browser.

This is a simple mobile web browser for PC. To view mobile web sites in PC (Windows):
https://sourceforge.net/projects/mobile-browser/

Background

Mobile version of Browser (Mobile-browser). Browsing like if you're on your Mobile Device supports various USER-AGENTS for browsing like (iPhone, Nokia Windows Phone, Android, Google Chrome, Firefox). This is simple mobile web browser for PC/windows

You can now open any mobile website in PC like Facebook, YouTube. Google, etc. Client/User agents are Android, iOS, iPhone, iPad, Chrome, Firefox, Internet Explorer 7, IE8 WP8, update will be coming soon adding some new user agent, and changing UI & improve performance and remove bugs. Required .NET Framework 3.5 or 4.0  

Screen Shots  

mobile-web-browser-for-pc_SumeetGehimobile-web-browser-for-pc_SumeetGehi

 

Using the Code 

The code is so simple, when we change the user agent the file urlmon.dll works and it change the user interface of any website to their mobile format. Note: Your have to add the following reference to import the DLL file:

C#
System.Runtime.InteropServices; and urlmon.dll  file  
// Created by Sumeet Gehi
// Windows Forms
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
// YOU HAVE TO ADD REFERENC
using System.Runtime.InteropServices;
 
namespace MobileBrowser
{
    public partial class Form1 : Form
    { 
        // TO IMPORT DLL FILE
        [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
 
        private static extern int UrlMkSetSessionOption(int dwOption, 
                  string pBuffer, int dwBufferLength, int dwReserved);
 
        const int URLMON_OPTION_USERAGENT = 0x10000001;
 
        public void ChangeUserAgent(string Agent)
        {
            UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
            
        }       
        //Create string for user agents 
        string and_40 = "Mozilla/5.0 (Linux; Android 4.0.4; DROID RAZR Build/6.7" + 
          ".2-180_DHD-16_M4-31) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/";
        string iphone_30 = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X;" + 
          " en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";
        //  string iphone_60 = "Mozilla/5.0 (iPhone; CPU iPhone OS 6_1 like Mac OS X)
        //          AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B143 Safari/8536.25";
        string ipad = "Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit" + 
          "/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3";
        string and_23 = "Mozilla/5.0 (Linux; U; Android 2.2; fr-fr; Desire_A8181 " + 
          "Build/FRF91) App3leWebKit/53.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
        //  string motorola_razr_40="Mozilla/5.0 (Linux; Android 4.0.4; DROID RAZR
        //   Build/6.7.2-180_DHD-16_M4-31) AppleWebKit/535.19
        // (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/";
        //  string htc_23 = "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us;
        //    ADR6300 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1";
        // string chrome_24 = "Mozilla/5.0 (Windows NT 6.1; WOW64)
        //    AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17";
        string chrome_13 = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 " + 
          "(KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1";
        string ie_8 = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; " + 
          "Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 3.5.30729)";
        //   string ie_10 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
        string ie_10_win8 = "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone" + 
          " 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)";

Create function for when user hit Enter then navigate to the URL that in TextBox

C#
// Create function for when user hit Enter then navigate to the URL that in TextBox
            
private void TextBoxUrl_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        webBrowser1.Navigate(TextBoxUrl.Text);
        MessageBox.Show("You press Enter");
    }
}

When user click on GO button 

C#
private void toolStrip_GoButton_Click(object sender, EventArgs e)
{	
    try
    {
       if (radioButton1.Checked == true)
        {
            ChangeUserAgent(and_40);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", 
                   null, "User-Agent: {0}" + and_40);
           // TextBoxUrl.Text = webBrowser1.Url.ToString();
            labelurl.Text =Convert.ToString(webBrowser1.Url.AbsolutePath);
            
        }
        else if (radioButton2.Checked == true)
        {
            ChangeUserAgent(and_23);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", 
                   null, "User-Agent: {0}" + and_23);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri);
        }
        else if (radioButton3.Checked == true)
        {
            ChangeUserAgent(iphone_30);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", null, 
                   "User-Agent: {0}" + iphone_30);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri);
        }
        if (radioButton4.Checked == true)
        {
            ChangeUserAgent(ipad);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", 
                 null, "User-Agent: {0}" + ipad);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri);
        }
        else if (radioButton5.Checked == true)
        {
            ChangeUserAgent(chrome_13);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", null, 
                    "User-Agent: {0}" + chrome_13);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri);
            
        }
        else if (radioButton6.Checked == true)
        {
            ChangeUserAgent(ie_8);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", 
                   null, "User-Agent: {0}" + ie_8);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri);
        }
        else if (radioButton_WP8.Checked == true)
        {
            ChangeUserAgent(ie_10_win8);
            webBrowser1.Navigate(TextBoxUrl.Text, "_self", 
                  null, "User-Agent: {0}" + ie_10_win8);
            labelurl.Text = Convert.ToString(webBrowser1.Url.AbsoluteUri)
            
        }
    }
    catch(Exception exce)
    {
        
        MessageBox.Show("have an error occured","Error!");
    }           
}

Other Buttons  

C#
private void toolStrip_FwdButton_Click(object sender, EventArgs e)
{
    webBrowser1.GoForward();
}

private void toolStrip_BackButton_Click(object sender, EventArgs e)
{
    webBrowser1.GoBack();
}
private void toolStrip_RefreshButton_Click(object sender, EventArgs e)
{
      webBrowser1.Refresh();        
}

private void toolStrip_StopButton_Click(object sender, EventArgs e)
{
    webBrowser1.Stop();
}   
 private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
    Close();
}

Files Include

  • urlmon.dll in bin/
  • size: 1.0mb

This article is only for beginners to how to change User interface (user agent) in any web browser

History   

This is my second article/tip. I know it has many mistakes. I hope to make my next article better than this. 

next update will be coming soon  

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Junior) Freelancer
Pakistan Pakistan
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Questionsource code file link broken Pin
Tridip Bhattacharjee6-Nov-14 20:43
professionalTridip Bhattacharjee6-Nov-14 20:43 
GeneralMy vote of 2 Pin
Afzaal Ahmad Zeeshan1-Nov-14 6:51
professionalAfzaal Ahmad Zeeshan1-Nov-14 6:51 
GeneralMy vote of 3 Pin
Albert van Peppen27-May-13 0:14
professionalAlbert van Peppen27-May-13 0:14 
GeneralMy vote of 2 Pin
maq_rohit24-May-13 8:46
professionalmaq_rohit24-May-13 8:46 
GeneralRe: My vote of 2 Pin
Sumeet Kumar G25-May-13 8:46
Sumeet Kumar G25-May-13 8:46 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.