размещение ярлыка в папке автозагрузки пользователя для запуска с Windows - PullRequest
6 голосов
/ 03 августа 2010

Я хотел дать своему пользователю опцию «Начать с Windows».Когда пользователь выберет эту опцию, он поместит ярлык в папку «Автозагрузка» (не в реестре).

При перезапуске Windows оно автоматически загрузит мое приложение.

Как это можно сделать?

Ответы [ 3 ]

11 голосов
/ 03 августа 2010

вы можете использовать перечисление Enviroment.SpecialFolder, хотя в зависимости от ваших требований вы можете взглянуть на создание службы Windows вместо приложения, которое должно запускаться при запуске.

File.Copy("shortcut path...", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + shorcutname);

редактирование:

File.Copy требуется исходный путь к файлу каталога и целевой путь к каталогу для копирования файла. Ключ в этом фрагменте - Enviroment.GetFolderPath (Enviroment.SpecialFolder.Startup), который получает путь к папке запуска, куда вы хотите скопировать файл.

Вы можете использовать приведенный выше код несколькими способами. Если у вас есть проект установки для вашего приложения, вы можете запустить что-то подобное при установке. Другой способ может быть, когда приложение запускает его, проверяет, существует ли там ярлык, и помещает его там, если нет (File.Exists ()).

Здесь - также вопрос о создании ярлыков в коде.

2 голосов
/ 02 мая 2017
WshShell wshShell = new WshShell();



            IWshRuntimeLibrary.IWshShortcut shortcut;
            string startUpFolderPath =
              Environment.GetFolderPath(Environment.SpecialFolder.Startup);

            // Create the shortcut
            shortcut =
              (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut(
                startUpFolderPath + "\\" +
                Application.ProductName + ".lnk");

            shortcut.TargetPath = Application.ExecutablePath;
            shortcut.WorkingDirectory = Application.StartupPath;
            shortcut.Description = "Launch My Application";
            // shortcut.IconLocation = Application.StartupPath + @"\App.ico";
            shortcut.Save();
0 голосов
/ 23 марта 2015
private void button2_Click(object sender, EventArgs e)
        {
            string pas = Application.StartupPath;
            string sourcePath = pas;
            string destinationPath = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup";
            string sourceFileName = "filename.txt";//eny tipe of file
            string sourceFile = System.IO.Path.Combine(sourcePath, sourceFileName);
            string destinationFile = System.IO.Path.Combine(destinationPath);

            if (!System.IO.Directory.Exists(destinationPath))
            {
                System.IO.Directory.CreateDirectory(destinationPath);
            }
            System.IO.File.Copy(sourceFile, destinationFile, true);



        }
...