![]() |
|
|
|
|
#1
|
|||
|
|||
|
Как программно сделать так, чтобы программа запускалась вместе с windows????
|
|
#2
|
||||
|
||||
|
Самый простой способ (на мой взгляд) прописать путь к ЕХЕшнику в реестре в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Run. Создаешь строковой параметр с любым именем, и записываешь в его зачение путь к своему ЕХЕ. Работа с реестром через обьект TRegistry, в список Uses надо добавить модуль Registry.
|
|
#3
|
||||
|
||||
|
И да, доступ на запись в раздел HKEY_LOCAL_MACHINE только под учетной записью с правами админа, насколько я знаю
|
|
#4
|
||||
|
||||
|
Вот пример функции, добавляющей ЕХЕшник в автозапуск
uses Registry; function AddExeToAutoRun : Boolean; var reg : TRegistry; begin Result := False; reg := TRegistry.Create; try if reg.OpenKey('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Run', True) then begin reg.WriteString('MyEXE', ParamStr(0)); Result := True; end; finally reg.Free; end; end; Последний раз редактировалось zip000, 07.08.2007 в 01:01. |
|
#5
|
|||
|
|||
|
а куда именно вставлять эту функцию?(я в них почти не разбираюсь)
|
|
#6
|
||||
|
||||
|
А можно и без функций. Вот:
Код:
uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
if reg.KeyExists('Software\Microsoft\Windows\CurrentVersion\Run') then
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
reg.WriteString('Your Program','"'+Application.ExeName+'"');
reg.CloseKey;
reg.CloseKey;
reg.Free;
if not reg.KeyExists('Software\Microsoft\Windows\CurrentVersion\Run') then
reg.Free;
end;
end.Последний раз редактировалось Winny, 07.08.2007 в 13:53. |