Как установить и зарегистрировать приложение при запуске реестра для автоматического запуска с правами не администратора - PullRequest
1 голос
/ 14 февраля 2012

У меня есть приложение, которое регистрирует себя для запуска реестра Windows следующим образом:

RegistryKey rk1 = Registry.LocalMachine.OpenSubKey(
       "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
var value1 = rk1.GetValue(KeyName);
if(value1 == null)
    rk1.SetValue(KeyName, KeyValue);


RegistryKey rk2 = Registry.LocalMachine.OpenSubKey(
       "Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", true);
var value2 = rk2.GetValue(KeyName);
if(value2 == null)
    rk2.SetValue(KeyName, KeyValue);

Я устанавливаю приложение с правами администратора и хочу автоматически запускать его при каждом входе в систему со всеми пользователями, но сВ этой реализации приложение не запускается при входе ограниченного числа пользователей, так что вы предлагаете?

Редактировать:

с правами администратора все работает отлично, но с ограниченнымиПользователь приложение никогда не запускалось.

1 Ответ

1 голос
/ 14 февраля 2012

Первое, что вы должны сделать, это написать в файл какое-нибудь сообщение (это называется журналирование), чтобы понять, почему ваше приложение не работает.
Если вы напишите в журнал «Приложение запущено» в самом начале, вы сможете понять, работает ли оно (поэтому просмотрите более поздние сообщения, чтобы понять, где оно останавливается) или нет.
Не используйте (как в вашем комментарии) каталог, в котором ваш exe остается для входа, потому что он не может быть доступен для записи для ограниченных пользователей.
Попробуйте это:

string fname = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicatio‌​nData),
    "your_app_name", "log.txt"); 
File.AppendAllText(fname, "Started");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...