From 0e3bed62dc05a4d367d1a8c73ca5a07611eadbb7 Mon Sep 17 00:00:00 2001 From: moosecrab Date: Tue, 16 Jun 2020 02:29:11 -0700 Subject: [PATCH] Added support for keyboard text, and a few KB buttons. Added variable listen port number and saving it. --- webcrab/App.config | 12 +++++++ webcrab/My Project/Settings.Designer.vb | 12 +++++++ webcrab/My Project/Settings.settings | 14 ++++---- webcrab/input.vb | 5 +++ webcrab/main.Designer.vb | 44 ++++++++++++------------- webcrab/main.vb | 26 +++++++++++++-- webcrab/res/page.html | 4 +-- 7 files changed, 85 insertions(+), 32 deletions(-) diff --git a/webcrab/App.config b/webcrab/App.config index 095562b..92a9536 100755 --- a/webcrab/App.config +++ b/webcrab/App.config @@ -1,6 +1,18 @@ + + +
+ + + + + + 8080 + + + diff --git a/webcrab/My Project/Settings.Designer.vb b/webcrab/My Project/Settings.Designer.vb index 1a90047..01d42e4 100755 --- a/webcrab/My Project/Settings.Designer.vb +++ b/webcrab/My Project/Settings.Designer.vb @@ -53,6 +53,18 @@ Namespace My Return defaultInstance End Get End Property + + _ + Public Property listenport() As UShort + Get + Return CType(Me("listenport"),UShort) + End Get + Set + Me("listenport") = value + End Set + End Property End Class End Namespace diff --git a/webcrab/My Project/Settings.settings b/webcrab/My Project/Settings.settings index 377f56d..ecf6e59 100755 --- a/webcrab/My Project/Settings.settings +++ b/webcrab/My Project/Settings.settings @@ -1,7 +1,9 @@  - - - - - - + + + + + 8080 + + + \ No newline at end of file diff --git a/webcrab/input.vb b/webcrab/input.vb index 0157a8f..44449db 100755 --- a/webcrab/input.vb +++ b/webcrab/input.vb @@ -218,6 +218,11 @@ Module input keybd_event(bVK, 0, KEYEVENTF_KEYUP, 0) End Sub + Public Sub SendKeysEscaped(str As String) + str = System.Text.RegularExpressions.Regex.Replace(str, "[+^%~()\\{\\}]", "{$0}") + SendKeys.SendWait(str) + End Sub + #End Region End Module diff --git a/webcrab/main.Designer.vb b/webcrab/main.Designer.vb index f0a23cf..6a446ba 100755 --- a/webcrab/main.Designer.vb +++ b/webcrab/main.Designer.vb @@ -26,10 +26,10 @@ Partial Class main Me.LogText = New System.Windows.Forms.TextBox() Me.Label1 = New System.Windows.Forms.Label() Me.TapInput = New System.Windows.Forms.NumericUpDown() + Me.PortInput = New System.Windows.Forms.NumericUpDown() Me.Label2 = New System.Windows.Forms.Label() - Me.DragInput = New System.Windows.Forms.NumericUpDown() CType(Me.TapInput, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.DragInput, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PortInput, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'StartButton @@ -59,7 +59,7 @@ Partial Class main 'Label1 ' Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(93, 17) + Me.Label1.Location = New System.Drawing.Point(221, 17) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(96, 13) Me.Label1.TabIndex = 2 @@ -67,47 +67,47 @@ Partial Class main ' 'TapInput ' - Me.TapInput.Location = New System.Drawing.Point(195, 14) + Me.TapInput.Location = New System.Drawing.Point(323, 15) + Me.TapInput.Maximum = New Decimal(New Integer() {1000, 0, 0, 0}) Me.TapInput.Name = "TapInput" Me.TapInput.Size = New System.Drawing.Size(57, 20) Me.TapInput.TabIndex = 3 Me.TapInput.Value = New Decimal(New Integer() {5, 0, 0, 0}) ' + 'PortInput + ' + Me.PortInput.Location = New System.Drawing.Point(158, 15) + Me.PortInput.Maximum = New Decimal(New Integer() {65535, 0, 0, 0}) + Me.PortInput.Minimum = New Decimal(New Integer() {1, 0, 0, 0}) + Me.PortInput.Name = "PortInput" + Me.PortInput.Size = New System.Drawing.Size(57, 20) + Me.PortInput.TabIndex = 5 + Me.PortInput.Value = New Decimal(New Integer() {8080, 0, 0, 0}) + ' 'Label2 ' Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(258, 17) + Me.Label2.Location = New System.Drawing.Point(93, 17) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(83, 13) + Me.Label2.Size = New System.Drawing.Size(59, 13) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Drag delay (ms):" - ' - 'DragInput - ' - Me.DragInput.Increment = New Decimal(New Integer() {100, 0, 0, 0}) - Me.DragInput.Location = New System.Drawing.Point(347, 14) - Me.DragInput.Maximum = New Decimal(New Integer() {2000, 0, 0, 0}) - Me.DragInput.Minimum = New Decimal(New Integer() {100, 0, 0, 0}) - Me.DragInput.Name = "DragInput" - Me.DragInput.Size = New System.Drawing.Size(57, 20) - Me.DragInput.TabIndex = 5 - Me.DragInput.Value = New Decimal(New Integer() {300, 0, 0, 0}) + Me.Label2.Text = "Listen port:" ' 'main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(555, 147) - Me.Controls.Add(Me.DragInput) + Me.Controls.Add(Me.PortInput) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.TapInput) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.LogText) Me.Controls.Add(Me.StartButton) Me.Name = "main" - Me.Text = "Form1" + Me.Text = "Webcrab server" CType(Me.TapInput, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.DragInput, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PortInput, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -116,7 +116,7 @@ Partial Class main Friend WithEvents LogText As System.Windows.Forms.TextBox Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents TapInput As System.Windows.Forms.NumericUpDown + Friend WithEvents PortInput As System.Windows.Forms.NumericUpDown Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents DragInput As System.Windows.Forms.NumericUpDown End Class diff --git a/webcrab/main.vb b/webcrab/main.vb index 95958d5..f31373a 100755 --- a/webcrab/main.vb +++ b/webcrab/main.vb @@ -1,5 +1,6 @@ Imports System.Threading Imports System.Net +Imports System.Web Public Class main Dim weblistener As HttpListener Dim lastpos As New Point(0, 0) @@ -11,11 +12,15 @@ Public Class main weblistener.Abort() weblistener = Nothing log("Stopped") + My.Settings("listenport") = CUShort(PortInput.Value) + My.Settings.Save() StartButton.BackColor = Color.Lime StartButton.Text = "Start" Else + Dim listenport As UShort = My.Settings("listenport") + PortInput.Value = listenport weblistener = New HttpListener - weblistener.Prefixes.Add("http://*:8080/") + weblistener.Prefixes.Add("http://*:" & listenport & "/") weblistener.Start() Dim listenthread As New Thread(AddressOf listenforconnection) listenthread.Start() @@ -47,7 +52,7 @@ Public Class main ' check for valid command packets If path = "/" Then - respstr = FileIO.FileSystem.ReadAllText("page.html") + respstr = FileIO.FileSystem.ReadAllText("res/page.html") lastpacket = 0 Else Dim pack As Long = context.Request.QueryString("seq") @@ -162,7 +167,24 @@ Public Class main keybd_press(VK.MEDIA_NEXT_TRACK) End Select + Case "key" + Select Case req.QueryString("k") + Case "del" + keybd_press(VK.DELETE) + Case "bksp" + keybd_press(VK.KEY_BACK) + Case "enter" + keybd_press(VK.RETURN_KEY) + End Select + Case "text" + Dim encodedtext As String = req.QueryString("t") + Dim decodedtext As String = Uri.UnescapeDataString(encodedtext) + Try + SendKeysEscaped(decodedtext) + Catch ex As Exception + log(ex.ToString) + End Try Case Else Return "bad" diff --git a/webcrab/res/page.html b/webcrab/res/page.html index 1159d26..1453a5a 100755 --- a/webcrab/res/page.html +++ b/webcrab/res/page.html @@ -3,7 +3,7 @@ - webmouse client + webcrab client