Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Автозагрузка проги в Windows XP sp3 [D2005, XP]


Страницы:   1 2 3

Aleks ©   (2011-11-16 14:09:00) 

Написал прогу напоминалку. Хочу чтобы пользователь мог добавить ее в автозагрузку при желании. Использую вариант с внесением в папку "Автозагрузка" ОС(лучше варианта с реестром,так-как в Виндовс 7,для доступа к ключу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run нужны права администратора). Код такой:

procedure addAutoRun(const filename:string);
var
 Folder: array[0..255] of Char;
 List: PitemidList;
 lnk,sd : String;
begin
 lnk := ChangeFileExt(filename,'.lnk');
 SHGetSpecialFolderLocation(0,CSIDL_STARTUP,List);
 FillChar(Folder, SizeOf(Folder), 0);
 SHGetPathFromIDList(List, @Folder);
 GetDir(0,sd);
 ChDir(folder);
   CreateLink(filename,lnk,'','');
   CopyFile(PChar(lnk), PChar(ChangeFileExt(ExtractFileName(lnk),'')+'.lnk'), true);
   DeleteFile(lnk);
 ChDir(sd);
end;

addAutoRun(Application.ExeName);

Программа успешно добавляется в автозагрузку,но при загрузке Windows XP вылетает приблизительно такое окно с ошибкой: " is not valid integer value. Если вручную перетянуть пусковой файл на Пуск-Автозагрузка и перегрузить ПК,то программа запускается без ошибок. Ручной запуск происходит тоже без ошибок. Видимо собака зарыта в процедуре внесения в автозагрузку,но где не понятно :(


Андреевич   (2011-11-17 13:18:00) [21]


> он не знает ничего о ярлыке, потому как его создал не он,
>  а твоя мегасуперпрога...

зато операционка знает и покажет в случае чего :)
какая разница как создан ярлык вручную или прогой, юзер что вспомнит что он его там делал? а через месяц? а через пять? :)


Dennis I. Komarov   (2011-11-17 13:12:00) [22]


> значит ярлык останется и его можно будет удалить :)

он не знает ничего о ярлыке, потому как его создал не он, а твоя мегасуперпрога...


Dennis I. Komarov   (2011-11-17 13:11:00) [23]


> еще как уместна, пользователь потому и пользователь, что
> не обязан всего знать, именно поэтому компьютер сейчас в
> доме встречается не реже микроволновки, потому что за пользователя
> думает производитель не обязывая первого перед эксплуатацией
> читать талмуды на 1000 листов.

Не путай пользователя с администратором или программистом, которые в твоей аналогии и должны менять задний мост уазика. Тут подходит "как ближний свет включить", а не мост чинить...

> как снес?

Ну вот так, взял и удалил твой EXE, ZIP чего там еще...


Андреевич   (2011-11-17 13:10:00) [24]


> delete кнопкой :)

значит ярлык останется и его можно будет удалить :)


OW   (2011-11-17 13:09:00) [25]


> как снес?

а как можно снести

> portable :)
> можно даже без паспаковки из архива

?

delete кнопкой :)


Андреевич   (2011-11-17 13:00:00) [26]


> Через неделю надоела - снес к чертям.

как снес?


Андреевич   (2011-11-17 12:59:00) [27]


> кто анзип умеет юзать - тот уже почти профессор :)

ладно, скажем иначе - portable :)
можно даже без паспаковки из архива


Dennis I. Komarov   (2011-11-17 12:59:00) [28]

Простой пример:
Пользователь взял твою софтину, поюзал ее, при этом поставил твой заветный чекбокс. Через неделю надоела - снес к чертям. Откуда он должен узнать про хитрый ярлык в папке "Автозагрузка"?


Андреевич   (2011-11-17 12:58:00) [29]


> С того, что он пользователь. И не надо тут мух с котлетами
> мешать... Аналогия не уместна.

еще как уместна, пользователь потому и пользователь, что не обязан всего знать, именно поэтому компьютер сейчас в доме встречается не реже микроволновки, потому что за пользователя думает производитель не обязывая первого перед эксплуатацией читать талмуды на 1000 листов.


> Пользователю об этом ничего не известно...

разумеется известно, почему нет? написано же - "запускать со стартом системы", значит все известно. Конечно же там код добавления в автозагрузку тем методом который необходим в данный момент.


OW   (2011-11-17 12:57:00) [30]


> unzip - установка? :)

кто анзип умеет юзать - тот уже почти профессор :)
ему кнопка в интерморде для автозагрузке не нада


