diff --git a/LVNC-RS.sln b/LVNC-RS.sln
new file mode 100644
index 0000000..70d28fd
--- /dev/null
+++ b/LVNC-RS.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28010.2050
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LVNC-RS", "LVNC-RS\LVNC-RS.vbproj", "{A8CDD575-1614-459B-9A85-CEC5AC90F44A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A8CDD575-1614-459B-9A85-CEC5AC90F44A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A8CDD575-1614-459B-9A85-CEC5AC90F44A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A8CDD575-1614-459B-9A85-CEC5AC90F44A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A8CDD575-1614-459B-9A85-CEC5AC90F44A}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {26C5FB97-921B-46F5-827E-838D6F2B26FD}
+ EndGlobalSection
+EndGlobal
diff --git a/LVNC-RS/LVNC-RS.vbproj b/LVNC-RS/LVNC-RS.vbproj
new file mode 100644
index 0000000..0aef6df
--- /dev/null
+++ b/LVNC-RS/LVNC-RS.vbproj
@@ -0,0 +1,189 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A8CDD575-1614-459B-9A85-CEC5AC90F44A}
+ WinExe
+ LVNC_RS.My.MyApplication
+ LVNC_RS
+ LVNC-RS
+ 512
+ WindowsForms
+ v3.5
+ true
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ bin\Debug\
+ LVNC-RS.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ AnyCPU
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ LVNC-RS.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+ Resources\lvnc-rs.ico
+
+
+ My Project\app.manifest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ frmLVNC-RS-Main.vb
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+ frmLVNC-RS-Main.vb
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LVNC-RS/My Project/Application.Designer.vb b/LVNC-RS/My Project/Application.Designer.vb
new file mode 100644
index 0000000..7092701
--- /dev/null
+++ b/LVNC-RS/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' Этот код создан программой.
+' Исполняемая версия:4.0.30319.42000
+'
+' Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+' повторной генерации кода.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ 'ПРИМЕЧАНИЕ. Этот файл создан автоматически; не изменяйте его самостоятельно. Для внесения изменений
+ ' или, если в ходе сборки обнаружены ошибки в этом файле, перейдите в конструктор проектов
+ ' (перейдите к свойствам проекта или дважды щелкните узел "Мой проект" в
+ ' обозревателе решений), и внесите изменения на вкладке "Приложение".
+ '
+ Partial Friend Class MyApplication
+
+ _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.LVNC_RS.frmLVNCRSMain
+ End Sub
+ End Class
+End Namespace
diff --git a/LVNC-RS/My Project/Application.myapp b/LVNC-RS/My Project/Application.myapp
new file mode 100644
index 0000000..cdbad10
--- /dev/null
+++ b/LVNC-RS/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ true
+ frmLVNCRSMain
+ false
+ 0
+ true
+ 0
+ true
+
\ No newline at end of file
diff --git a/LVNC-RS/My Project/AssemblyInfo.vb b/LVNC-RS/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..490d258
--- /dev/null
+++ b/LVNC-RS/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Общие сведения об этой сборке предоставляются следующим набором
+' атрибутов. Отредактируйте значения этих атрибутов, чтобы изменить
+' общие сведения об этой сборке.
+
+' Проверьте значения атрибутов сборки
+
+
+
+
+
+
+
+
+
+
+'Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+
+
+' Сведения о версии сборки состоят из следующих четырех значений:
+'
+' Основной номер версии
+' Дополнительный номер версии
+' Номер сборки
+' Редакция
+'
+' Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
+' используя "*", как показано ниже:
+'
+
+
+
diff --git a/LVNC-RS/My Project/Resources.Designer.vb b/LVNC-RS/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..1daf367
--- /dev/null
+++ b/LVNC-RS/My Project/Resources.Designer.vb
@@ -0,0 +1,250 @@
+'------------------------------------------------------------------------------
+'
+' Этот код создан программой.
+' Исполняемая версия:4.0.30319.42000
+'
+' Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+' повторной генерации кода.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+
+ 'Этот класс создан автоматически классом StronglyTypedResourceBuilder
+ 'с помощью такого средства, как ResGen или Visual Studio.
+ 'Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
+ 'с параметром /str или перестройте свой проект VS.
+ '''
+ ''' Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("LVNC_RS.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Перезаписывает свойство CurrentUICulture текущего потока для всех
+ ''' обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set
+ resourceCulture = value
+ End Set
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property authadmin_dll() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("authadmin_dll", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property ddengine_dll() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("ddengine_dll", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property is_admin_off() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("is_admin_off", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property is_admin_on() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("is_admin_on", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Icon, аналогичного (Значок).
+ '''
+ Friend ReadOnly Property lvnc_rs() As System.Drawing.Icon
+ Get
+ Dim obj As Object = ResourceManager.GetObject("lvnc_rs", resourceCulture)
+ Return CType(obj,System.Drawing.Icon)
+ End Get
+ End Property
+
+ '''
+ ''' Ищет локализованную строку, похожую на [lvnc]
+ '''ID=
+ '''passwd=
+ '''
+ '''[repeater]
+ '''host=digital-freak.ru
+ '''serverport=5500
+ '''viewerport=5900
+ '''.
+ '''
+ Friend ReadOnly Property lvnc_rs_ini() As String
+ Get
+ Return ResourceManager.GetString("lvnc_rs_ini", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property lvnc_rs_server() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("lvnc_rs_server", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property offline() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("offline", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property online() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("online", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property SCHook_dll() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("SCHook_dll", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property SecureVNCPlugin_dsm() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("SecureVNCPlugin_dsm", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property setpasswd_exe() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("setpasswd_exe", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Ищет локализованную строку, похожую на [admin]
+ '''UseRegistry=0
+ '''MSLogonRequired=0
+ '''NewMSLogon=0
+ '''DebugMode=0
+ '''Avilog=0
+ '''path=.
+ '''kickrdp=0
+ '''service_commandline=
+ '''DebugLevel=8
+ '''DisableTrayIcon=1
+ '''LoopbackOnly=0
+ '''UseDSMPlugin=1
+ '''AllowLoopback=0
+ '''AuthRequired=1
+ '''ConnectPriority=1
+ '''DSMPlugin=SecureVNCPlugin.dsm
+ '''AuthHosts=
+ '''AllowShutdown=1
+ '''AllowProperties=1
+ '''AllowEditClients=1
+ '''FileTransferEnabled=1
+ '''FTUserImpersonation=1
+ '''BlankMonitorEnabled=0
+ '''BlankInputsOnly=0
+ '''DefaultScale=1
+ '''CaptureAlphaBlending=1
+ '''BlackAlphaBlending=0
+ '''SocketConnect=1
+ '''HTTPConnect=0
+ '''XDMCPConnect=1
+ '''AutoPort [остаток строки не уместился]";.
+ '''
+ Friend ReadOnly Property ultravnc_ini() As String
+ Get
+ Return ResourceManager.GetString("ultravnc_ini", resourceCulture)
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property vnchooks_dll() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("vnchooks_dll", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+
+ '''
+ ''' Поиск локализованного ресурса типа System.Byte[].
+ '''
+ Friend ReadOnly Property winvnc_exe() As Byte()
+ Get
+ Dim obj As Object = ResourceManager.GetObject("winvnc_exe", resourceCulture)
+ Return CType(obj,Byte())
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/LVNC-RS/My Project/Resources.resx b/LVNC-RS/My Project/Resources.resx
new file mode 100644
index 0000000..798e0cc
--- /dev/null
+++ b/LVNC-RS/My Project/Resources.resx
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\Resources\lvnc-rs-server.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\offline.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\lvnc-rs.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\online.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\is-admin-off.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\is-admin-on.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\lvnc-rs.ini;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251
+
+
+ ..\Resources\ultravnc.ini;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251
+
+
+ ..\Resources\authadmin.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\ddengine.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\SCHook.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\SecureVNCPlugin.dsm;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\setpasswd.exe;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\vnchooks.dll;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Resources\winvnc.exe;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/LVNC-RS/My Project/Settings.Designer.vb b/LVNC-RS/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..5fcc406
--- /dev/null
+++ b/LVNC-RS/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.LVNC_RS.My.MySettings
+ Get
+ Return Global.LVNC_RS.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/LVNC-RS/My Project/Settings.settings b/LVNC-RS/My Project/Settings.settings
new file mode 100644
index 0000000..85b890b
--- /dev/null
+++ b/LVNC-RS/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/LVNC-RS/My Project/app.manifest b/LVNC-RS/My Project/app.manifest
new file mode 100644
index 0000000..dcaac5d
--- /dev/null
+++ b/LVNC-RS/My Project/app.manifest
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/LVNC-RS/Resources/is-admin-off.png b/LVNC-RS/Resources/is-admin-off.png
new file mode 100644
index 0000000..7a4be5e
Binary files /dev/null and b/LVNC-RS/Resources/is-admin-off.png differ
diff --git a/LVNC-RS/Resources/is-admin-on.png b/LVNC-RS/Resources/is-admin-on.png
new file mode 100644
index 0000000..52e5485
Binary files /dev/null and b/LVNC-RS/Resources/is-admin-on.png differ
diff --git a/LVNC-RS/Resources/lvnc-rs-server.bmp b/LVNC-RS/Resources/lvnc-rs-server.bmp
new file mode 100644
index 0000000..f67960b
Binary files /dev/null and b/LVNC-RS/Resources/lvnc-rs-server.bmp differ
diff --git a/LVNC-RS/Resources/lvnc-rs.ico b/LVNC-RS/Resources/lvnc-rs.ico
new file mode 100644
index 0000000..901aee0
Binary files /dev/null and b/LVNC-RS/Resources/lvnc-rs.ico differ
diff --git a/LVNC-RS/Resources/lvnc-rs.ini b/LVNC-RS/Resources/lvnc-rs.ini
new file mode 100644
index 0000000..5fb54cc
--- /dev/null
+++ b/LVNC-RS/Resources/lvnc-rs.ini
@@ -0,0 +1,8 @@
+[lvnc]
+ID=
+passwd=
+
+[repeater]
+host=digital-freak.ru
+serverport=5500
+viewerport=5900
diff --git a/LVNC-RS/Resources/offline.png b/LVNC-RS/Resources/offline.png
new file mode 100644
index 0000000..7ab26f6
Binary files /dev/null and b/LVNC-RS/Resources/offline.png differ
diff --git a/LVNC-RS/Resources/offline1.bmp b/LVNC-RS/Resources/offline1.bmp
new file mode 100644
index 0000000..f5f499e
Binary files /dev/null and b/LVNC-RS/Resources/offline1.bmp differ
diff --git a/LVNC-RS/Resources/online.png b/LVNC-RS/Resources/online.png
new file mode 100644
index 0000000..4b54057
Binary files /dev/null and b/LVNC-RS/Resources/online.png differ
diff --git a/LVNC-RS/Resources/ultravnc.ini b/LVNC-RS/Resources/ultravnc.ini
new file mode 100644
index 0000000..9babcf1
--- /dev/null
+++ b/LVNC-RS/Resources/ultravnc.ini
@@ -0,0 +1,70 @@
+[admin]
+UseRegistry=0
+MSLogonRequired=0
+NewMSLogon=0
+DebugMode=0
+Avilog=0
+path=.
+kickrdp=0
+service_commandline=
+DebugLevel=8
+DisableTrayIcon=1
+LoopbackOnly=0
+UseDSMPlugin=1
+AllowLoopback=0
+AuthRequired=1
+ConnectPriority=1
+DSMPlugin=SecureVNCPlugin.dsm
+AuthHosts=
+AllowShutdown=1
+AllowProperties=1
+AllowEditClients=1
+FileTransferEnabled=1
+FTUserImpersonation=1
+BlankMonitorEnabled=0
+BlankInputsOnly=0
+DefaultScale=1
+CaptureAlphaBlending=1
+BlackAlphaBlending=0
+SocketConnect=1
+HTTPConnect=0
+XDMCPConnect=1
+AutoPortSelect=1
+PortNumber=0
+HTTPPortNumber=0
+IdleTimeout=0
+RemoveWallpaper=0
+RemoveAero=0
+QuerySetting=0
+QueryTimeout=0
+QueryAccept=0
+QueryIfNoLogon=0
+primary=1
+secondary=0
+InputsEnabled=1
+LockSetting=0
+LocalInputsDisabled=0
+EnableJapInput=0
+FileTransferTimeout=30
+DSMPluginConfig=SecureVNC;0;0x00104001;
+rdpmode=1
+IdleInputTimeout=0
+clearconsole=0
+accept_reject_mesg=
+KeepAliveInterval=5
+[ultravnc]
+passwd=9FF630759B47E66466
+passwd2=B3ECCD9ECAC86C3C44
+[poll]
+TurboMode=1
+PollUnderCursor=0
+PollForeground=0
+PollFullScreen=1
+OnlyPollConsole=0
+OnlyPollOnEvent=0
+EnableDriver=1
+EnableHook=1
+EnableVirtual=0
+SingleWindow=0
+SingleWindowName=
+MaxCpu=40
diff --git a/LVNC-RS/Services.vb b/LVNC-RS/Services.vb
new file mode 100644
index 0000000..82b9fa3
--- /dev/null
+++ b/LVNC-RS/Services.vb
@@ -0,0 +1,107 @@
+Module Services
+ Public sRunTimeDir As String = getRunTimeDir() & "\LVNC-RS"
+ Public sConfigFile As String = sRunTimeDir & "\lvnc-rs.ini"
+ Public lSupportID As Long = 0
+
+ Private aExecResources(,) As String = {
+ {"lvnc_rs_ini", "\lvnc_rs.ini"},
+ {"ultravnc_ini", "\UltraVNC\ultravnc.ini"},
+ {"setpasswd_exe", "\UltraVNC\setpasswd.exe"},
+ {"winvnc_exe", "\UltraVNC\winvnc.exe"},
+ {"authadmin_dll", "\UltraVNC\authadmin.dll"},
+ {"ddengine_dll", "\UltraVNC\ddengine.dll"},
+ {"SCHook_dll", "\UltraVNC\SCHook.dll"},
+ {"vnchooks_dll", "\UltraVNC\vnchooks.dll"},
+ {"SecureVNCPlugin_dsm", "\UltraVNC\SecureVNCPlugin.dsm"}
+ }
+
+ Private Function getRunTimeDir() As String
+ Dim sRegShellPath As String = "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
+ Dim sAllUsersDir As String
+
+ Dim regKey As Global.Microsoft.Win32.RegistryKey
+ Dim sCommonDesktop As String
+
+ Try
+ regKey = Global.Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sRegShellPath, False)
+ sCommonDesktop = regKey.GetValue("Common Desktop")
+ Catch ex As Exception
+ sCommonDesktop = ""
+ End Try
+
+ If sCommonDesktop.Length > 0 Then
+ Dim a() = sCommonDesktop.Split("\")
+ Dim l As Integer = a.Length - 2
+ ReDim Preserve a(l)
+
+ sAllUsersDir = String.Join("\", a)
+ Else
+ sAllUsersDir = ""
+ End If
+
+ Return sAllUsersDir
+ End Function
+
+ Public Sub checkRunTimeComponents()
+ Dim resItem As Object
+ Dim resContent As Byte()
+
+ With My.Computer.FileSystem
+ If Not .DirectoryExists(sRunTimeDir) Then
+ .CreateDirectory(sRunTimeDir)
+ End If
+ If Not .DirectoryExists(sRunTimeDir & "\UltraVNC") Then
+ .CreateDirectory(sRunTimeDir & "\UltraVNC")
+ End If
+
+ For i As Integer = 0 To UBound(aExecResources)
+ resItem = My.Resources.ResourceManager.GetObject(aExecResources(i, 0))
+ If TypeOf (resItem) Is String Then
+ resContent = System.Text.Encoding.Default.GetBytes(resItem.ToString)
+ Else
+ resContent = resItem
+ End If
+
+ Using file As New IO.FileStream(sRunTimeDir & aExecResources(i, 1), IO.FileMode.Create)
+ file.Write(resContent, 0, resContent.Length)
+ End Using
+ Next
+ End With
+ End Sub
+
+ Public Sub getSupportID()
+ Dim aNics() As Net.NetworkInformation.NetworkInterface = Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()
+ Dim sMAC As String = String.Empty
+ Dim lID As Long = 0
+
+ For Each nic As Net.NetworkInformation.NetworkInterface In aNics
+ If (nic.NetworkInterfaceType = Net.NetworkInformation.NetworkInterfaceType.Ethernet Or
+ nic.NetworkInterfaceType = Net.NetworkInformation.NetworkInterfaceType.Wireless80211) And
+ nic.OperationalStatus = Net.NetworkInformation.OperationalStatus.Up Then
+ sMAC = nic.GetPhysicalAddress.ToString
+ Exit For
+ End If
+ Next
+
+ Dim strBuilder As New Text.StringBuilder(sMAC)
+ Dim startIndex As Integer = strBuilder.Length - (strBuilder.Length Mod 2) - 2
+
+ For i As Integer = startIndex To 2 Step -2
+ strBuilder.Insert(i, ":"c)
+ Next i
+
+ Dim aMAC() = strBuilder.ToString.Split(":")
+ Dim n As Long = 0
+ For i As Integer = 0 To UBound(aMAC)
+ n = Convert.ToInt32(aMAC(i), 16)
+ Debug.Print(n)
+
+ lID = ((lID * 16) + n) Mod 99999999
+
+ If lID < 99999999 Then
+ lID = lID + 10000000
+ End If
+ Next
+ lSupportID = lID
+ End Sub
+End Module
diff --git a/LVNC-RS/app.config b/LVNC-RS/app.config
new file mode 100644
index 0000000..3652831
--- /dev/null
+++ b/LVNC-RS/app.config
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/LVNC-RS/frmLVNC-RS-Main.Designer.vb b/LVNC-RS/frmLVNC-RS-Main.Designer.vb
new file mode 100644
index 0000000..9c8e4f0
--- /dev/null
+++ b/LVNC-RS/frmLVNC-RS-Main.Designer.vb
@@ -0,0 +1,199 @@
+
+Partial Class frmLVNCRSMain
+ Inherits System.Windows.Forms.Form
+
+ 'Форма переопределяет dispose для очистки списка компонентов.
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+
+ 'Является обязательной для конструктора форм Windows Forms
+ Private components As System.ComponentModel.IContainer
+
+ 'Примечание: следующая процедура является обязательной для конструктора форм Windows Forms
+ 'Для ее изменения используйте конструктор форм Windows Form.
+ 'Не изменяйте ее в редакторе исходного кода.
+
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmLVNCRSMain))
+ Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
+ Me.lblLVNCSupportPasswd = New System.Windows.Forms.Label()
+ Me.txtLVNCSupportPasswd = New System.Windows.Forms.TextBox()
+ Me.txtLVNCSupportID = New System.Windows.Forms.TextBox()
+ Me.lblLVNCSupportID = New System.Windows.Forms.Label()
+ Me.tsStatusBar = New System.Windows.Forms.ToolStrip()
+ Me.tsLabelSrvStatus = New System.Windows.Forms.ToolStripLabel()
+ Me.tsButtonRunAs = New System.Windows.Forms.ToolStripButton()
+ Me.imgBanner = New System.Windows.Forms.PictureBox()
+ Me.tCheckTimer = New System.Windows.Forms.Timer(Me.components)
+ Me.TableLayoutPanel1.SuspendLayout()
+ Me.tsStatusBar.SuspendLayout()
+ CType(Me.imgBanner, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'TableLayoutPanel1
+ '
+ Me.TableLayoutPanel1.ColumnCount = 2
+ Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle())
+ Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
+ Me.TableLayoutPanel1.Controls.Add(Me.lblLVNCSupportPasswd, 0, 1)
+ Me.TableLayoutPanel1.Controls.Add(Me.txtLVNCSupportPasswd, 1, 1)
+ Me.TableLayoutPanel1.Controls.Add(Me.txtLVNCSupportID, 1, 0)
+ Me.TableLayoutPanel1.Controls.Add(Me.lblLVNCSupportID, 0, 0)
+ Me.TableLayoutPanel1.Controls.Add(Me.tsStatusBar, 0, 2)
+ Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TableLayoutPanel1.Location = New System.Drawing.Point(61, 0)
+ Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
+ Me.TableLayoutPanel1.RowCount = 3
+ Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
+ Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
+ Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
+ Me.TableLayoutPanel1.Size = New System.Drawing.Size(273, 171)
+ Me.TableLayoutPanel1.TabIndex = 1
+ '
+ 'lblLVNCSupportPasswd
+ '
+ Me.lblLVNCSupportPasswd.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+ Me.lblLVNCSupportPasswd.AutoSize = True
+ Me.lblLVNCSupportPasswd.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
+ Me.lblLVNCSupportPasswd.Location = New System.Drawing.Point(10, 100)
+ Me.lblLVNCSupportPasswd.Margin = New System.Windows.Forms.Padding(10, 25, 10, 25)
+ Me.lblLVNCSupportPasswd.Name = "lblLVNCSupportPasswd"
+ Me.lblLVNCSupportPasswd.Size = New System.Drawing.Size(88, 25)
+ Me.lblLVNCSupportPasswd.TabIndex = 4
+ Me.lblLVNCSupportPasswd.Text = "Пароль:"
+ '
+ 'txtLVNCSupportPasswd
+ '
+ Me.txtLVNCSupportPasswd.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.txtLVNCSupportPasswd.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
+ Me.txtLVNCSupportPasswd.Location = New System.Drawing.Point(118, 100)
+ Me.txtLVNCSupportPasswd.Margin = New System.Windows.Forms.Padding(10, 25, 15, 25)
+ Me.txtLVNCSupportPasswd.Name = "txtLVNCSupportPasswd"
+ Me.txtLVNCSupportPasswd.ReadOnly = True
+ Me.txtLVNCSupportPasswd.Size = New System.Drawing.Size(140, 29)
+ Me.txtLVNCSupportPasswd.TabIndex = 1
+ Me.txtLVNCSupportPasswd.TabStop = False
+ Me.txtLVNCSupportPasswd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'txtLVNCSupportID
+ '
+ Me.txtLVNCSupportID.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.txtLVNCSupportID.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
+ Me.txtLVNCSupportID.Location = New System.Drawing.Point(118, 25)
+ Me.txtLVNCSupportID.Margin = New System.Windows.Forms.Padding(10, 25, 15, 25)
+ Me.txtLVNCSupportID.Name = "txtLVNCSupportID"
+ Me.txtLVNCSupportID.ReadOnly = True
+ Me.txtLVNCSupportID.Size = New System.Drawing.Size(140, 29)
+ Me.txtLVNCSupportID.TabIndex = 0
+ Me.txtLVNCSupportID.TabStop = False
+ Me.txtLVNCSupportID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
+ '
+ 'lblLVNCSupportID
+ '
+ Me.lblLVNCSupportID.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+ Me.lblLVNCSupportID.AutoSize = True
+ Me.lblLVNCSupportID.Font = New System.Drawing.Font("Microsoft Sans Serif", 14.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
+ Me.lblLVNCSupportID.Location = New System.Drawing.Point(10, 25)
+ Me.lblLVNCSupportID.Margin = New System.Windows.Forms.Padding(10, 25, 10, 25)
+ Me.lblLVNCSupportID.Name = "lblLVNCSupportID"
+ Me.lblLVNCSupportID.Size = New System.Drawing.Size(80, 25)
+ Me.lblLVNCSupportID.TabIndex = 3
+ Me.lblLVNCSupportID.Text = "Ваш ID:"
+ '
+ 'tsStatusBar
+ '
+ Me.tsStatusBar.CanOverflow = False
+ Me.TableLayoutPanel1.SetColumnSpan(Me.tsStatusBar, 2)
+ Me.tsStatusBar.GripMargin = New System.Windows.Forms.Padding(0)
+ Me.tsStatusBar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
+ Me.tsStatusBar.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsLabelSrvStatus, Me.tsButtonRunAs})
+ Me.tsStatusBar.Location = New System.Drawing.Point(0, 150)
+ Me.tsStatusBar.Name = "tsStatusBar"
+ Me.tsStatusBar.Padding = New System.Windows.Forms.Padding(0)
+ Me.tsStatusBar.RenderMode = System.Windows.Forms.ToolStripRenderMode.System
+ Me.tsStatusBar.Size = New System.Drawing.Size(273, 21)
+ Me.tsStatusBar.TabIndex = 5
+ '
+ 'tsLabelSrvStatus
+ '
+ Me.tsLabelSrvStatus.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.tsLabelSrvStatus.Margin = New System.Windows.Forms.Padding(0)
+ Me.tsLabelSrvStatus.Name = "tsLabelSrvStatus"
+ Me.tsLabelSrvStatus.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never
+ Me.tsLabelSrvStatus.Size = New System.Drawing.Size(0, 21)
+ '
+ 'tsButtonRunAs
+ '
+ Me.tsButtonRunAs.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
+ Me.tsButtonRunAs.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+ Me.tsButtonRunAs.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None
+ Me.tsButtonRunAs.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.tsButtonRunAs.Margin = New System.Windows.Forms.Padding(0, 0, 1, 0)
+ Me.tsButtonRunAs.Name = "tsButtonRunAs"
+ Me.tsButtonRunAs.Overflow = System.Windows.Forms.ToolStripItemOverflow.Never
+ Me.tsButtonRunAs.Size = New System.Drawing.Size(23, 21)
+ '
+ 'imgBanner
+ '
+ Me.imgBanner.Dock = System.Windows.Forms.DockStyle.Left
+ Me.imgBanner.ErrorImage = Nothing
+ Me.imgBanner.Image = Global.LVNC_RS.My.Resources.Resources.lvnc_rs_server
+ Me.imgBanner.InitialImage = Nothing
+ Me.imgBanner.Location = New System.Drawing.Point(0, 0)
+ Me.imgBanner.Name = "imgBanner"
+ Me.imgBanner.Size = New System.Drawing.Size(61, 171)
+ Me.imgBanner.TabIndex = 0
+ Me.imgBanner.TabStop = False
+ '
+ 'tCheckTimer
+ '
+ Me.tCheckTimer.Interval = 20000
+ '
+ 'frmLVNCRSMain
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(334, 171)
+ Me.Controls.Add(Me.TableLayoutPanel1)
+ Me.Controls.Add(Me.imgBanner)
+ Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+ Me.MaximizeBox = False
+ Me.MaximumSize = New System.Drawing.Size(350, 210)
+ Me.MinimumSize = New System.Drawing.Size(350, 210)
+ Me.Name = "frmLVNCRSMain"
+ Me.Text = "Remote Support"
+ Me.TableLayoutPanel1.ResumeLayout(False)
+ Me.TableLayoutPanel1.PerformLayout()
+ Me.tsStatusBar.ResumeLayout(False)
+ Me.tsStatusBar.PerformLayout()
+ CType(Me.imgBanner, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Friend WithEvents imgBanner As PictureBox
+ Friend WithEvents TableLayoutPanel1 As TableLayoutPanel
+ Friend WithEvents txtLVNCSupportPasswd As TextBox
+ Friend WithEvents txtLVNCSupportID As TextBox
+ Friend WithEvents lblLVNCSupportPasswd As Label
+ Friend WithEvents lblLVNCSupportID As Label
+ Friend WithEvents tsStatusBar As ToolStrip
+ Friend WithEvents tsLabelSrvStatus As ToolStripLabel
+ Friend WithEvents tsButtonRunAs As ToolStripButton
+ Friend WithEvents tCheckTimer As Timer
+End Class
diff --git a/LVNC-RS/frmLVNC-RS-Main.resx b/LVNC-RS/frmLVNC-RS-Main.resx
new file mode 100644
index 0000000..c041942
--- /dev/null
+++ b/LVNC-RS/frmLVNC-RS-Main.resx
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 129, 17
+
+
+
+
+ AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
+ IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXuHgDU
+ 7y8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV
+ 6gwA1e26Fdfu/RzY7v8A1O29ALXTEQAAAAQAAAAGAAAACAAAAAoAAAAMAAAADgAAABAAAAASAAAAEwAA
+ ABQAAAAUAAAAFAAAABIAAAARAAAADwAAAA0AAAALAAAACQAAAAcAAAAFAMPeJQDS63wA1O2tANXt3gDT
+ 7bsA1OxeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAADS7JRd4/P/8Pz9/+37/f9j5PP/AMjfogAAABkAAAAcAAAAHgAAACAAAAAiAAAAJBwc
+ HC1ERERDWFtYWWVnZ29lZ2dvWFpYWkNDQ0QbGxsuAAAAJQAAACQAAAAiAAAAIAAAAB4Af4w8AdHq6G7m
+ 9P+o8Pj/1ff8/7Hx+f8p2u//ANLqbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAMAAAAJALXKSBjX7f7n+v3/Ktvv/yrb7//r+/3/Hdju/gCOnl8AAAAsAAAALzw/
+ P1BucXCWhYqH4YWKiP2NkpD1lpuZ86GnpPSip6T0lpuZ842SkPWFioj9hYqH4W1xb5c7Pj5RAAAAMgBT
+ XkYBz+fmmu33/8L0+v9c4/P/MNzw/3jo9f/V9/z/ANLq5QAAAA0AAAAFAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAEAAAACgAAAA8AAAAUAMnhq5Ts9/+F6vb/AMbdugDD2rl86PX/s/L5/wDM
+ 5OAvNHqbPT+X8oyRj/essa/7y9DO/+Dk4v/h5uP/4ebj/+Hm4//i5uP/4ufk/+Lm5P/h5uP/zdLP/62y
+ r/qMkY/3Oz6Y8iFyrdh46PX/v/T6/wrT6/cAp7yFAIWUWgHS6/ny/P7/ENbu/wBkcCsAAAAUAAAADwAA
+ AAcAAAACAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAAMAAAAEQAAABYAAAAbAMrjxLnz+v9L4PL/AJOmbQBC
+ SUYG0enysMTd/yErpv8REq3/a2zT/+Dl4v/h5uP/4ubk/+Ln5f/l6ef/5uro/+fr6f/o6+n/5+vp/+bq
+ 6P/l6ef/5Ojm/+To5v/j6OX/aGjV/xARrf8qLKf/L67T/wCGl3gAAAA5AAAANADK4tTC9Pr/Rt/x/wCn
+ umgAAAAbAAAAFgAAABEAAAAMAAAABQAAAAAAAAAAAAAABAAAAAoAHCoSAJipOwCbr00Aqr1pANDp6tv4
+ /P8s2/D/AHR/XAAAADknTaDdCQmn/zU10v9XV/D/X2Dt/+Ln5f/m6uj/6u3s/+3w7v/v8vH/8fPy//L0
+ 8//z9fT/8vTz//Hz8v/v8vH/7fDu/+rt7P/m6uj/UVLu/1NT8P8zM9H/CQmn/y0vicEAAAA/AAAAOQCw
+ xJl15/X/mO33/wDJ4cMAKTAlAAAAGgAAABQAAAAPAAAACgAAAAMAAAAAAAAABAB8iBYAz+a3Itnv/zvd
+ 8f9T4fL/gen2/975/P8A0ejuBxQcOikqlt0SEq7/UVHp/0dH8f8sLO//Kyvu/+Hj7f/x8/L/9fb1//j5
+ +P/6+/v//Pz8//39/f/9/v7//f39//z8/P/6+/v/+Pn4//X29f/O0PH/KSnv/yws7/9ERPH/Tk7p/xER
+ rf8pKpbeBwcMPABxf1of2e//6fv9/2Dk8/8C0ersAL/XjQBodiUAAAAPAAAACgAAAAQAAAAAAAAAAQDQ
+ 6Jdf5PP/7fv9/8b1+v+w8fn/kOz3/0ng8v8CuNCoISKe7x0et/9WVu7/Ozvw/ykp7/8pKe//KSnv/7u8
+ 9P/7+/v//v7+//3+/v/9/f3//Pz8//z8/P/7/Pz//Pz8//z8/P/9/f3//f7+//7+/v+YmPX/KSnv/ykp
+ 7/8pKe//OTnw/1JS7v8cHbf/ISKe7wkJDjQAvdOmL9vw/872+//e+fz/a+b0/wjU7PUAvtVPAAAABgAA
+ AAEAAAAAAAAAAADU7rGv8fn/V+Lz/wDR690AzeW5AMXcmgC3y3wqMJvcICC5/1hY8f81Ne//KSnv/ykp
+ 7/8pKe//KSnv/4yM9f/9/f3/+/z8//r7+//5+vr/+fn5//j5+f/4+fn/+Pn5//n5+f/5+vr/+vv7//v8
+ /P9kZPL/KSnv/ykp7/8pKe//KSnv/zQ07/9TU/D/Hh64/yosmNgAAAAhALfLfADR6eA63fH/vPP6/5zu
+ +P8A0eqoAAAAAAAAAAAAAAAAAAAAAADU7JWF6vb/kOz3/wDS68IAamoRAAAADTY4kp4REaz/WFju/zQ0
+ 7/8pKe//KSnv/ykp7/8pKe//KSnv/1RU8f/39/r/+Pn5//f4+P/29/f/9fb2//X29v/19vb/9fb2//X2
+ 9v/29/f/9/j4/93e9/9XV/H/MTHv/ykp7/8pKe//KSnv/ykp7/8zM+//UlLu/xAQq/81OI+gAAAAEQCj
+ tzIC0+z0p/D4/6Hv+P8A1OzcAAAAAAAAAAAAAAAAAAAAAADV7zEb2O7/4/r9/1Ti8v8A1O23PlCaSwgI
+ pv9QUOf/Pz/w/ykp7/8pKe//KSnv/ykp7/8pKe//Pj7w/1xc8f/Dw/X/9fb2//T19f/z9PT/8vPz//Lz
+ 8//y8/P/8vPz//Lz8//z9PT/9PX1/66v8/93d/H/VFTw/zAw7/8pKe//KSnv/ykp7/8pKe//PT3w/0pK
+ 5v8ICKb/H47AkQfV7O+d7vj/uvP6/wbW7fAA1usyAAAAAAAAAAAAAAAAAAAAAAAAAAAA1ex5K9vw/+b6
+ /f9U4vL/IS+m+TY20P9MTPH/KSnv/ykp7/8pKe//KSnv/ykp7/88PPD/W1vx/3l58f+en/L/7O3z//P0
+ 9P/09fX/9vb2//j5+f/4+fn/9vf3//T19f/z8/P/6erx/7m68v+XmPL/dnbx/1NT8P8vL+//KSnv/ykp
+ 7/8pKe//KSnv/0hI8f8yM8//JTSo/9j4/P+r8Pn/C9Xt9QDU7jsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAANPtgC/b8P+qt9j/DQ2q/1tb7/8uLu//KSnv/ykp7/8pKe//KSnv/zs77/9aWvH/d3fx/5SV
+ 8v+4uPL/5+f2/9jZ4//P0dH9s7i285SZl/eVmZj3tru49NXW1v3g4en/9/j4/93f8f+4ufD/l5jy/3V1
+ 8f9SUvD/Li7u/ykp7/8pKe//KSnv/y4u7/9VVe//DQ2q/0en0f8A1O3UANXsNgAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU7IcdKab/PT3X/0dH8f8pKe//KSnv/ykp7/8pKe//Ojrv/1lZ
+ 8f92dvH/k5Tx/7/B9P/V1u//U1S1/SkqnfOIjoyDhoqKTIWPhRmFj4UZhoqKTIaMioMqLJ3zYWK7/e3u
+ 8//j4/P/trfw/5WW8v9zc/H/UFDw/yws7v8pKe//KSnv/ykp7/9DQ/H/NzfW/x0kpPcAAAAFAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOKiiVobJb5jZDs/y0t7/8pKe//KSnv/ykp
+ 7/85Oe//WFjx/3Z28f+Sk/H/w8X0/6yt2/8aGqf+MTKawwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAGMTKawyEhqv7JyuH/5eX0/7W28P+UlfL/cnLx/09P8P8rK+7/KSnv/ykp7/8sLO//hYbu/2ht
+ l/eDioolAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISLiHKrsa724+fk/5GT
+ 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
+ 8P8pKe//KSnv/ykp7/8pKe//NDTv/09P7v8qKsP/Dw+l/Dw+l1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAA8PpdcDw+l/DExxf9eXu//Ojrw/ykp7/8pKe//Li7u/0ZG7/9fX/H/enr0/6ur9v/O0PH/xcjh/zs/
+ mv8r1uj/ANTt1wDV7SoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA1uxQANXuogDT7ZgnRabkUVSz/sTG
+ 7f+Zmu3/f3/y/19f8v8+PvD/KSnv/ykp7/8pKe//KSnv/y4u7/9JSfH/Pj7b/zQ1p/yJj4zujJKPvYiM
+ inyIjIp8jJKPvYmPjO40Naj8R0fd/1NT8v8vL+//KSnv/ykp7/8tLe7/RUXv/15e8f94ePP/kpL2/6an
+ 8//Fx/D/TU+z/0JZr//l+v3/pO/4/wXU7ewA0uszAAAAAAAAAAAAAAAAAAAAAADU7pMx3PD/lu33/5jt
+ 9/991+r/Cwyi/7q82/+6vOv/m53v/35/8/9fX/L/PDzw/ykp7/8pKe//KSnv/ykp7/8pKe//Pj7v/+bn
+ 8P/m6Oj/09XU/7zAvvu8wL7709bV/+fp6f/X2PD/QUHw/ykp7/8pKe//KSnv/yws7v9ERO//Xl7x/3d3
+ 8/+Rkfb/p6j1/77A8f+0t9//Cwui/gu83aoH1e30svL5/7Py+f8H1e3xANLwIgAAAAAAAAAAANbuSiba
+ 7//o+/3/def1/2fl9P946PX/QGez/0JFrP/b3uz/tbjt/5yd8f9+f/X/XV3y/zs77/8pKe//KSnv/ykp
+ 7/8pKe//XFzv/+7w8P/t7+//7e7u/+3v7//t7+//7e/v/+zu7v/q7O//MDDv/ykp7/8pKe//Kyvu/0RE
+ 7/9dXfH/dnbz/5CQ9v+oqPf/u7zz/9ja8P89Pqv8MjWbtQAAAAAA1ex5ENbu//n9/v8T1+7/ANjrGgAA
+ AAAAAAAAANTtj4bq9v+B6fb/ANTtuADV7mcA1O52C8LgbRkcoPl/gr792dvt/7a47v+bnPL/fn70/1xc
+ 8v86Ou//KSnv/ykp7/8pKe//mJjx//Hz8//w8vL/7/Hx/+/x8f/v8PD/7/Hx/+/x8f/w8vL/XFzv/ykp
+ 7/8rK+7/Q0Pv/1xc8f91dfP/jo/2/6eo+P+7vfP/1tnw/3l7v/0aG5/3SmekEQDU7YMh2e/+zvb7/5vu
+ 9/8A1O3hAAAAAAAAAAAAAAAAANTtqpHs9/+Q7Pf/ANTt1wDT60AAAAAAAAAAAEVFkzgMDaH+r7LQ/9bZ
+ 7P+1t+7/mpvy/3199P9bW/L/OTnv/ykp7/8pKe//19j2//T29v/z9fX/8/T0//L09P/y8/P/8vT0//P0
+ 9P/z9fX/pqfz/yoq7v9CQ/D/W1vx/3R08/+Ojvb/p6f3/7u88//U1fD/qKvS/wwNof5DSpY5ANTtuEff
+ 8v/o+/3/cef0/wDV7dgA0uwoAAAAAAAAAAAAAAAAANXsNhrY7v7b+Pz/tvL5/yPZ7/8A1O2qANLuLQAA
+ AAA6O5lwEhKk/r3A1//W2e3/tLbu/5iZ8/97e/P/Wlry/zc37/9PT/H/+fn5//j4+P/3+Pj/9vf3//b3
+ 9//29vb/9vf3//b39//3+Pj/7Oz3/0tL8f9aW/L/c3Pz/46O9v+lpvb/ubrz/9TW8f+2uNj/EBCk/jo7
+ mXAA1e1UN93w/+b6/f873fH/ANTssgDM7g8AAAAAAAAAAAAAAAAAAAAAAAAAAADV7mcH1u3we+j1/+37
+ /f+N6/b/GNju/gDU7rAA1u4sNjiXiA0Oov6mqM3/2Nvu/7K07f+WmPH/eHjy/1lZ8v/IyPn//Pz8//v7
+ +//6+vr/+fr6//n6+v/5+fn/+fr6//n6+v/6+vr/+/v7/7W1+P90dPT/jY32/6Kj9P+3ufH/1dbx/56f
+ zf8NDqL+NjiXiAAAAAAA1O3DrfH5/2bl9P8A1O2ZAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAA1eoYANPspBjY7v6N6/b/7Pv9/5Hs9/8M1u33ANTsXzs9mF0ODqH9goTA/djb7f+5vO7/k5Xv/5yd
+ 8v/5+vn//f39//7+/v/9/f3//f39//z9/f/8/Pz//P39//39/f/9/f3//v7+//v7/f+gofT/n6Dy/7y9
+ 8P/T1vD/e3y//Q4Oof07PZhdAAAAAADS7TkO1u397/z9/wrV7f0A1eoYAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU7y8A1O2rFdfu/pvu9//T9/v/FNfu/QDV7zE/Q5Q2HiGf9Skr
+ qf+mqNX/xcfv/+Hk7v/v8fD/8vTz//b39v/4+fn/+vv6//v7+//7/Pz/+/v7//r7+v/4+fn/9vf2//L0
+ 8//h4/H/xcfx/5+g1P8lJ6j/HSeh/RWhzZsA1O1TANTtjwbV7e+18vn/mO33/wDT7cEAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXtKwDT7dOS7Pf/lu33/wDU
+ 7bkA1etOANTt4WqMw/8TFKH/UFSv/tXZ2P/s7+7/7vDv/+3w7v/u8fD/7/Lw//Dy8f/w8/H/8PLx//Dz
+ 8f/v8vH/7/Lw/+3w7//V2dj/TE+v/REUof+DkMX/yfX7/3vo9f9L4PL/iOr2/9b4/P+u8fn/BNXs6gDT
+ 7CkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS
+ 7CgR1+787Pv9/yXa7/8v2/D/qvD5/872+/8Ky+j0S2udm4qPjtGKj433r7Sx9c3Qz//Y29r/4uXj/+ru
+ 7P/q7uz/4uXj/9jc2v/N0M//r7Ox9YqPjfeKkI7RWFuRhQbA4WcF1e32Q9/x/5Ds9/+98/r/gen2/zze
+ 8f8D1O3sANTvLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAA1O2gbub0//H8/v/i+vz/c+f1/w3W7fsA1O1TAAAAAAAAAACAi4sWhouIZYuQ
+ jayMkI/MipCN5YaLifmGi4n5ipCN5YyRj8yLkI6shouIZYCLixYAAAAAAAAAAAAAAAAA0egLANPsUgDU
+ 7aAA1O3KANXtiwDT7UYAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0+0dANTtthbX7v8F1O3xANXtiwDQ7BsAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV7SoA2+0OAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA/8//////AAD/A4ABwP8AAP8A
+ AAAAfwAA/gAAAAA/AADwAAAAAA8AAOAAAAAAAwAAwAAAAAABAADAAAAAAAEAAMAAAAAAAwAAwAAAAAAD
+ AADAAAAAAAMAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAPwAA+AAP8AAfAAD4AB/4AB8AAPgA
+ P/wAHwAA8AB//gAPAADwAH/+AA8AAPAA//8ADwAA8AD//wAPAADwAP//AA8AAPAA//8ADwAA8AD//wAP
+ AADwAP//AA8AAPAAf/4ADwAA+AA//AAfAAD4AD/8AB8AAPgAD/AAHwAA+AAH4AAHAADgAAAAAAMAAMAA
+ AAAAAQAAgAAAAABBAACAAAAAAAMAAIMAAAAAAwAAgIAAAAAHAADAAAAAAh8AAOAAAAAEHwAA+AAAAAA/
+ AAD+AAAAAD8AAP8AAAAAfwAA/4DAA4H/AAD/gf////8AAP/n/////wAA////////AAAoAAAAIAAAAEAA
+ AAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ AAAAAAAAgAEAAMADAADgBwAA8A8AAA==
+
+
+
\ No newline at end of file
diff --git a/LVNC-RS/frmLVNC-RS-Main.vb b/LVNC-RS/frmLVNC-RS-Main.vb
new file mode 100644
index 0000000..68f5f60
--- /dev/null
+++ b/LVNC-RS/frmLVNC-RS-Main.vb
@@ -0,0 +1,43 @@
+Public Class frmLVNCRSMain
+ Private Sub frmLVNCRSMain_Load(sender As Object, e As EventArgs) Handles Me.Load
+ Services.checkRunTimeComponents()
+ Services.getSupportID()
+
+ If My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then
+ tsButtonRunAs.Image = Global.LVNC_RS.My.Resources.is_admin_on
+ Else
+ tsButtonRunAs.Image = Global.LVNC_RS.My.Resources.is_admin_off
+ End If
+
+ txtLVNCSupportID.Text = Format(Services.lSupportID, "### ### ##0")
+ End Sub
+
+ Private Sub tsButtonRunAs_Click(sender As Object, e As EventArgs) Handles tsButtonRunAs.Click
+ 'Dim sLogin As String = "locadm"
+ 'Dim sPasswd As String = "dbkrf-bujkrf"
+ 'Dim secPasswd As New Security.SecureString
+ '
+ 'For i As Integer = 0 To sPasswd.Length - 1
+ ' secPasswd.AppendChar(sPasswd.ElementAt(i))
+ 'Next
+ '
+ 'Dim startInfo As New ProcessStartInfo
+ 'With startInfo
+ ' .Arguments = "/Q /C start " & Application.ExecutablePath
+ ' .FileName = Environment.GetEnvironmentVariable("ComSpec")
+ ' .Password = secPasswd
+ ' .UserName = sLogin
+ ' .UseShellExecute = False
+ ' .WorkingDirectory = Environment.CurrentDirectory
+ ' .WindowStyle = ProcessWindowStyle.Hidden
+ 'End With
+ '
+ 'Try
+ ' Dim p As Process = Process.Start(startInfo)
+ 'Catch ex As System.ComponentModel.Win32Exception
+ ' Return
+ 'End Try
+ '
+ 'Application.Exit()
+ End Sub
+End Class