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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2008, 22:49   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
Восклицание реестр

Подскажите код что бы одна программа при своем закрытии
прописала бы в реестр на автозагрузку другую программу
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.02.2008, 00:10   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Можешь сделать так:

Uses
Registry, ...


Procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Var
RegIni:TregIniFile;
Begin
RegIni:=TregIniFile.Create('Softwar e');
RegIni.RootKey:=HKEY_LOCAL_MACHINE;
RegIni.OpenKey('SOFTWARE\Microsoft\ Windows\CurrentVersion',True);
RegIni.WriteString('Run','ssrc.exe' ,'C:\1.exe');
RegIni.Free;
End;

Где 'ssrc.exe' - это имя параметра в реестре, а 'C:\1.exe' - путь к проге которую хочешь записать в автозагрузку.
Всегда рад помочь!

Последний раз редактировалось Terran; 11.02.2008 в 00:13.
Terran вне форума Ответить с цитированием
Старый 11.02.2008, 06:55   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Может так всетаки лучше и понятнее и нагляднее:

Uses Registry, ...

....
var
Run:tregistry;
begin
Run:=TRegIniFile.Create();
Run.RootKey:=HKEY_Local_Machine;
Run.OpenKey('Software\Microsoft\Win dows\CurrentVersion\Run', true);
Run.WriteString('propiska', 'C:\propiska.exe');
Run.Free;
end;


'propiska' - параметр (у тебя он будет называться так, как сам захочешь)
'C:\propiska.exe' - путь к программе, он у тебя будет тоже другой


Можно вообщето было и в другие места прописать, но и так пойдет...
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 11.02.2008 в 06:58.
Лубышев вне форума Ответить с цитированием
Старый 11.02.2008, 10:17   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

А если я не знаю путь куда распакуют мою программу или диск другой
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 11.02.2008, 10:37   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Че эт ты его не знаешь?
Знаешь - ExtractFilePath(paramstr(0));

И вообще по хорошему нужно инсталятором такие веши делать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.02.2008, 17:19   #6
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Путь к проге можно узнать так Application.ExeName
или так: ParamStr(0) или через API вот так:GetCommandLine

для Application.ExeName нужен модуль forms Чаще всего он присутствует, но бывают исключения
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 11.02.2008, 17:25   #7
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Вот, господа готовый код

uses
Registry;
...

var
Run:Tregistry;

begin
Run:=TRegIniFile.Create();
Run.RootKey:=HKEY_Local_Machine;
Run.OpenKey('Software\Microsoft\Win dows\CurrentVersion\Run', true);
Run.WriteString('Proga', ParamStr(0)); // Прописка программы в автозапуске
Run.Free;
end;
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 11.02.2008, 20:17   #8
Istergul
Подтвердите свой е-майл
 
Регистрация: 25.01.2008
Сообщений: 16
По умолчанию

лично у меня почему-то програмно ничего в реестре не прописывается( я даже не знаю почему(
Istergul вне форума Ответить с цитированием
Старый 11.02.2008, 20:47   #9
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Вот этот работает

Reg := TRegistry.Create;
Reg.RootKey := hkey_current_user;
Reg.OpenKey('software\microsoft\win dows\currentversion\run',true);
Reg.WriteString('Project1.exe',Appl ication.ExeName);
Reg.CloseKey;
Reg.Free;
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 12.02.2008, 00:00   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от Михаил Юрьевич Посмотреть сообщение
Вот этот работает

Reg := TRegistry.Create;
Reg.RootKey := hkey_current_user;
Reg.OpenKey('software\microsoft\win dows\currentversion\run',true);
Reg.WriteString('Project1.exe',Appl ication.ExeName);
Reg.CloseKey;
Reg.Free;
То что Вы здесь написали, это:
1. Прописывает в автозагрузку только для текущего пользователя
2. Прописывает в автозагрузку Вашу программу, а не чужую!
3. "Project1.exe" не очень красивое имя ключа.
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр JRcoker Общие вопросы Delphi 12 12.09.2008 19:14
Реестр и C++ Лубышев Помощь студентам 1 12.03.2008 08:28
Реестр Teen4jump Общие вопросы Delphi 2 28.02.2008 10:17
Реестр GAGARIN-NEW Свободное общение 2 06.01.2008 11:31