![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автозагрузка проги в Windows XP sp3 [D2005, XP]
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]
> баловство, порождающее проблемы...
отнюдь, во многих программах в настройках есть пункт "добавить в автозагрузку" (если ей это необходимо), где можно быстро и удобно добавить/удалить программу из автозагрузки. Пора бы уже вылезти из каменного века :)