Files
mpv.net/mpv.net/WPF/SetupWindow.xaml.cs
Frank Skare 42b0cc1a64 5.4.4.2
2020-03-20 01:22:26 +01:00

64 lines
2.4 KiB
C#

using System;
using System.Diagnostics;
using System.Windows;
using WinForms = System.Windows.Forms;
namespace mpvnet
{
public partial class SetupWindow : Window
{
public SetupWindow() => InitializeComponent();
void RegisterFileAssociations(string value)
{
try
{
using (Process proc = new Process())
{
proc.StartInfo.FileName = WinForms.Application.ExecutablePath;
proc.StartInfo.Arguments = "--reg-file-assoc " + value;
proc.StartInfo.Verb = "runas";
proc.Start();
}
Process.Start("ms-settings:defaultapps");
} catch {}
}
void RegisterVideo_Click(object sender, RoutedEventArgs e) => RegisterFileAssociations("video");
void RegisterAudio_Click(object sender, RoutedEventArgs e) => RegisterFileAssociations("audio");
void RegisterImage_Click(object sender, RoutedEventArgs e) => RegisterFileAssociations("image");
void UnregisterFileAssociations_Click(object sender, RoutedEventArgs e) => RegisterFileAssociations("unreg");
void AddToPathEnvVar_Click(object sender, RoutedEventArgs e)
{
string var = WinForms.Application.StartupPath + ";";
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User);
if (path.Contains(var))
Msg.ShowWarning("Path was already containing mpv.net.");
else
{
Environment.SetEnvironmentVariable("Path", var + path, EnvironmentVariableTarget.User);
Msg.Show("mpv.net was successfully added to Path.", (var + path).Replace(";","\n"));
}
}
void RemoveFromPathEnvVar_Click(object sender, RoutedEventArgs e)
{
string var = WinForms.Application.StartupPath + ";";
string path = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.User);
if (path.Contains(var))
{
Environment.SetEnvironmentVariable("Path", path.Replace(var, ""), EnvironmentVariableTarget.User);
Msg.Show("mpv.net was successfully removed from Path.");
}
else
Msg.ShowWarning("Path was not containing mpv.net.");
}
}
}