Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Запуск приложения при загружке windows


Автор: Elfet 24.12.2006, 20:59
Как поставить на автозапуск приложение при загрузке windows?  smile 

Автор: ivashkanet 24.12.2006, 21:40
Elfet, вариантов много:

1) реестр
Цитата

Автозагрузка программ через реестр 
В этом разделе, вы можете удалить из реестра информацию об автоматически загружаемых программах при старте системы.

Список автоматически загружаемых программ разделен на два раздела:
программы, запускаемые только для текущего пользователя

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

и программы, запускаемые для всех пользователей

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Дальше докапаешь smile

2) Поместить ярлык программы в Пуск -> программы --> Автозагрузка

Это навскидку smile

Автор: juravel 24.12.2006, 21:57
Elfet, вариантов много:

1) реестр

Цитата

Цитата 

Автозагрузка программ через реестр 
В этом разделе, вы можете удалить из реестра информацию об автоматически загружаемых программах при старте системы.

Список автоматически загружаемых программ разделен на два раздела:
программы, запускаемые только для текущего пользователя

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

и программы, запускаемые для всех пользователей

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
 


Дальше докапаешь 

2) Поместить ярлык программы в Пуск -> программы --> Автозагрузка

Это навскидку 

А как зделать, чтоби програма залезла в реєстр и поставила себя на автозагрузку?
 smile 

Автор: Elfet 24.12.2006, 21:57
Цитата(ivashkanet @  24.12.2006,  22:40 Найти цитируемый пост)
реестр

А где можно почитать по работу с реестром?

Автор: ivashkanet 24.12.2006, 22:08
Поиск по форуму:
http://forum.vingrad.ru/index.php?showtopic=111114&hl=%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80
http://forum.vingrad.ru/index.php?showtopic=123777&hl=%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80
http://forum.vingrad.ru/index.php?showtopic=103373&hl=%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80

Там еще много smile

Автор: DarkDragon 24.12.2006, 22:41
А еще можно спланировать задачу для wind'ы, с флажком старт при входе в винду.

С реестром ни каких проблем:
Код

            Microsoft.Win32.RegistryKey rkey = Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.ClassesRoot, Environment.MachineName); // Открываем главную ветвь, и поехали.
            rkey = rkey.OpenSubKey("SOFTWARE");
            rkey = rkey.OpenSubKey("Microsoft");
            rkey = rkey.OpenSubKey("Windows");
            rkey = rkey.OpenSubKey("CurrentVersion");
            rkey = rkey.OpenSubKey("Run", true); // Просим разрешение на запись в ветвь
            rkey.CreateSubKey("..."); // Ну и чаго то записываем.
            rkey.Close(); // Закрываем ключ.
// Возможно так. Но не уверен.
            rkey = rkey.OpenSubKey(@"SOFTWARE\Windows\CurrentVersion\Run");


Автор: juravel 24.12.2006, 22:44
Спасибо, DarkDragon  smile 

Автор: Kvazilol 24.12.2006, 23:00
  rkey.CreateSubKey("..."); // Ну и чаго то записываем.

а сюда записываем путь к запускаемому приложению? C:\itsme.exe 
?

Автор: Naum 25.12.2006, 10:57
Цитата(DarkDragon @  24.12.2006,  23:41 Найти цитируемый пост)
 rkey.CreateSubKey("..."); // Ну и чаго то записываем.

Добавляет новый ключ. А нам нужно новое значение.
Код

rkey.SetValue("MyAutorunApp","C:\\itsme.exe");

Цитата(DarkDragon @  24.12.2006,  23:41 Найти цитируемый пост)
Microsoft.Win32.RegistryKey rkey = Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.ClassesRoot, Environment.MachineName); // Открываем главную ветвь, и поехали.

Ну и тут конечено не ClasserRoot, а LocalMachine или CurentUser.

Автор: Laprado 25.12.2006, 20:10
Можно забубухать запуск метода из dll, который в свою очередь запустит что там вам надо  smile 

Автор: DarkDragon 25.12.2006, 22:48
Цитата(Naum @  25.12.2006,  10:57 Найти цитируемый пост)

Добавляет новый ключ. А нам нужно новое значение.

Сам туда не лазил, но подумал что нужен ключ smile Сам вообще то создаю ярлык приложения и запихиваю его в автозапуск дерикторию. В реестре много не шарю smile

Цитата(Naum @  25.12.2006,  10:57 Найти цитируемый пост)
Ну и тут конечено не ClasserRoot, а LocalMachine или CurentUser.

Реально я не туда, куда надо пошел smile 

Автор: Naum 26.12.2006, 10:25
DarkDragon, у автозапуска через реестр, и чере ярлык в автозапуске есть свои плюсы и минусы. Мне, например, нравится, что в реестре особо никто не видит, но зато если приложение удалить, ярлык в автозапуске скажет, что не может найти объект и т.п., реестр же будет молчать, но время при загрузке винды немного увеличиться, потому каждый раз будет попытка запустить это удаленное приложение.

Автор: Elfet 26.12.2006, 19:33
http://www.codeproject.com/useritems/StartupItem.asp

Автор: DarkDragon 26.12.2006, 23:04
 smile 
Цитата(Naum @  26.12.2006,  10:25 Найти цитируемый пост)
но время при загрузке винды немного увеличиться


Naum, а я то думаю че он тормозно рзапускается. Надо бы стряпать утилиту, пускай при загрузки винды сама просматривает локальную машину и пользователя, на существования ярлыков, чьи программы давно каюк smile Ну и делить их, Делить smile 

Автор: Naum 27.12.2006, 10:45
 smile 
Цитата(DarkDragon @  27.12.2006,  00:04 Найти цитируемый пост)
Надо бы стряпать утилиту

Их уже настряпано, а толку. Реестр дело тонкое, DarkDrakon. Причем, как я заметил хуже всего с ним общаются MS приложения. Иногда такое ощущение, что этот реестр им в Винду написали какие-то хакеры, а MS об этом даже ничего не знают.  smile 
Кстати, где-то я слыхал, что они хотят от него избавляться. 

Автор: ivashkanet 27.12.2006, 10:46
Товарищи, прекращаем оффтоп.
Хотите это обсудить --- в отдельную тему  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)