Добавление ярлыка в автозагрузку - C#
Формулировка задачи:
Здравствуйте, добавляю свою программу в автозагрузку таким способом:
Но это работает не на всех ОС, или срабатывает не всегда, возможно что-то блокирует, например антивирус.
Помню решал эту проблему добавлением ярлыка программы в ручную в папку автозагрузки, папку открывал командой shell:startup, т.к. этот путь разный на разных ОС, есть необходимость получать этот путь в программе и добавлять туда ярлык программно. Как это можно сделать?
Листинг программы
- public bool SetAutorunValue(bool autorun)
- {
- string name = Path.GetFileNameWithoutExtension(Application.ExecutablePath); //Имя программы которую нужно добавить (без exe)
- string ExePath = System.Windows.Forms.Application.ExecutablePath;
- RegistryKey reg;
- reg = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\");
- try
- {
- if (autorun)
- reg.SetValue(name, ExePath);
- else
- reg.DeleteValue(name);
- reg.Close();
- }
- catch
- {
- return false;
- }
- return true;
- }
- //Вызов функции
- SetAutorunValue(true); } //Добавить в автозагрузку
- SetAutorunValue(false); } //Убрать автозагрузку
Решение задачи: «Добавление ярлыка в автозагрузку»
textual
Листинг программы
- using System;
- using Microsoft.Win32.TaskScheduler;
- class Program
- {
- static void Main(string[] args)
- {
- // Get the service on the local machine
- using (TaskService ts = new TaskService())
- {
- // Create a new task definition and assign properties
- TaskDefinition td = ts.NewTask();
- td.RegistrationInfo.Description = "Does something";
- // Create a trigger that will fire the task at this time every other day
- td.Triggers.Add(new DailyTrigger { DaysInterval = 2 });
- // Create an action that will launch Notepad whenever the trigger fires
- td.Actions.Add(new ExecAction("notepad.exe", "c:\\test.log", null));
- // Register the task in the root folder
- ts.RootFolder.RegisterTaskDefinition(@"Test", td);
- // Remove the task we just created
- ts.RootFolder.DeleteTask("Test");
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д