Мне надо ассоциировать программу с определёнными типами файлов. Для этого нужны права администратора.
Как сделать, чтобы при нажатии на кнопку появлялся запрос UAC и если нажали “да”, то выполнялось действие?
public static void Associate(string exe)
{
try
{
foreach (string t in supportedFileTypes)
{
string ext = t.Substring(1);
using (RegistryKey keyExtension = Registry.ClassesRoot.CreateSubKey(t))
{
keyExtension.SetValue(string.Empty, $"{ext}file");
using (RegistryKey key0 = Registry.ClassesRoot.CreateSubKey($"{ext}file"))
{
key0.SetValue(string.Empty, ext);
using (RegistryKey key = key0.CreateSubKey("shell"))
key.SetValue(string.Empty, "SIVOpen");
using (RegistryKey key = key0.CreateSubKey(@"shell\SIVOpen"))
key.SetValue(string.Empty, "Open");
using (RegistryKey key = key0.CreateSubKey(@"shell\SIVOpen\command"))
key.SetValue(string.Empty, $"\"{exe}\" \"%1\"");
}
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.StackTrace);
}
}
а потом чтобы прав больше не было.