Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автозапуск 
:(
    Опции темы
pauker
Дата 24.4.2008, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 24.3.2008

Репутация: нет
Всего: нет



Возможно ли сделать программно, чтобы при первом запуске приложение прписывалось в автозапуск - и потом запускалось при каждом входе в винду или это нужно делать при создании инсталлятора?
PM MAIL   Вверх
Freak_FB
Дата 24.4.2008, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 2
Всего: 4



Можно и в инсталяторе.
А можно и самому проверить ключ в реестре, который за автозагрузку отвечает:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Fox21
Дата 24.4.2008, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



Автозапуск программы в C#

  В этой статье мы напишем программу, которая будет добавлять себя в автозапуск Windows, с помощью реестра. Для этого нам понадобятся минимальные умения работы с реестром в C# и утилита regedit (Пуск->Выполнить->regedit), которая позволяет просматривать древовидную структуру реестра Windows.
  Чтобы программа запускалась при загрузке Windows, необходимо создать ключ реестра в ветке реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" названием ключа будет имя нашей программы, а значением - путь к исполняемому файлу программы.
  В C# за работу с реестром отвечает класс Microsoft.Win32.Registry, а за работу с ключами - Microsoft.Win32.RegistryKey. Перед тем как писать код, давайте создадим новый проект и положим на него 2 кнопки "Добавить" (будет создавать ключ в реестре) и "Удалить" (удаляет ключ). В обработчике для кнопки "Добавить" пишем: 
  Microsoft.Win32.RegistryKey myKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
  myKey.SetValue("MyProgram", Application.ExecutablePath);
  Теперь нажимаем кнопку "Добавить", запускаем regedit, добираемся до ветки Run и проверяем - если ключ создан, то можем перезагружать компьютер и наша программа запустится при загрузке Windows. Следует отметить что в качестве параметров функции SetValue первым является название ключа. А вот второй параметр - это путь к исполняемому файлу нашей программы.
  Часто возникает вопрос "Откуда запущена программа?", ответ довольно прост:
Application.ExecutablePath - возвращает путь и имя исполняемого файла.
Application.StartupPath - возвращает путь к исполняемому файлу.
  Вот в качестве второго параметра мы и передаем ExecutablePath, который сохраняет путь и имя нашей программы в реестре.
  Для удаления ключа, в обработчике нажатия кнопки, пишем такой несложный код: 
  Microsoft.Win32.RegistryKey myKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
  myKey.DeleteValue("MyProgram");
  Код достаточно прост. Стоит отметить что мы указываем наименование ключа, который нужно удалить из текущей ветки реестра. Опять-таки запускаем regedit и проверяем - ключ удалился. Для того чтобы обновить список ключей в regedit нажимаем F5.
  Вот такие несложные строки кода, позволяют программистам добавлять свои программы в автозапуск smile
  После прочтения этой статьи, вы знаете как сделать автозапуск программы. 


Автор: DeVoid
Сайт: http://devoid.com.ua/
Статья написана: 04 ноября 2007
PM MAIL   Вверх
pauker
Дата 24.4.2008, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 24.3.2008

Репутация: нет
Всего: нет



Вроде верно все делаю:

Microsoft.Win32.RegistryKey myKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
        myKey.SetValue("Start", @"С:Program Files\project\start.exe");

И в реестре встает на место, но при перезагрухке start.exe не работает!!! ???
PM MAIL   Вверх
Freak_FB
Дата 24.4.2008, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 13.10.2006

Репутация: 2
Всего: 4



Я конечно могу ошибаться (даже ересью попахивает), но может имеет смысл назвать ключ как нибудь иначе, а не start?


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
Fox21
Дата 24.4.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



  Microsoft.Win32.RegistryKey myKey =
               Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", true);
               myKey.SetValue("Любое_имя", Application.ExecutablePath);
И если  поменять  потом имя(не удалив  предварительно  ключ , то  будет  данное приложение запущено  дважды после презагруски)

Это сообщение отредактировал(а) Fox21 - 24.4.2008, 08:52
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.