From dc09b742b4d3f795dc20ec5d293163c4189a8cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Jos=C3=A9=20Brusso?= Date: Thu, 14 Jan 2016 13:10:37 -0200 Subject: [PATCH 1/2] Show QR Code from external URL --- SharpProxy/bin/QRCoder.dll | Bin 0 -> 49152 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SharpProxy/bin/QRCoder.dll diff --git a/SharpProxy/bin/QRCoder.dll b/SharpProxy/bin/QRCoder.dll new file mode 100644 index 0000000000000000000000000000000000000000..6bf242051b386250b602a54e1a76cec14354deda GIT binary patch literal 49152 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 literal 0 HcmV?d00001 From 92e6a9ac413f334677c8863e1aaa665744159240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Jos=C3=A9=20Brusso?= Date: Thu, 14 Jan 2016 13:11:05 -0200 Subject: [PATCH 2/2] Show QR Code from external URL --- .gitignore | 5 ++++- SharpProxy/SharpProxy.csproj | 3 +++ SharpProxy/frmMain.Designer.cs | 30 +++++++++++++++++++++++++++++- SharpProxy/frmMain.cs | 21 +++++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3529ad9..c1dfb74 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,10 @@ Thumbs.db *.cache *.ilk *.log -[Bb]in +Bin/* +!Bin/QRCoder.dll +bin/* +!bin/QRCoder.dll [Dd]ebug*/ *.lib *.sbr diff --git a/SharpProxy/SharpProxy.csproj b/SharpProxy/SharpProxy.csproj index 3859005..18514b9 100644 --- a/SharpProxy/SharpProxy.csproj +++ b/SharpProxy/SharpProxy.csproj @@ -53,6 +53,9 @@ main.ico + + bin\QRCoder.dll + diff --git a/SharpProxy/frmMain.Designer.cs b/SharpProxy/frmMain.Designer.cs index bea1166..44a8445 100644 --- a/SharpProxy/frmMain.Designer.cs +++ b/SharpProxy/frmMain.Designer.cs @@ -38,6 +38,9 @@ private void InitializeComponent() this.label3 = new System.Windows.Forms.Label(); this.cmbIPAddress = new System.Windows.Forms.ComboBox(); this.chkRewriteHostHeaders = new System.Windows.Forms.CheckBox(); + this.picQRCode = new System.Windows.Forms.PictureBox(); + this.label4 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.picQRCode)).BeginInit(); this.SuspendLayout(); // // btnStart @@ -115,6 +118,7 @@ private void InitializeComponent() this.cmbIPAddress.Name = "cmbIPAddress"; this.cmbIPAddress.Size = new System.Drawing.Size(189, 21); this.cmbIPAddress.TabIndex = 8; + this.cmbIPAddress.SelectedIndexChanged += new System.EventHandler(this.cmbIPAddress_SelectedIndexChanged); // // chkRewriteHostHeaders // @@ -128,11 +132,32 @@ private void InitializeComponent() this.chkRewriteHostHeaders.Text = "&Rewrite host headers (IIS Express)"; this.chkRewriteHostHeaders.UseVisualStyleBackColor = true; // + // picQRCode + // + this.picQRCode.BackColor = System.Drawing.Color.White; + this.picQRCode.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.picQRCode.Location = new System.Drawing.Point(216, 25); + this.picQRCode.Name = "picQRCode"; + this.picQRCode.Size = new System.Drawing.Size(131, 131); + this.picQRCode.TabIndex = 10; + this.picQRCode.TabStop = false; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(219, 9); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(51, 13); + this.label4.TabIndex = 11; + this.label4.Text = "QR Code"; + // // frmMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(212, 185); + this.ClientSize = new System.Drawing.Size(375, 192); + this.Controls.Add(this.label4); + this.Controls.Add(this.picQRCode); this.Controls.Add(this.chkRewriteHostHeaders); this.Controls.Add(this.cmbIPAddress); this.Controls.Add(this.label3); @@ -149,6 +174,7 @@ private void InitializeComponent() this.Text = "SharpProxy"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmMain_FormClosing); this.Shown += new System.EventHandler(this.frmMain_Shown); + ((System.ComponentModel.ISupportInitialize)(this.picQRCode)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -165,6 +191,8 @@ private void InitializeComponent() private System.Windows.Forms.Label label3; private System.Windows.Forms.ComboBox cmbIPAddress; private System.Windows.Forms.CheckBox chkRewriteHostHeaders; + private System.Windows.Forms.PictureBox picQRCode; + private System.Windows.Forms.Label label4; } } diff --git a/SharpProxy/frmMain.cs b/SharpProxy/frmMain.cs index 73cb3aa..85d426b 100644 --- a/SharpProxy/frmMain.cs +++ b/SharpProxy/frmMain.cs @@ -10,6 +10,7 @@ using System.Net.Sockets; using System.Linq; using System.IO; +using QRCoder; namespace SharpProxy { @@ -17,6 +18,9 @@ public partial class frmMain : Form { private const int MIN_PORT = 1; private const int MAX_PORT = 65535; + private const int PIXELS_PER_MODULE = 4; + + private QRCodeGenerator qrCodeGenerator = new QRCodeGenerator(); public static readonly string CommonDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "SharpProxy"); public static readonly string ConfigInfoPath = Path.Combine(CommonDataPath, "config.txt"); @@ -113,6 +117,7 @@ private void btnStart_Click(object sender, EventArgs e) ProxyThreadListener = new ProxyThread(externalPort, internalPort, chkRewriteHostHeaders.Checked); toggleButtons(); + showQRCode(); } private void btnStop_Click(object sender, EventArgs e) @@ -120,6 +125,7 @@ private void btnStop_Click(object sender, EventArgs e) ProxyThreadListener.Stop(); toggleButtons(); + picQRCode.Image = null; } private void showError(string msg) @@ -215,5 +221,20 @@ private void txtPorts_KeyPress(object sender, KeyPressEventArgs e) btnStart_Click(null, null); } } + + private void showQRCode () + { + string data = String.Format("http://{0}:{1}", cmbIPAddress.Text, txtExternalPort.Text); + + QRCode qrCode = new QRCode(qrCodeGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.M)); + + picQRCode.Image = qrCode.GetGraphic(PIXELS_PER_MODULE); + } + + private void cmbIPAddress_SelectedIndexChanged (object sender, EventArgs e) + { + if (btnStop.Enabled) + showQRCode(); + } } }