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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 23:54   #1
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию Проблемы с автозапуском (реестр)

Прописываю свою программу в HKEY_LOCAL_MACHINE Software\Microsoft\Windows\CurrentV ersion\Run
Программа при старте запускается, но не работает, у меня консольное приложение, которое выполняет ряд действий и создает хтмл файл с отчетом, так вот отчет не появляется! Если руками запустить программу, то все норм.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 01.05.2009, 10:44   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Может быть надо пути к используемым файлам указывать с помощью
Код:
ExtractFilePath(Application.ExeName)+
, если к ним конечно есть обращение.
Shouldercannon вне форума Ответить с цитированием
Старый 01.05.2009, 10:49   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,855
По умолчанию

Цитата:
отчет не появляется
Ключевой вопрос в том, где должен появиться отчёт?
Arigato вне форума Ответить с цитированием
Старый 01.05.2009, 15:12   #4
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Ключевой вопрос в том, где должен появиться отчёт?
программа состоит из экзешника и .ini файла в ini файле указывается путь куда ложить отчеты, по дефолту это диск C:/

приложил саму программу, она дожна лежать в C:\Program Files\WinLogs\
так как в реестр пропишет путь C:\Program Files\WinLogs\WinLogs.exe

На диске С надо создать папку Reports либо изменить путь в ини файле
Вложения
Тип файла: zip WinLogs.zip (66.2 Кб, 13 просмотров)
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 01.05.2009, 15:54   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,855
По умолчанию

Приведите кусок кода, где идёт сохранение отчёта в файл.
Arigato вне форума Ответить с цитированием
Старый 01.05.2009, 16:20   #6
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Если руками запустить программу, то все норм.
Если запускать прогу не напрямую(экзешник, ярлык с указанием рабочей папки), то папка в которой находится экзешник не будет текущей, поэтому, в FormActivate пропишите:
Код:
chdir(ExtractFilePath(Application.ExeName));
Обычно, если в проге есть файловый ввод\вывод, всегда при активации приложения делаю текущую директорию, ту в которой находится экзешник.

Последний раз редактировалось Gorychev; 01.05.2009 в 16:29.
Gorychev вне форума Ответить с цитированием
Старый 01.05.2009, 19:54   #7
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

у меня консольное приложение...боюсь этот код не покатит...может библиотеки какие подключить?
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 01.05.2009, 20:26   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,855
По умолчанию

Цитата:
.боюсь этот код не покатит
Вы пока что не привили ни какого кода. Говорить не о чем.
Arigato вне форума Ответить с цитированием
Старый 01.05.2009, 21:34   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от [Smarik] Посмотреть сообщение
у меня консольное приложение...боюсь этот код не покатит...может библиотеки какие подключить?
Код:
ExtractFilePath(Paramstr(0))
а вот попробуйте
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.05.2009, 22:26   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Пример с ini логом
Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
h: TRegistry;
begin
    h := TRegistry.Create;
    with h do
    begin
    h.RootKey := HKEY_LOCAL_MACHINE;
    h.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', true);
    if sCheckBox1.Checked = true then
    begin
    h.WriteString('Project1', 'C:\Program Files\Project1\Project1.exe');
    end
    else
    begin
    if CheckBox1.Checked = false then
    h.DeleteKey('Project1');
    h.DeleteValue('Project1');
    h.CloseKey;
    h.Free;
  end;
  end;
  end;
при создании формы пишем:
Код:
procedure TForm1s.FormCreate(Sender: TObject);
var F: TIniFile;
begin
  F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'param.ini');
CheckBox1.Checked := F.ReadBool('AutoRun Project1', 'Enabled:', false);
F.Destroy;
end;
при закрытии формы пишем:
Код:
procedure TForm1.FormDestroy(Sender: TObject);
var
  F: TIniFile;
begin
F := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'param.ini');
F.WriteBool('AutoRun Project1', 'Enabled:', CheckBox1.Checked);
F.Free;
end;
Не забываем подключить модули: Registry и IniFiles.

Последний раз редактировалось beegl; 02.05.2009 в 10:15. Причина: исправил текст, и добавил текст
beegl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр BioS Win Api 6 01.12.2008 19:52
Реестр EVO-X Win Api 2 14.07.2008 20:19
Реестр Volkogriz Общие вопросы Delphi 5 01.05.2008 21:23
Реестр GAGARIN-NEW Свободное общение 2 06.01.2008 11:31
Проблема с автозапуском! FAiver Общие вопросы Delphi 2 10.08.2007 09:05