Разница между запуском программы из реестра и запуском из папки автозагрузки - PullRequest
3 голосов
/ 17 июня 2011

У нас есть простое приложение с кнопкой, которая открывает средство просмотра событий с помощью запуска процесса.

 public static void OpenWindowsEventViewer(
            string computerDnsName,
            string userName,
            SecureString password,
            string domain)
        {
            Process.Start("eventvwr.exe", computerDnsName, userName, password, domain);
        }

При запуске нашего инструмента из реестра с помощью HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run, он запускаетсяОбычно, но не удается запустить процесс «eventvwr.exe» с ошибкой: «Имя каталога неверно».

Запуск нашего инструмента с помощью папки автозапуска (Пуск-> Программы-> Автозапуск) работает отлично.

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

Редактировать: удаление SecureString заставляет его работать ...

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Может помочь следующая тема ...

Почему олицетворение процесса возвращает «Недопустимое имя каталога»?

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

Рабочий каталог является важным свойством.

1 голос
/ 17 июня 2011

Используйте полный путь к eventvwr.exe:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "eventvwr.exe")
...