Dennis I. Komarov   (2011-11-17 12:53:00) [31]


> с чего бы это "положено"? а ты знаешь как заменить задний
> мост на уазике? а обязан ты это знать будучи водителем уазика,
>  а не его механиком?

С того, что он пользователь. И не надо тут мух с котлетами мешать... Аналогия не уместна.

> конечно же нет, этот чекбокс добавляет прогу в автозагрузку.
>  никаких тайн.

Пользователю об этом ничего не известно...


Андреевич   (2011-11-17 12:48:00) [32]


> Имхо, если только при установке

какой установке? unzip - установка? :)


Андреевич   (2011-11-17 12:48:00) [33]


> Вот из-за таких удобств они и не знают то, что им знать
> положено.

с чего бы это "положено"? а ты знаешь как заменить задний мост на уазике? а обязан ты это знать будучи водителем уазика, а не его механиком?

> А что делает этот чекбокс покрыто тайнами машинного кода.
> .. т.е.

конечно же нет, этот чекбокс добавляет прогу в автозагрузку. никаких тайн.


> Anatoly Podgoretsky ©   (17.11.11 12:17) [18]
> > Андреевич  (17.11.2011 11:54:16)  [16]
>
> В ХР она доступна из меню, только перетаскивать лучше с
> помощью ALT

что, наводить на пуск, потом рыскать в меню пока не раскроется нужный пункт? при этом возюкая мышкой с зажатой кнопкой и альтом? это удобнее чем сознательно нажать кнопку в ПО производящую туже самую операцию в один клик?


OW   (2011-11-17 12:44:00) [34]

Имхо, если только при установке
отказался/согласился от/на  автозапуска

а потом такая фишка совсем не нужна.


Anatoly Podgoretsky   (2011-11-17 12:17:00) [35]

> Андреевич  (17.11.2011 11:54:16)  [16]

В ХР она доступна из меню, только перетаскивать лучше с помощью ALT


Dennis I. Komarov   (2011-11-17 12:05:00) [36]


> А устанавливал программу Вася Пупкин с улицы

И что?


> Тем что он требует нажатия шифта и контрола, плюс открытие
> папки автозагрузки, и надо знать где она есть. А можно нажать
> одну кнопку в программе, поставить один чекбокс. Удобство
> очевидно.

Вот из-за таких удобств они и не знают то, что им знать положено. А что делает этот чекбокс покрыто тайнами машинного кода... т.е. [12]


> ничто не мешает быть юзеру администратором, а метод добавления
> в автозагрузку выбирает разработчик. Пока папка "автозагрузка"
> тоже неплохо с этим справляется

Обычно сисадмин этому мешает, и правильно делает...


Андреевич   (2011-11-17 11:54:00) [37]


> Чем способ "перетащить удерживая Shift + Ctrl" менее удобен?
>  А вот универсален он будет для любой программы. Плюс пользователь
> это делает осознано.

Тем что он требует нажатия шифта и контрола, плюс открытие папки автозагрузки, и надо знать где она есть. А можно нажать одну кнопку в программе, поставить один чекбокс. Удобство очевидно.


> Для администратора и с записью в реестр.

ничто не мешает быть юзеру администратором, а метод добавления в автозагрузку выбирает разработчик. Пока папка "автозагрузка" тоже неплохо с этим справляется


Anatoly Podgoretsky   (2011-11-17 11:43:00) [38]

> Dennis I. Komarov  (17.11.2011 10:44:14)  [14]

А устанавливал программу Вася Пупкин с улицы


Dennis I. Komarov   (2011-11-17 10:44:00) [39]


> отнюдь, во многих программах в настройках есть пункт "добавить
> в автозагрузку" (если ей это необходимо), где можно быстро
> и удобно добавить/удалить программу из автозагрузки.

Т.е. в программах, в своем интерфейсе каждой, где-то есть волшебная галочка. Чем способ "перетащить удерживая Shift + Ctrl" менее удобен? А вот универсален он будет для любой программы. Плюс пользователь это делает осознано .


> во многих программах в настройках есть пункт "добавить в
> автозагрузку"

Для администратора и с записью в реестр.


antonn   (2011-11-17 10:29:00) [40]


> баловство, порождающее проблемы...

отнюдь, во многих программах в настройках есть пункт "добавить в автозагрузку" (если ей это необходимо), где можно быстро и удобно добавить/удалить программу из автозагрузки. Пора бы уже вылезти из каменного века :)


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо