Skip to content

Commit 2ba7089

Browse files
Uri launcher
1 parent 9bcbc31 commit 2ba7089

File tree

1 file changed

+59
-2
lines changed

1 file changed

+59
-2
lines changed

plugin_KinectOne/RuntimeInstaller.cs

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ public async Task<bool> Apply(IProgress<InstallationProgress> progress,
203203
{
204204
Host.Log($"Received fix application arguments: {arg}");
205205

206-
await Launcher.LaunchUriAsync(new Uri($"amethyst-app:crash-message#{Host.RequestLocalizedString(
207-
"/Plugins/KinectOne/Fixes/NotReady/Prompt/MustEnableKinectMicrophone")}"));
206+
await $"amethyst-app:crash-message#{Host.RequestLocalizedString(
207+
"/Plugins/KinectOne/Fixes/NotReady/Prompt/MustEnableKinectMicrophone")}".Launch();
208208

209209
// Open sound control panel on the recording tab
210210
Process.Start("rundll32.exe", "shell32.dll,Control_RunDLL mmsys.cpl,,1");
@@ -269,4 +269,61 @@ public static async Task CopyToWithProgressAsync(this Stream source,
269269
progress?.Invoke(total);
270270
} while (amtRead == bufferSize);
271271
}
272+
}
273+
274+
public static class UriExtensions
275+
{
276+
public static Uri ToUri(this string source)
277+
{
278+
return new Uri(source);
279+
}
280+
281+
public static async Task LaunchAsync(this Uri uri)
282+
{
283+
try
284+
{
285+
if (await Launcher.QueryAppUriSupportAsync(uri) is LaunchQuerySupportStatus.Available ||
286+
uri.Scheme is "amethyst-app") await Launcher.LaunchUriAsync(uri);
287+
}
288+
catch (Exception)
289+
{
290+
// ignored
291+
}
292+
}
293+
294+
public static async Task Launch(this string uri)
295+
{
296+
try
297+
{
298+
if (PathsHandler.IsAmethystPackaged)
299+
{
300+
await uri.ToUri().LaunchAsync();
301+
}
302+
else
303+
{
304+
// If we've found who asked
305+
if (File.Exists(Assembly.GetExecutingAssembly().Location))
306+
{
307+
var info = new ProcessStartInfo
308+
{
309+
FileName = Assembly.GetExecutingAssembly().Location.Replace(".dll", ".exe"),
310+
Arguments = uri
311+
};
312+
313+
try
314+
{
315+
Process.Start(info);
316+
}
317+
catch (Exception)
318+
{
319+
// ignored
320+
}
321+
}
322+
}
323+
}
324+
catch (Exception)
325+
{
326+
// ignored
327+
}
328+
}
272329
}

0 commit comments

Comments
 (0)