Не удается скопировать файлы в Environment.SpecialFolder.Startup в WPF

Чтобы приложение запускалось в Windows, я решил добавить ярлык в папку "Автозагрузка".

Я пытался использовать:

File.Move(AppDomain.CurrentDomain.BaseDirectory + "ApplicationName.exe", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "ApplicationName.lnk");

Это работает, но он перемещает мой ярлык не в нужную мне папку.

Environment.GetFolderPath(Environment.SpecialFolder.Startup)

хорошо работает, возвращается

C:\Users\Germanov\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Но мой ярлык появляется в

C:\Users\Germanov\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

Просто 1 папка "сзади".

File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "ApplicationName.lnk");

тоже работает "странно". Он фактически удаляет этот файл, но снова не в папке "Автозагрузка".

Если я попытаюсь вручную добавить "\Startup" к пути, как это:

Environment.GetFolderPath(Environment.SpecialFolder.Startup) + @"Startup\ApplicationName.lnk"

Я получаю System.IO.Excseption.

Я не могу набрать этот путь вручную, я настроил свое приложение для работы на разных ПК с разными версиями Windows. Я также не могу использовать Registry для запуска моего приложения при запуске Windows.

Я использую Windows 7, Visual Studio 2010, .NET 4.0, это проект WPF.

Есть идеи?

2 ответа

Решение

Вы пробовали Environment.SpecialFolder.CommonStartup вместо Startup, я не знаю, почему запуск не работает по вашему требованию. Большая часть установочного пакета делает это для вас; почему ты хочешь сделать это для себя? Любая причина не для использования реестра?

Я попробовал этот код на моей машине

var startup = Environment.GetFolderPath(Environment.SpecialFolder.CommonStartup);
string file = Path.Combine(startup, "MyApp.lnk");
using (StreamWriter sw = new StreamWriter(file))
{
sw.WriteLine("Test");
}

И это идет на моем запуске

Вы должны использовать System.IO.Path.Combine(), чтобы не создавать StartupApplication1.exe. Обратите внимание на отсутствующую обратную косую черту.

Другие вопросы по тегам