Когда я пытаюсь связать расширение файла с моей программой, почему я получаю эту ошибку?
<pre>public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription) { RegistryKey BaseKey; RegistryKey OpenMethod; RegistryKey Shell; RegistryKey CurrentUser; BaseKey = Registry.ClassesRoot.CreateSubKey(Extension); BaseKey.SetValue("", KeyName); OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName); OpenMethod.SetValue("", FileDescription); OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0"); Shell = OpenMethod.CreateSubKey("Shell"); Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\""); Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\""); BaseKey.Close(); OpenMethod.Close(); Shell.Close(); // Delete the key instead of trying to change it CurrentUser = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.ucs", true); CurrentUser.DeleteSubKey("UserChoice", false);// ERROR HERE System.NullReferenceException object reference not set to an instant of an object CurrentUser.Close(); // Tell explorer the file association has been changed SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero); } [DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);
Что я уже пробовал:
я отлаживаю программу в Visual Studio после щелчка правой кнопкой мыши на visual studio и выбора запуска от имени администратора.
Richard MacCutchan
Это также поможет ты если вы введете в свой код правильную проверку ошибок.
john1990_1
смотрите ниже пожалуйста
Richard MacCutchan
Что?
john1990_1
пожалуйста, посмотрите, что я прокомментировал в ответ
Richard MacCutchan
Не понимаю, какое это имеет отношение к моему предложению. Независимо от того, являетесь ли вы любителем или профессионалом, вы должны использовать все функции, которые облегчают вам жизнь. А ловить нулевые ссылки - это самое основное.