На нашем сайте вы найдете множество статей на разные тематики, а так же сможете найти и скачать много интересного Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
я нашёл где-то в нете код прописывания программы в автозагрузке: procedure TForm1.FormCreate(Sender: TObject); var reg: tregistry; begin reg := tregistry.create; reg.rootkey := hkey_local_machine; reg.lazywrite := false; reg.openkey('software\microsoft\windows\currentversion\run', false); reg.closekey; reg.free; end; Объясните плизз смысл кода и как убрать программу из авто запуска?
procedure TForm1.FormCreate(Sender: TObject); var h : TRegistry; // Переменная для занесения программы в реестр begin h := TRegistry.Create; // Заносим программу в автозагрузку реестра h.RootKey:=HKEY_CURRENT_USER;// Это раздел реестра в который будет добавлена программа h.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);//это путь по которому открывается нужный раздел реестра h.WriteString('nameprog',Application.ExeName); //nameprog- название программы которую нужно добавить в автозагрузку h.CloseKey; // закрытие раздела реестра h.Free;//Освобождение пременной end;
Для удаления программы из реестра, нужно заменить строчку: h.WriteString('nameprog',Application.ExeName);
на h.DeleteValue('nameprog');
Только у меня код чуть чуть другой... Но смысл и в том и в другом случае одинаков Сайт посвященный программированию в среде Delphi. Вопросы по Delphi и HTML на форуме
Сообщение отредактировал AiX2011 - Вторник, 02.08.2011, 23:08
где 'nameprog' я поменял на 'clooc' и происходит краш, вот какую ошибку выдаёт :External excaption C0000008 а вот без этой строчки:h.WriteString('nameprog',Application.ExeName); всё работает, только проблема удаления из автозапуска
эмм.... а попробуй намепрог оставить, а апликашон эксе найм заменить на клок только в ковычках Сайт посвященный программированию в среде Delphi. Вопросы по Delphi и HTML на форуме
не получается, ошибку выдает, а если программа уже в автозапуске есть и я ещё пытаюсь ее туда добавить, может быть из-за этого ошибки выходят? если да то как проверить программа есть в автозапуске или нет. вопрос снят я просто забыл после условия begin и end написать
Добавлено (14.08.2011, 20:35) --------------------------------------------- начал тестить прогу и почему-то из автозагрузки не удаляется
Сообщение отредактировал Firs - Воскресенье, 14.08.2011, 19:27
private { Private declarations } public { Public declarations } end; const c='âíèìàíèå ïðîãðàììà áóäåò àâòîìàòè÷åñêè çàïóñêàòñÿ ïðè âõîäå â ñèñòåìó'; b='âíèìàíèå ïðîãðàììà íå áóäåò àâòîìàòè÷åñêè çàïóñêàòñÿ ïðè âõîäå â ñèñòåìó';
var Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.CheckBox1Click(Sender: TObject); var h: tRegisTry; f: textfile; a: string; begin a:=extractfiledir(application.ExeName); assignfile(f,a+'\àâòîçàãðóçêà.txt'); rewrite(f); if CheckBox1.state=cbChecked then begin write(f,'2'); label1.Caption:=c; end; if CheckBox1.state=cbUnchecked then begin write(f,'1'); label1.Caption:=b; end; closefile(f); form1.Memo1.Lines.LoadFromFile(a+'\àâòîçàãðóçêà.txt'); end;
procedure TForm3.FormCreate(Sender: TObject); begin if form1.Memo1.Lines.Strings[0]='1'then begin CheckBox1.state:=cbUnchecked; label1.Caption:=c; end else CheckBox1.state:=cbChecked; label1.Caption:=b; end;
end.
Сообщение отредактировал Firs - Воскресенье, 14.08.2011, 22:35
Таак, код не маленький... Дай подумать.. Я напишу если найду ошибку.. С первого взгляда все логично и ошибок нет.... Сайт посвященный программированию в среде Delphi. Вопросы по Delphi и HTML на форуме