Прокомментировать код, работающий с Microsoft.Win32.Registry - C#
Формулировка задачи:
Доброе всем время суток! помогите кто шарит в этой теме.Если не сложно коментами ).
И Вопрос №2 как установить проверку внесено ли уже данное в Registry для того чтоб не отрабатывать код при каждом запуске программы)
Огромное спс кто откликнется !
public class FileAssociation
{
const string FILE_EXTENSION = ".DrW";
public static void Associate(string description, string icon)
{
Registry.ClassesRoot.CreateSubKey(FILE_EXTENSION).SetValue("", Application.ProductName);
if (Application.ProductName != null && Application.ProductName.Length > 0)
{
using (RegistryKey key = Registry.ClassesRoot.CreateSubKey(Application.ProductName))
{
if (description != null)
key.SetValue("", description);
if (icon != null)
key.CreateSubKey("DefaultIcon").SetValue("", ToShortPathName(icon));
key.CreateSubKey(@"Shell\Open\Command").SetValue("", ToShortPathName(Application.ExecutablePath) + " \"%1\"");
}
}
}
public static bool IsAssociated
{
get { return (Registry.ClassesRoot.OpenSubKey(FILE_EXTENSION, false) != null); }
}
public static void Remove()
{
Registry.ClassesRoot.DeleteSubKeyTree(FILE_EXTENSION);
Registry.ClassesRoot.DeleteSubKeyTree(Application.ProductName);
}
[DllImport("Kernel32.dll")]
private static extern uint GetShortPathName(string lpszLongPath, [Out]StringBuilder lpszShortPath, uint cchBuffer);
private static string ToShortPathName(string longName)
{
StringBuilder s = new StringBuilder(1000);
uint iSize = (uint)s.Capacity;
uint iRet = GetShortPathName(longName, s, iSize);
return s.ToString();
}Решение задачи: «Прокомментировать код, работающий с Microsoft.Win32.Registry»
textual
Листинг программы
key.CreateSubKey(@"Shell\Open\Command").SetValue("", ToShortPathName(Application.ExecutablePath) + " \"%1\"");