mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-21 10:01:27 -07:00
add studio protocols
This commit is contained in:
parent
a70ed1aead
commit
2c1c2a374f
@ -502,6 +502,8 @@ namespace Bloxstrap
|
|||||||
|
|
||||||
ProtocolHandler.Register("roblox", "Roblox", Paths.Application);
|
ProtocolHandler.Register("roblox", "Roblox", Paths.Application);
|
||||||
ProtocolHandler.Register("roblox-player", "Roblox", Paths.Application);
|
ProtocolHandler.Register("roblox-player", "Roblox", Paths.Application);
|
||||||
|
ProtocolHandler.Register("roblox-studio", "Roblox", Paths.Application, "-studio");
|
||||||
|
ProtocolHandler.Register("roblox-studio-auth", "Roblox", Paths.Application, "-studio");
|
||||||
|
|
||||||
if (Environment.ProcessPath is not null && Environment.ProcessPath != Paths.Application)
|
if (Environment.ProcessPath is not null && Environment.ProcessPath != Paths.Application)
|
||||||
{
|
{
|
||||||
@ -678,13 +680,13 @@ namespace Bloxstrap
|
|||||||
bool robloxStillInstalled = true;
|
bool robloxStillInstalled = true;
|
||||||
|
|
||||||
// check if stock bootstrapper is still installed
|
// check if stock bootstrapper is still installed
|
||||||
RegistryKey? bootstrapperKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\roblox-player");
|
using RegistryKey? bootstrapperKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\roblox-player");
|
||||||
if (bootstrapperKey is null)
|
if (bootstrapperKey is null)
|
||||||
{
|
{
|
||||||
|
robloxStillInstalled = false;
|
||||||
|
|
||||||
ProtocolHandler.Unregister("roblox");
|
ProtocolHandler.Unregister("roblox");
|
||||||
ProtocolHandler.Unregister("roblox-player");
|
ProtocolHandler.Unregister("roblox-player");
|
||||||
|
|
||||||
robloxStillInstalled = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\roblox-studio") is not null;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -696,6 +698,23 @@ namespace Bloxstrap
|
|||||||
ProtocolHandler.Register("roblox-player", "Roblox", bootstrapperLocation);
|
ProtocolHandler.Register("roblox-player", "Roblox", bootstrapperLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using RegistryKey? studioBootstrapperKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall\roblox-studio");
|
||||||
|
if (studioBootstrapperKey is null)
|
||||||
|
{
|
||||||
|
robloxStillInstalled = false;
|
||||||
|
|
||||||
|
ProtocolHandler.Unregister("roblox-studio");
|
||||||
|
ProtocolHandler.Unregister("roblox-studio-auth");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
robloxStillInstalled = true;
|
||||||
|
|
||||||
|
string studioLocation = (string?)studioBootstrapperKey.GetValue("InstallLocation") + "RobloxStudioBeta.exe"; // points to studio exe instead of bootstrapper
|
||||||
|
ProtocolHandler.Register("roblox-studio", "Roblox", studioLocation);
|
||||||
|
ProtocolHandler.Register("roblox-studio-auth", "Roblox", studioLocation);
|
||||||
|
}
|
||||||
|
|
||||||
// if the folder we're installed to does not end with "Bloxstrap", we're installed to a user-selected folder
|
// if the folder we're installed to does not end with "Bloxstrap", we're installed to a user-selected folder
|
||||||
// in which case, chances are they chose to install to somewhere they didn't really mean to (prior to the added warning in 2.4.0)
|
// in which case, chances are they chose to install to somewhere they didn't really mean to (prior to the added warning in 2.4.0)
|
||||||
// if so, we're walking on eggshells and have to ensure we only clean up what we need to clean up
|
// if so, we're walking on eggshells and have to ensure we only clean up what we need to clean up
|
||||||
|
@ -105,9 +105,18 @@ namespace Bloxstrap
|
|||||||
App.State.Save();
|
App.State.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Register(string key, string name, string handler)
|
private static string ConstructHandlerArgs(string handler, string? extraArgs = null)
|
||||||
{
|
{
|
||||||
string handlerArgs = $"\"{handler}\" %1";
|
string handlerArgs = $"\"{handler}\"";
|
||||||
|
if (!string.IsNullOrEmpty(extraArgs))
|
||||||
|
handlerArgs += $" {extraArgs}";
|
||||||
|
handlerArgs += " %1";
|
||||||
|
return handlerArgs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Register(string key, string name, string handler, string? extraArgs = null)
|
||||||
|
{
|
||||||
|
string handlerArgs = ConstructHandlerArgs(handler, extraArgs);
|
||||||
RegistryKey uriKey = Registry.CurrentUser.CreateSubKey($@"Software\Classes\{key}");
|
RegistryKey uriKey = Registry.CurrentUser.CreateSubKey($@"Software\Classes\{key}");
|
||||||
RegistryKey uriIconKey = uriKey.CreateSubKey("DefaultIcon");
|
RegistryKey uriIconKey = uriKey.CreateSubKey("DefaultIcon");
|
||||||
RegistryKey uriCommandKey = uriKey.CreateSubKey(@"shell\open\command");
|
RegistryKey uriCommandKey = uriKey.CreateSubKey(@"shell\open\command");
|
||||||
|
Loading…
Reference in New Issue
Block a user