Я уже вкратце вспоминал в предыдущей статье о добавлении программы в автозагрузку , но так как у Windows 8 такой способ не катит я решил написать отдельный пост.
Вы наверняка знаете чтобы программа запускалась при старте системы необходимо создать дополнительный ключ в ветке реестра "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", в которой название ключа реестра будет имя нашей программы, а значение это путь к исполняемому файлу программы.
Давайте разберем первый пример осуществления поставленной перед нами задачи:
Тогда мне коллеги посоветовали попробовать добавить манифест к программе и немножко его изменить, но увы у меня ничего хорошего с этого не вышло.
После этого я зашел в MSDN снова открыл класс RegistryKey для роботы с реестром, и начал пробовать) Через некоторое время у меня получилась новая функция которая добавляет ключ в реестре для авто запуска программ и получает true или false в зависимости от того что ей нужно сделать (удалить или добавить ключ). Смотрите следующий код:
P.S. вторая функция работает на xp, vista,7 и 8.
Вот и все! Вкратце описал как что работает! Если будут какие то вопросы, предложения или что та еще относящееся к данной теме пишите не стесняйтесь!
Удачи в ПРОграммирование!
Вы наверняка знаете чтобы программа запускалась при старте системы необходимо создать дополнительный ключ в ветке реестра "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", в которой название ключа реестра будет имя нашей программы, а значение это путь к исполняемому файлу программы.
Давайте разберем первый пример осуществления поставленной перед нами задачи:
private void Autorun()Вроде ничего сложного здесь нет, тело функции я заключил в оператор if который проверяет активность check.Box_a, и если он активен тогда добавляем программу в реестр в противном случае удаляем с реестра. На xp, vista, 7 эта функция прекрасно работает, а Windows 8 надает доступ к реестру.
{
if (checkBoxAutoran.Checked == true)
{ //открываем нужную нам ветку реестра
Microsoft.Win32.RegistryKey Key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", true);
//добавляем соответственные параметры
Key.SetValue("Имя программы", "\\Имя_программы.exe");
Key.Close();
}
else
{ //удаляем с реестра
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.DeleteValue("Имя программы", false);
key.Close();
}
}
Тогда мне коллеги посоветовали попробовать добавить манифест к программе и немножко его изменить, но увы у меня ничего хорошего с этого не вышло.
После этого я зашел в MSDN снова открыл класс RegistryKey для роботы с реестром, и начал пробовать) Через некоторое время у меня получилась новая функция которая добавляет ключ в реестре для авто запуска программ и получает true или false в зависимости от того что ей нужно сделать (удалить или добавить ключ). Смотрите следующий код:
public bool Autorun(bool autorun)Как здесь все работает: переменная Browse получает путь до исполняемого файлу, далее идет открытия нужной ветки реестра ну и проверка нашего чекбокча.
{
string Browse= System.Windows.Forms.Application.ExecutablePath;
RegistryKey regKay;
reg = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\");
try
{
if (checkBoxAutoran.Checked == autorun)
regKay.SetValue("Имя программы", Browse);
else
regKay.DeleteValue("Имя программы");
regKay.Close();
}
catch
{
return false;
}
return true;
}
P.S. вторая функция работает на xp, vista,7 и 8.
Вот и все! Вкратце описал как что работает! Если будут какие то вопросы, предложения или что та еще относящееся к данной теме пишите не стесняйтесь!
Удачи в ПРОграммирование!
Я уже вкратце вспоминал в предыдущей статье о добавлении программы в автозагрузку , но так как у Windows 8 такой способ не катит я решил написать отдельный пост.
Вы наверняка знаете чтобы программа запускалась при старте системы необходимо создать дополнительный ключ в ветке реестра "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", в которой название ключа реестра будет имя нашей программы, а значение это путь к исполняемому файлу программы.
Давайте разберем первый пример осуществления поставленной перед нами задачи:
Тогда мне коллеги посоветовали попробовать добавить манифест к программе и немножко его изменить, но увы у меня ничего хорошего с этого не вышло.
После этого я зашел в MSDN снова открыл класс RegistryKey для роботы с реестром, и начал пробовать) Через некоторое время у меня получилась новая функция которая добавляет ключ в реестре для авто запуска программ и получает true или false в зависимости от того что ей нужно сделать (удалить или добавить ключ). Смотрите следующий код:
P.S. вторая функция работает на xp, vista,7 и 8.
Вот и все! Вкратце описал как что работает! Если будут какие то вопросы, предложения или что та еще относящееся к данной теме пишите не стесняйтесь!
Удачи в ПРОграммирование!
Вы наверняка знаете чтобы программа запускалась при старте системы необходимо создать дополнительный ключ в ветке реестра "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", в которой название ключа реестра будет имя нашей программы, а значение это путь к исполняемому файлу программы.
Давайте разберем первый пример осуществления поставленной перед нами задачи:
private void Autorun()Вроде ничего сложного здесь нет, тело функции я заключил в оператор if который проверяет активность check.Box_a, и если он активен тогда добавляем программу в реестр в противном случае удаляем с реестра. На xp, vista, 7 эта функция прекрасно работает, а Windows 8 надает доступ к реестру.
{
if (checkBoxAutoran.Checked == true)
{ //открываем нужную нам ветку реестра
Microsoft.Win32.RegistryKey Key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\", true);
//добавляем соответственные параметры
Key.SetValue("Имя программы", "\\Имя_программы.exe");
Key.Close();
}
else
{ //удаляем с реестра
Microsoft.Win32.RegistryKey key =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.DeleteValue("Имя программы", false);
key.Close();
}
}
Тогда мне коллеги посоветовали попробовать добавить манифест к программе и немножко его изменить, но увы у меня ничего хорошего с этого не вышло.
После этого я зашел в MSDN снова открыл класс RegistryKey для роботы с реестром, и начал пробовать) Через некоторое время у меня получилась новая функция которая добавляет ключ в реестре для авто запуска программ и получает true или false в зависимости от того что ей нужно сделать (удалить или добавить ключ). Смотрите следующий код:
public bool Autorun(bool autorun)Как здесь все работает: переменная Browse получает путь до исполняемого файлу, далее идет открытия нужной ветки реестра ну и проверка нашего чекбокча.
{
string Browse= System.Windows.Forms.Application.ExecutablePath;
RegistryKey regKay;
reg = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\");
try
{
if (checkBoxAutoran.Checked == autorun)
regKay.SetValue("Имя программы", Browse);
else
regKay.DeleteValue("Имя программы");
regKay.Close();
}
catch
{
return false;
}
return true;
}
P.S. вторая функция работает на xp, vista,7 и 8.
Вот и все! Вкратце описал как что работает! Если будут какие то вопросы, предложения или что та еще относящееся к данной теме пишите не стесняйтесь!
Удачи в ПРОграммирование!
0 коммент.:
Отправить комментарий