Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2007, 16:34   #1
PROGR
Пользователь
 
Аватар для PROGR
 
Регистрация: 12.05.2007
Сообщений: 19
По умолчанию Автозапуск

Подскажите как добавить программу в автозапуск, не пользуясь системным реестром!?
PROGR вне форума Ответить с цитированием
Старый 14.10.2007, 16:59   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Поместить в папку Автозагрузки.
Alex21 вне форума Ответить с цитированием
Старый 14.10.2007, 19:14   #3
PROGR
Пользователь
 
Аватар для PROGR
 
Регистрация: 12.05.2007
Сообщений: 19
По умолчанию

А как сделать это программно???
PROGR вне форума Ответить с цитированием
Старый 14.10.2007, 19:33   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Например:
Цитата:
CopyFile
Syntax

BOOL CopyFile(LPCTSTR lpszExistingFile, LPCTSTR lpszNewFile, BOOL fFailIfExists)
Между прочим, тоже из хелпа. Научимся когда-нибудь встроенным хэлпом пользоваться?
mihali4 вне форума Ответить с цитированием
Старый 17.10.2007, 18:30   #5
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Немного не правильный ответ т.к. если программа будет использовать еще какие-то файлы(типа настроек программы, базы данных, т.е. которые должны находиться в папке с программой), то и их придется копировать в автозагрузки, поэтому предлгаю такой вариант:
Код:
 
uses ShellApi;
....
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
SLink := IObject as IShellLink;
PFile := IObject as IPersistFile;
with SLink do begin
SetArguments(PChar(Param));
SetDescription(PChar(Desc));
SetPath(PChar(PathObj));
end;
PFile.Save(PWChar(WideString(PathLink)), FALSE);
end;
Hollander вне форума Ответить с цитированием
Старый 17.10.2007, 18:54   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Hollander Посмотреть сообщение
Немного не правильный ответ т.к. если программа будет использовать еще какие-то файлы(типа настроек программы, базы данных, т.е. которые должны находиться в папке с программой), то и их придется копировать в автозагрузки
А вы собираетесь копировать сами файлы???
В папку автозагрузки нужно копировать ярлык для программы, а не ее саму!
Цитата:
Вот именно в своем коде я скопировал только ярлык
В общем, не совсем поняли друг друга...
Я упомянул только метод копирования...

Последний раз редактировалось mihali4; 18.10.2007 в 18:20.
mihali4 вне форума Ответить с цитированием
Старый 18.10.2007, 17:34   #7
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Вот именно в своем коде я скопировал только ярлык
Hollander вне форума Ответить с цитированием
Старый 18.10.2007, 19:55   #8
PROGR
Пользователь
 
Аватар для PROGR
 
Регистрация: 12.05.2007
Сообщений: 19
По умолчанию

Спасибо за помощь тему можно закрывать!!!
PROGR вне форума Ответить с цитированием
Старый 26.12.2007, 08:54   #9
Ярослав
Пользователь
 
Аватар для Ярослав
 
Регистрация: 14.11.2007
Сообщений: 74
Вопрос

Цитата:
Hollander
Код:
 
uses ShellApi;
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
SLink := IObject as IShellLink;
PFile := IObject as IPersistFile;
with SLink do begin
SetArguments(PChar(Param));
SetDescription(PChar(Desc));
SetPath(PChar(PathObj));
end;
PFile.Save(PWChar(WideString(PathLink)), FALSE);
end;
uses что добавить?
вот ошибки:
Цитата:
[Error] Unit1.pas(26): Undeclared identifier: 'IShellLink'
[Error] Unit1.pas(27): Undeclared identifier: 'IPersistFile'
[Error] Unit1.pas(29): Undeclared identifier: 'CreateComObject'
[Error] Unit1.pas(29): Undeclared identifier: 'CLSID_ShellLink'
[Error] Unit1.pas(30): Operator not applicable to this operand type
[Error] Unit1.pas(31): Operator not applicable to this operand type
[Error] Unit1.pas(33): Undeclared identifier: 'SetArguments'
[Error] Unit1.pas(34): Undeclared identifier: 'SetDescription'
[Error] Unit1.pas(35): Undeclared identifier: 'SetPath'
[Error] Unit1.pas(37): Missing operator or semicolon
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
Как сделать процедуру: procedure CreateLink
Цитата:
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
mihali4
Цитата:
Цитата:CopyFile
Syntax
BOOL CopyFile(LPCTSTR lpszExistingFile, LPCTSTR lpszNewFile, BOOL fFailIfExists)
О пишите что делает функция.
Каждый из нас в чём-то новичок

Последний раз редактировалось Ярослав; 26.12.2007 в 09:07.
Ярослав вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозапуск, Delphi north Помощь студентам 19 06.08.2009 15:48
Как добавить в автозапуск? AngelOfDeath Win Api 4 19.05.2008 10:55
Автозапуск zzzzz Общие вопросы Delphi 2 12.11.2007 08:54
Автозапуск для USB Flashdisk! nur Помощь студентам 4 14.05.2007 07:23
автозапуск effluent Безопасность, Шифрование 7 19.04.2007 20:12