├── LICENSE ├── README.md ├── _config.yml ├── resource ├── icon.ai ├── icon.ico └── icon.png ├── source ├── RcloneBrowser Portable.sln └── RcloneBrowser Portable │ ├── App.config │ ├── My Project │ ├── Application.Designer.vb │ ├── Application.myapp │ ├── AssemblyInfo.vb │ ├── Resources.Designer.vb │ ├── Resources.resx │ ├── Settings.Designer.vb │ ├── Settings.settings │ └── app.manifest │ ├── RcloneBrowser Portable.vbproj │ ├── Startup.vb │ └── icon.ico └── update ├── Release.zip └── version /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 MinorMole 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![GitHub release](https://img.shields.io/github/release/MinorMole/RcloneBrowser-Portable.svg)](https://gitHub.com/MinorMole/RcloneBrowser-Portable/releases) 2 | [![GitHub license](https://img.shields.io/github/license/MinorMole/RcloneBrowser-Portable.svg)](https://github.com/MinorMole/RcloneBrowser-Portable/blob/master/LICENSE) 3 | 4 | ## Introduction 5 | 6 | A portable launcher of [**Rclone Browser**](https://github.com/DinCahill/RcloneBrowser) for Windows that design with the end-user experience in mind. 7 | 8 | ## Features 9 | 10 | - Ready to use everywhere you go, unlike pure Rclone Browser every time you move it to somewhere else you have to re-config the rclone.exe location. 11 | - Auto-update from the developer, will bring you the latest rclone and Rclone Browser for the most exceptional experience. 12 | - Open user guide for you if you use it for the first time. 13 | - Optimized setting for Rclone Browser. 14 | - Detect multi-instance. (a common user-error of Rclone Browser) 15 | - Detect if your rclone.conf not encrypt and remind you to encrypt it. 16 | - Auto-install WinFsp for drive mounting feature of Rclone Browser. 17 | - Came with mpv for stream feature of Rclone Browser. 18 | 19 | ## Requirement 20 | 21 | - [**.NET Framework Runtime 4.8 or Higher**](https://dotnet.microsoft.com/download/dotnet-framework/net48) 22 | 23 | ## [Download & Changelog](https://gitHub.com/MinorMole/RcloneBrowser-Portable/releases) 24 | 25 | ⚠ **Some antivirus might detect this as a virus but it not a virus. In that case, you can add it to the exception. I too lazy to fix this, if you don't trust please don't download it.** 26 | 27 | ## [Usage](https://github.com/MinorMole/RcloneBrowser-Portable/wiki/RcloneBrowser-Guide) 28 | 29 | ## [Licence](https://github.com/MinorMole/RcloneLab/blob/master/LICENSE) 30 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /resource/icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/RcloneBrowser-Portable/9cca4eb34262920c188976bb7903d50b88eff0e4/resource/icon.ai -------------------------------------------------------------------------------- /resource/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/RcloneBrowser-Portable/9cca4eb34262920c188976bb7903d50b88eff0e4/resource/icon.ico -------------------------------------------------------------------------------- /resource/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/RcloneBrowser-Portable/9cca4eb34262920c188976bb7903d50b88eff0e4/resource/icon.png -------------------------------------------------------------------------------- /source/RcloneBrowser Portable.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29102.190 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RcloneBrowser Portable", "RcloneBrowser Portable\RcloneBrowser Portable.vbproj", "{5211D9A6-5270-4828-8FC8-1D7B60BED50F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {5211D9A6-5270-4828-8FC8-1D7B60BED50F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {5211D9A6-5270-4828-8FC8-1D7B60BED50F}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {5211D9A6-5270-4828-8FC8-1D7B60BED50F}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {5211D9A6-5270-4828-8FC8-1D7B60BED50F}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {5D193E07-8852-4395-A762-BF9F15525564} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Application.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Application.myapp: -------------------------------------------------------------------------------- 1 |  2 | 3 | false 4 | false 5 | 0 6 | true 7 | 0 8 | 2 9 | true 10 | 11 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/AssemblyInfo.vb: -------------------------------------------------------------------------------- 1 | Imports System 2 | Imports System.Reflection 3 | Imports System.Runtime.InteropServices 4 | 5 | ' General Information about an assembly is controlled through the following 6 | ' set of attributes. Change these attribute values to modify the information 7 | ' associated with an assembly. 8 | 9 | ' Review the values of the assembly attributes 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 'The following GUID is for the ID of the typelib if this project is exposed to COM 21 | 22 | 23 | ' Version information for an assembly consists of the following four values: 24 | ' 25 | ' Major Version 26 | ' Minor Version 27 | ' Build Number 28 | ' Revision 29 | ' 30 | ' You can specify all the values or you can default the Build and Revision Numbers 31 | ' by using the '*' as shown below: 32 | ' 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Resources.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | Imports System 15 | 16 | Namespace My.Resources 17 | 18 | 'This class was auto-generated by the StronglyTypedResourceBuilder 19 | 'class via a tool like ResGen or Visual Studio. 20 | 'To add or remove a member, edit your .ResX file then rerun ResGen 21 | 'with the /str option, or rebuild your VS project. 22 | ''' 23 | ''' A strongly-typed resource class, for looking up localized strings, etc. 24 | ''' 25 | _ 29 | Friend Module Resources 30 | 31 | Private resourceMan As Global.System.Resources.ResourceManager 32 | 33 | Private resourceCulture As Global.System.Globalization.CultureInfo 34 | 35 | ''' 36 | ''' Returns the cached ResourceManager instance used by this class. 37 | ''' 38 | _ 39 | Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager 40 | Get 41 | If Object.ReferenceEquals(resourceMan, Nothing) Then 42 | Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("RcloneBrowser_Portable.Resources", GetType(Resources).Assembly) 43 | resourceMan = temp 44 | End If 45 | Return resourceMan 46 | End Get 47 | End Property 48 | 49 | ''' 50 | ''' Overrides the current thread's CurrentUICulture property for all 51 | ''' resource lookups using this strongly typed resource class. 52 | ''' 53 | _ 54 | Friend Property Culture() As Global.System.Globalization.CultureInfo 55 | Get 56 | Return resourceCulture 57 | End Get 58 | Set 59 | resourceCulture = value 60 | End Set 61 | End Property 62 | End Module 63 | End Namespace 64 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Settings.Designer.vb: -------------------------------------------------------------------------------- 1 | '------------------------------------------------------------------------------ 2 | ' 3 | ' This code was generated by a tool. 4 | ' Runtime Version:4.0.30319.42000 5 | ' 6 | ' Changes to this file may cause incorrect behavior and will be lost if 7 | ' the code is regenerated. 8 | ' 9 | '------------------------------------------------------------------------------ 10 | 11 | Option Strict On 12 | Option Explicit On 13 | 14 | 15 | Namespace My 16 | 17 | _ 20 | Partial Friend NotInheritable Class MySettings 21 | Inherits Global.System.Configuration.ApplicationSettingsBase 22 | 23 | Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) 24 | 25 | #Region "My.Settings Auto-Save Functionality" 26 | #If _MyType = "WindowsForms" Then 27 | Private Shared addedHandler As Boolean 28 | 29 | Private Shared addedHandlerLockObject As New Object 30 | 31 | _ 32 | Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) 33 | If My.Application.SaveMySettingsOnExit Then 34 | My.Settings.Save() 35 | End If 36 | End Sub 37 | #End If 38 | #End Region 39 | 40 | Public Shared ReadOnly Property [Default]() As MySettings 41 | Get 42 | 43 | #If _MyType = "WindowsForms" Then 44 | If Not addedHandler Then 45 | SyncLock addedHandlerLockObject 46 | If Not addedHandler Then 47 | AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings 48 | addedHandler = True 49 | End If 50 | End SyncLock 51 | End If 52 | #End If 53 | Return defaultInstance 54 | End Get 55 | End Property 56 | End Class 57 | End Namespace 58 | 59 | Namespace My 60 | 61 | _ 64 | Friend Module MySettingsProperty 65 | 66 | _ 67 | Friend ReadOnly Property Settings() As Global.RcloneBrowser_Portable.My.MySettings 68 | Get 69 | Return Global.RcloneBrowser_Portable.My.MySettings.Default 70 | End Get 71 | End Property 72 | End Module 73 | End Namespace 74 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/My Project/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 52 | 59 | 60 | 61 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/RcloneBrowser Portable.vbproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {5211D9A6-5270-4828-8FC8-1D7B60BED50F} 8 | WinExe 9 | RcloneBrowser_Portable.Startup 10 | RcloneBrowser_Portable 11 | RcloneBrowser Portable 12 | 512 13 | WindowsFormsWithCustomSubMain 14 | v4.8 15 | true 16 | true 17 | 18 | 19 | 20 | x64 21 | true 22 | full 23 | true 24 | true 25 | bin\Debug\ 26 | 27 | 28 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 29 | 0 30 | 31 | 32 | x64 33 | pdbonly 34 | false 35 | true 36 | true 37 | bin\Release\ 38 | 39 | 40 | 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 41 | 0 42 | 43 | 44 | On 45 | 46 | 47 | Binary 48 | 49 | 50 | Off 51 | 52 | 53 | On 54 | 55 | 56 | icon.ico 57 | 58 | 59 | My Project\app.manifest 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | True 90 | Application.myapp 91 | 92 | 93 | True 94 | True 95 | Resources.resx 96 | 97 | 98 | True 99 | Settings.settings 100 | True 101 | 102 | 103 | 104 | 105 | VbMyResourcesResXFileCodeGenerator 106 | Resources.Designer.vb 107 | My.Resources 108 | Designer 109 | 110 | 111 | 112 | 113 | 114 | MyApplicationCodeGenerator 115 | Application.Designer.vb 116 | 117 | 118 | SettingsSingleFileGenerator 119 | My 120 | Settings.Designer.vb 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/Startup.vb: -------------------------------------------------------------------------------- 1 | Imports System.IO 2 | Imports System.IO.Compression 3 | Imports System.Windows.Forms 4 | Imports Microsoft.Win32 5 | 6 | Module Startup 7 | 8 | Dim Client As New Net.WebClient 9 | Dim UpdateStatus As Boolean = False 10 | Dim RcloneUpdater = CreateObject("wscript.shell") 11 | Dim DeleteOldCount As Integer = 0 12 | Dim Retry_Count As Integer = 0 13 | 14 | Sub Main() 15 | 16 | '' Delete old version 17 | While My.Computer.FileSystem.FileExists(".\RcloneBrowser Portable.old") And DeleteOldCount < 10 18 | Try 19 | My.Computer.FileSystem.DeleteFile(".\RcloneBrowser Portable.old") 20 | Catch ex As Exception 21 | DeleteOldCount += 1 22 | Threading.Thread.Sleep(1000) 23 | End Try 24 | End While 25 | 26 | '' Check update 27 | Try 28 | Client.CachePolicy = New Net.Cache.RequestCachePolicy(Net.Cache.RequestCacheLevel.NoCacheNoStore) 29 | Dim CheckVersion As String = Client.DownloadString("https://download.konayuki.moe/RcloneBrowser-Portable/Version") 30 | If CheckVersion.Contains(".") And Application.ProductVersion.Trim <> CheckVersion Then Update(True) 31 | Catch ex As Exception 32 | End Try 33 | 34 | '' Check if RcloneBrowser and rclone exists 35 | If Not My.Computer.FileSystem.FileExists(".\RcloneBrowser\RcloneBrowser.exe") Or Not My.Computer.FileSystem.FileExists(".\RcloneBrowser\rclone.exe") Then Update(False) 36 | 37 | If UpdateStatus = True Then GoTo Quit 38 | 39 | '' Install WinFsp for RcloneBrowser Mounting Feature 40 | If Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + "\WinFsp") And Not My.Computer.FileSystem.DirectoryExists(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\WinFsp") Then 41 | Dim WinFsp As New ProcessStartInfo() 42 | WinFsp.WorkingDirectory = Application.StartupPath 43 | WinFsp.CreateNoWindow = True 44 | WinFsp.WindowStyle = ProcessWindowStyle.Hidden 45 | WinFsp.Verb = "runas" 46 | WinFsp.FileName = "cmd.exe" 47 | WinFsp.Arguments = "/c msiexec /i " + Chr(34) + Application.StartupPath + "\RcloneBrowser\redists\WinFsp.msi" + Chr(34) + " INSTALLLEVEL=1000 /quiet /qn /norestart" 48 | Try 49 | Process.Start(WinFsp) 50 | Catch ex As Exception 51 | End Try 52 | End If 53 | 54 | '' Check if rclone.conf exists 55 | If Not My.Computer.FileSystem.FileExists(".\RcloneBrowser\rclone.conf") Then 56 | File.Create(".\RcloneBrowser\rclone.conf").Dispose() 57 | MsgBox("Seem like you're using RcloneBrowser for the first time." + vbNewLine + vbNewLine + "Just let you know, rclone.conf is located at..." + vbNewLine + vbNewLine + Application.StartupPath + "\RcloneBrowser\rclone.conf") 58 | Process.Start("https://github.com/MinorMole/RcloneBrowser-Portable/wiki/RcloneBrowser-Guide") 59 | 'Else 60 | '' Check if rclone.conf encrypt or not 61 | 'Dim RcloneConf As String = My.Computer.FileSystem.ReadAllText(".\RcloneBrowser\rclone.conf") 62 | 'If RcloneConf.Length.ToString <> 0 And Not RcloneConf.Contains("Encrypted rclone configuration File") And Not RcloneConf.Contains("RCLONE_ENCRYPT") Then MsgBox("Seem like you haven't created a password for RcloneBrowser!" + vbNewLine + vbNewLine + "To set a new password goto Config > Set configuration password") 63 | End If 64 | 65 | '' Check if the registry are correct 66 | Dim StartupPath As String = Application.StartupPath.Replace("\", "/") 67 | If (Registry.CurrentUser.OpenSubKey("Software\rclone-browser") Is Nothing) _ 68 | Or (Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "rclone", "") <> StartupPath + "/RcloneBrowser/rclone.exe") _ 69 | Or (Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "rcloneConf", "") <> StartupPath + "/RcloneBrowser/rclone.conf") Then 70 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "rclone", StartupPath + "/RcloneBrowser/rclone.exe") 71 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "rcloneConf", StartupPath + "/RcloneBrowser/rclone.conf") 72 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "alwaysShowInTray", "true") 73 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "closeToTray", "true") 74 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "notifyFinishedTransfers", "true") 75 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "rowColors", "true") 76 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "showFileIcons", "true") 77 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "showFolderIcons", "true") 78 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "showHidden", "true") 79 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Transfer", "checkVerbose", "true") 80 | End If 81 | 82 | '' Set Default Stream Command 83 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "stream", ".\RcloneBrowser\redists\mpv.exe - --title=" + Chr(34) + "$file_name" + Chr(34)) 84 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "streamConfirmed", "true") 85 | 86 | '' Set Default Stream Command (Reverse) 87 | Dim ReadMountValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "mount", Nothing) 88 | If ReadMountValue = "--vfs-cache-mode writes --fast-list" Then 89 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "mount", "--vfs-cache-mode writes") 90 | End If 91 | 92 | '' Set Default Rclone Options 93 | Dim ReadRcloneOptions = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "defaultRcloneOptions", Nothing) 94 | If ReadRcloneOptions = Nothing Or ReadRcloneOptions = "--fast-list" Then 95 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "defaultRcloneOptions", "") 96 | End If 97 | 98 | '' Disable Auto Update of Rclone Browser 99 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "checkRcloneBrowserUpdates", "false") 100 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "checkRcloneUpdates", "false") 101 | 102 | '' Set Default Style 103 | Dim ReadiconsLayoutValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconsLayout", Nothing) 104 | If ReadiconsLayoutValue = Nothing Then 105 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconsLayout", "longlist") 106 | End If 107 | Dim ReadiconSizeValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconSize", Nothing) 108 | If ReadiconsLayoutValue = Nothing Then 109 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconSize", "S") 110 | End If 111 | Dim ReadbuttonSizeValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonSize", Nothing) 112 | If ReadbuttonSizeValue = Nothing Then 113 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonSize", "0") 114 | End If 115 | Dim ReadfontSizeValue = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "fontSize", Nothing) 116 | If ReadfontSizeValue = Nothing Then 117 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "fontSize", "0") 118 | End If 119 | Dim ReadiconsColour = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconsColour", Nothing) 120 | If ReadiconsColour = Nothing Then 121 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "iconsColour", "black") 122 | End If 123 | Dim ReaddarkMode = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "darkMode", Nothing) 124 | If ReaddarkMode = Nothing Then 125 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "darkMode", "false") 126 | End If 127 | Dim ReaddarkModeIni = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "darkModeIni", Nothing) 128 | If ReaddarkModeIni = Nothing Then 129 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "darkModeIni", "false") 130 | End If 131 | Dim ReadbuttonSize = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonSize", Nothing) 132 | If ReadbuttonSize = Nothing Then 133 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonSize", "0") 134 | End If 135 | Dim ReadbuttonStyle = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonStyle", Nothing) 136 | If ReadbuttonStyle = Nothing Then 137 | Registry.SetValue("HKEY_CURRENT_USER\Software\rclone-browser\rclone-browser\Settings", "buttonStyle", "textandicon") 138 | End If 139 | 140 | '' Update Rclone 141 | RcloneUpdater.run("""" + Application.StartupPath + "\RcloneBrowser\rclone.exe"" --config """ + Application.StartupPath + "\RcloneBrowser\blank.conf"" selfupdate --stable", 0, True) 142 | 143 | '' Start RcloneBrowser 144 | If Process.GetProcessesByName("RcloneBrowser").Count = 0 Then 145 | Process.Start(".\RcloneBrowser\RcloneBrowser.exe") 146 | Try 147 | AppActivate("Rclone Browser") 148 | Catch ex As Exception 149 | End Try 150 | Else 151 | Try 152 | AppActivate("Rclone Browser") 153 | Catch ex As Exception 154 | End Try 155 | Process.Start(".\RcloneBrowser\RcloneBrowser.exe") 156 | End If 157 | 158 | Quit: 159 | 160 | End Sub 161 | 162 | Function Update(ByRef ShowMsg As Boolean) 163 | 164 | UpdateStatus = True 165 | 166 | If ShowMsg Then MsgBox("A new version of RcloneBrowser Portable is avaliable!" + vbNewLine + vbNewLine + "We have to close RcloneBrowser and rclone to update" + vbNewLine + vbNewLine + "Click OK to update") 167 | 168 | RTY_DL: Try 169 | My.Computer.Network.DownloadFile("https://download.konayuki.moe/RcloneBrowser-Portable/Release.zip", ".\Release.zip", vbNullString, vbNullString, True, 100000, True) 170 | Catch ex As Exception 171 | Retry_Count = Retry_Count + 1 172 | If Retry_Count > 10 Then 173 | MsgBox("Can't access to the update server, please try again later.") 174 | GoTo Quit 175 | Else 176 | Threading.Thread.Sleep(1000) 177 | GoTo RTY_DL 178 | End If 179 | End Try 180 | 181 | If My.Computer.FileSystem.DirectoryExists(".\tmp\") Then My.Computer.FileSystem.DeleteDirectory(".\tmp\", FileIO.DeleteDirectoryOption.DeleteAllContents) 182 | 183 | ZipFile.ExtractToDirectory(".\Release.zip", ".\tmp\") 184 | 185 | My.Computer.FileSystem.DeleteFile(".\Release.zip") 186 | 187 | My.Computer.FileSystem.MoveFile(Application.ExecutablePath, ".\RcloneBrowser Portable.old") 188 | 189 | Dim RcloneBrowserProcess = Process.GetProcessesByName("RcloneBrowser") 190 | For i As Integer = 0 To RcloneBrowserProcess.Count - 1 191 | RcloneBrowserProcess(i).Kill() 192 | Next i 193 | 194 | Dim rcloneProcess = Process.GetProcessesByName("rclone") 195 | For i As Integer = 0 To rcloneProcess.Count - 1 196 | rcloneProcess(i).Kill() 197 | Next i 198 | 199 | My.Computer.FileSystem.MoveDirectory(".\tmp\", ".\", overwrite:=True) 200 | 201 | Process.Start(".\RcloneBrowser Portable.exe") 202 | 203 | Quit: Application.Exit() 204 | 205 | Return Nothing 206 | 207 | End Function 208 | 209 | End Module -------------------------------------------------------------------------------- /source/RcloneBrowser Portable/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/RcloneBrowser-Portable/9cca4eb34262920c188976bb7903d50b88eff0e4/source/RcloneBrowser Portable/icon.ico -------------------------------------------------------------------------------- /update/Release.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/RcloneBrowser-Portable/9cca4eb34262920c188976bb7903d50b88eff0e4/update/Release.zip -------------------------------------------------------------------------------- /update/version: -------------------------------------------------------------------------------- 1 | 1.7.0.0 --------------------------------------------------------------------------------