register ytdl protocol with file associations

This commit is contained in:
stax76
2021-11-19 12:48:12 +01:00
parent 30b60a5b4e
commit 28f1c5c132
3 changed files with 21 additions and 24 deletions

View File

@@ -81,17 +81,19 @@ namespace mpvnet
if (perceivedType != "unreg") if (perceivedType != "unreg")
{ {
RegistryHelp.SetValue(@"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename, null, ExePath); RegistryHelp.SetValue(@"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename, null, ExePath);
RegistryHelp.SetValue(@"HKCR\ytdl", "URL Protocol", "");
RegistryHelp.SetValue(@"HKCR\ytdl\shell\open\command", null, $"\"{ExePath}\" \"%1\"");
RegistryHelp.SetValue(@"HKCR\Applications\" + ExeFilename, "FriendlyAppName", "mpv.net media player"); RegistryHelp.SetValue(@"HKCR\Applications\" + ExeFilename, "FriendlyAppName", "mpv.net media player");
RegistryHelp.SetValue($@"HKCR\Applications\{ExeFilename}\shell\open\command", null, $"\"{ExePath}\" \"%1\""); RegistryHelp.SetValue(@"HKCR\Applications\" + ExeFilename + @"\shell\open\command", null, $"\"{ExePath}\" \"%1\"");
RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationDescription", "mpv.net media player");
RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationName", "mpv.net");
RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\video\OpenWithList\" + ExeFilename, null, ""); RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\video\OpenWithList\" + ExeFilename, null, "");
RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\audio\OpenWithList\" + ExeFilename, null, ""); RegistryHelp.SetValue(@"HKCR\SystemFileAssociations\audio\OpenWithList\" + ExeFilename, null, "");
RegistryHelp.SetValue(@"HKLM\SOFTWARE\RegisteredApplications", "mpv.net", @"SOFTWARE\Clients\Media\mpv.net\Capabilities"); RegistryHelp.SetValue(@"HKLM\SOFTWARE\RegisteredApplications", "mpv.net", @"SOFTWARE\Clients\Media\mpv.net\Capabilities");
RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationDescription", "mpv.net media player");
RegistryHelp.SetValue(@"HKLM\SOFTWARE\Clients\Media\mpv.net\Capabilities", "ApplicationName", "mpv.net");
foreach (string ext in extensions) foreach (string ext in extensions)
{ {
RegistryHelp.SetValue($@"HKCR\Applications\{ExeFilename}\SupportedTypes", "." + ext, ""); RegistryHelp.SetValue(@"HKCR\Applications\" + ExeFilename + @"\SupportedTypes", "." + ext, "");
RegistryHelp.SetValue(@"HKCR\" + "." + ext, null, ExeFilenameNoExt + "." + ext); RegistryHelp.SetValue(@"HKCR\" + "." + ext, null, ExeFilenameNoExt + "." + ext);
RegistryHelp.SetValue(@"HKCR\" + "." + ext + @"\OpenWithProgIDs", ExeFilenameNoExt + "." + ext, ""); RegistryHelp.SetValue(@"HKCR\" + "." + ext + @"\OpenWithProgIDs", ExeFilenameNoExt + "." + ext, "");
RegistryHelp.SetValue(@"HKCR\" + "." + ext, "PerceivedType", perceivedType); RegistryHelp.SetValue(@"HKCR\" + "." + ext, "PerceivedType", perceivedType);
@@ -101,11 +103,13 @@ namespace mpvnet
} }
else else
{ {
RegistryHelp.RemoveKey(@"HKCR\ytdl");
RegistryHelp.RemoveKey(@"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename); RegistryHelp.RemoveKey(@"HKCU\Software\Microsoft\Windows\CurrentVersion\App Paths\" + ExeFilename);
RegistryHelp.RemoveKey(@"HKCR\Applications\" + ExeFilename); RegistryHelp.RemoveKey(@"HKCR\Applications\" + ExeFilename);
RegistryHelp.RemoveKey(@"HKLM\SOFTWARE\Clients\Media\mpv.net"); RegistryHelp.RemoveKey(@"HKLM\SOFTWARE\Clients\Media\mpv.net");
RegistryHelp.RemoveKey(@"HKCR\SystemFileAssociations\video\OpenWithList\" + ExeFilename); RegistryHelp.RemoveKey(@"HKCR\SystemFileAssociations\video\OpenWithList\" + ExeFilename);
RegistryHelp.RemoveKey(@"HKCR\SystemFileAssociations\audio\OpenWithList\" + ExeFilename); RegistryHelp.RemoveKey(@"HKCR\SystemFileAssociations\audio\OpenWithList\" + ExeFilename);
RegistryHelp.RemoveValue(@"HKLM\SOFTWARE\RegisteredApplications", "mpv.net"); RegistryHelp.RemoveValue(@"HKLM\SOFTWARE\RegisteredApplications", "mpv.net");
foreach (string id in Registry.ClassesRoot.GetSubKeyNames()) foreach (string id in Registry.ClassesRoot.GetSubKeyNames())

View File

@@ -3,29 +3,22 @@ using System;
using System.Threading; using System.Threading;
using System.Windows; using System.Windows;
using WinForms = System.Windows.Forms;
using MsgBoxEx; using MsgBoxEx;
public class Msg public class Msg
{ {
public static void ShowInfo(object title) public static void ShowInfo(object msg) => Show(msg, MessageBoxImage.Information);
{
Show(title, MessageBoxImage.Information);
}
public static void ShowError(object title) public static void ShowError(object msg) => Show(msg, MessageBoxImage.Error);
{
Show(title, MessageBoxImage.Error);
}
public static void ShowWarning(object title) public static void ShowWarning(object msg) => Show(msg, MessageBoxImage.Warning);
{
Show(title, MessageBoxImage.Warning);
}
public static MessageBoxResult ShowQuestion(object title, public static MessageBoxResult ShowQuestion(object msg,
MessageBoxButton buttons = MessageBoxButton.OKCancel) MessageBoxButton buttons = MessageBoxButton.OKCancel)
{ {
return Show(title, MessageBoxImage.Question, buttons); return Show(msg, MessageBoxImage.Question, buttons);
} }
public static void ShowException(Exception exception) public static void ShowException(Exception exception)
@@ -34,17 +27,16 @@ public class Msg
} }
public static MessageBoxResult Show( public static MessageBoxResult Show(
object title, object msg,
MessageBoxImage img, MessageBoxImage img,
MessageBoxButton buttons = MessageBoxButton.OK, MessageBoxButton buttons = MessageBoxButton.OK,
string details = null) string details = null)
{ {
MessageBoxResult fn() MessageBoxResult fn()
{ {
string msg = title?.ToString().TrimEx();
MessageBoxEx.DetailsText = details; MessageBoxEx.DetailsText = details;
string windowTitle = System.Windows.Forms.Application.ProductName; return MessageBoxEx.OpenMessageBox((msg ?? "").ToString().Trim(),
return MessageBoxEx.OpenMessageBox(msg, windowTitle, buttons, img); WinForms.Application.ProductName, buttons, img);
} }
ApartmentState state = Thread.CurrentThread.GetApartmentState(); ApartmentState state = Thread.CurrentThread.GetApartmentState();

View File

@@ -1,5 +1,4 @@
 
using mpvnet;
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
@@ -14,6 +13,8 @@ using System.Windows.Interop;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using mpvnet;
namespace MsgBoxEx namespace MsgBoxEx
{ {
public partial class MessageBoxEx : Window, INotifyPropertyChanged public partial class MessageBoxEx : Window, INotifyPropertyChanged
@@ -377,7 +378,7 @@ namespace MsgBoxEx
if (DelegateObj != null) if (DelegateObj != null)
{ {
Style style = (Style)(this.FindResource("ImageOpacityChanger")); Style style = (Style)(FindResource("ImageOpacityChanger"));
if (style != null) if (style != null)
{ {