From fe9e3410ba1871ac5abeb87f871392bc84c3b233 Mon Sep 17 00:00:00 2001 From: cyrax Date: Mon, 12 Nov 2018 11:33:35 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=BE=D1=86=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LVNC-RS.sln | 25 ++ LVNC-RS/LVNC-RS.vbproj | 189 +++++++++ LVNC-RS/My Project/Application.Designer.vb | 38 ++ LVNC-RS/My Project/Application.myapp | 10 + LVNC-RS/My Project/AssemblyInfo.vb | 35 ++ LVNC-RS/My Project/Resources.Designer.vb | 250 ++++++++++++ LVNC-RS/My Project/Resources.resx | 166 ++++++++ LVNC-RS/My Project/Settings.Designer.vb | 73 ++++ LVNC-RS/My Project/Settings.settings | 7 + LVNC-RS/My Project/app.manifest | 76 ++++ LVNC-RS/Resources/is-admin-off.png | Bin 0 -> 756 bytes LVNC-RS/Resources/is-admin-on.png | Bin 0 -> 881 bytes LVNC-RS/Resources/lvnc-rs-server.bmp | Bin 0 -> 33542 bytes LVNC-RS/Resources/lvnc-rs.ico | Bin 0 -> 17542 bytes LVNC-RS/Resources/lvnc-rs.ini | 8 + LVNC-RS/Resources/offline.png | Bin 0 -> 601 bytes LVNC-RS/Resources/offline1.bmp | Bin 0 -> 822 bytes LVNC-RS/Resources/online.png | Bin 0 -> 503 bytes LVNC-RS/Resources/ultravnc.ini | 70 ++++ LVNC-RS/Services.vb | 107 ++++++ LVNC-RS/app.config | 25 ++ LVNC-RS/frmLVNC-RS-Main.Designer.vb | 199 ++++++++++ LVNC-RS/frmLVNC-RS-Main.resx | 424 +++++++++++++++++++++ LVNC-RS/frmLVNC-RS-Main.vb | 43 +++ 24 files changed, 1745 insertions(+) create mode 100644 LVNC-RS.sln create mode 100644 LVNC-RS/LVNC-RS.vbproj create mode 100644 LVNC-RS/My Project/Application.Designer.vb create mode 100644 LVNC-RS/My Project/Application.myapp create mode 100644 LVNC-RS/My Project/AssemblyInfo.vb create mode 100644 LVNC-RS/My Project/Resources.Designer.vb create mode 100644 LVNC-RS/My Project/Resources.resx create mode 100644 LVNC-RS/My Project/Settings.Designer.vb create mode 100644 LVNC-RS/My Project/Settings.settings create mode 100644 LVNC-RS/My Project/app.manifest create mode 100644 LVNC-RS/Resources/is-admin-off.png create mode 100644 LVNC-RS/Resources/is-admin-on.png create mode 100644 LVNC-RS/Resources/lvnc-rs-server.bmp create mode 100644 LVNC-RS/Resources/lvnc-rs.ico create mode 100644 LVNC-RS/Resources/lvnc-rs.ini create mode 100644 LVNC-RS/Resources/offline.png create mode 100644 LVNC-RS/Resources/offline1.bmp create mode 100644 LVNC-RS/Resources/online.png create mode 100644 LVNC-RS/Resources/ultravnc.ini create mode 100644 LVNC-RS/Services.vb create mode 100644 LVNC-RS/app.config create mode 100644 LVNC-RS/frmLVNC-RS-Main.Designer.vb create mode 100644 LVNC-RS/frmLVNC-RS-Main.resx create mode 100644 LVNC-RS/frmLVNC-RS-Main.vb 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 0000000000000000000000000000000000000000..7a4be5e921235f63cfda09d56144abf80b34dea4 GIT binary patch literal 756 zcmV?vg?`)?U67NZ#IiC46Md_s*woO(f zg)yk4^QfYS5sl(!GN3im4q-JmARA*WxLH1bnq11{a%FKHmX9Cpt}&}nbxR;a7||$Z zG>WcNSQ#G&t$&pegqoXB+Z%W?G?X_bj1?A3hojoU+TB5@s|z6|2!ZxIlx3|N0kp_P&8_7R6fst z5dyh+GfCI20)wUl&u^%pxU^KRwcH%;nKMY+Mo39eDp5=%*4@B}ZlTl|gCIycFeU*4 zxHt7JTQ=)!sLad|l*_B-dA}`SwKOxCnl1Wp3qS&BxH&a7pDox1LX}aAi)f`lsrBY~ zj0L5Fx#Y~W0}s{$94INRPrMqPSP?t7Qccei6bkFia+8g2ZRYKp#EOEGfDd5&6g-8m z$11+L5(I}^+TvDadKT?f2+C!oZDDtI@aDrrv5?7La$xvxzaVeINYk$Pp#z<5VSj2K z1Q_i*8GS!doKK~PFRxBt!`Kj@hv4Cn{BkV)eQ|$$Z>y2WA literal 0 HcmV?d00001 diff --git a/LVNC-RS/Resources/is-admin-on.png b/LVNC-RS/Resources/is-admin-on.png new file mode 100644 index 0000000000000000000000000000000000000000..52e54854e015bd0e0f41216667bb756c7c5dcf1e GIT binary patch literal 881 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 literal 0 HcmV?d00001 diff --git a/LVNC-RS/Resources/offline1.bmp b/LVNC-RS/Resources/offline1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f5f499efaa1c23b4e717591d9af867abfeb79601 GIT binary patch literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H0s;AK`;whyVjaYgY#@xEXVD^5X%J(1t{P_77$oTT@@2&ekfs7NUPTsnA7pUO+t(!pd z^o4Uk@(h@SDEt5a|MOSBfh0uZ#`Wu)8yc`8pn4zzS^-r2^387ux23W1@87>b5ljG7 z@as273aA)J0-XdD0h$bCCz^_3B8cHYEkFj`{c!c=t_p1d>XRaLfC$I{axHCofhv(v zRNfi5`YM0JrV!)iAl*7Il`t1k~UuL`lMkFc!^w=Qtk z&T>?RtA{uhq8F~dHqxOk%BdmNr7_kOg5c_bZiBPo>LG@pkq|SH-3Cu9~{=GR26ECrmNxM z{;^*Gp~-|=y@k4R;Jj;(a{DUG3?gzrW9798%ksnY8yFgtP;U;pR~wHXb&3$29KzEx$Y#?jm3q39M5LLS+G^kNsSHCJu%9y+86Gi-a7HI5=a-E}<5z#*3izSn zxR=<{>TYvuV>M%^#nfaNxx9@~a1^C-5uxB1O69^=<^8>#$oba*L4>ocoe`F4A(yuy trGZkp2q6SY<$_1K+e!jJGMU1E`2f5k%ilkaU8Vp4002ovPDHLkV1l3U+rj_< literal 0 HcmV?d00001 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