Доступ к ключам реестра из .dll в C # - PullRequest
0 голосов
/ 01 сентября 2018

Окружающая среда, которую я использую, может показаться немного запутанной, поэтому я постараюсь объяснить это в лучшем случае. Я делаю экспериментальные вещи с Электроном. Прямо сейчас у меня есть простой .dll, написанный на C # с использованием .NET Standard 2.0 в качестве основы. Со стороны Electron, я использую Electron-Edge-Js, который, я думаю, прекрасно работает, потому что я могу общаться с ними обоими.

Итак, основной процесс выглядит так, Я строю свой код C #, чтобы получить мои .dll (я также добавляю ссылки DLL). Поместив их в одну папку с проектом Electron. Начинаем проект, чтобы посмотреть, как они это сделали.

Проблема заключается в коде .dll. Я использую следующий простой код,

 public string RegisterUser(string username, string userkey) {
            try {
                RegistryKey key;
                if (Microsoft.Win32.Registry.CurrentUser == null) return "Current user is null";
                key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Test\TestFunctions");
                if (key == null) return "Key is null";
                key.SetValue("uid", username);
                key.SetValue("upsw", userkey);
                key.Close();
                return "Done";
            } catch (Exception e) {
                return e.ToString();
            }
        }

Однако всякий раз, когда я вызываю этот метод, он всегда возвращает «Текущий пользователь нулевой», несмотря ни на что. Я попытался собрать свой .exe и запустить его от имени администратора. Я также проверил привилегии в Regedit. Все они кажутся в порядке. У меня трудное время для такого простого кода. Небольшая помощь была бы удивительной, спасибо!

...