Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как прописать в автозапуск без админских прав?


Автор: Данкинг 15.9.2007, 00:19
При попытке записи в автозапуск реестра выдаётся ошибка (какая именно - не помню, но суть такая, что отсутствуют права админа). При этом вручную программа в реестр почему-то вносится нормально. Вопрос: можно ли записать программу в автозапуск реестра, игнорируя отсутствие прав?
ЗЫ: это не вирус и ничего такого. smile Обычный локальный чат, который хочется сделать запускаемым автоматически.

Автор: SlaUr 15.9.2007, 22:13
Вот готовое решение из юнита http://slaur.perm.ru 
(если не может записать как администратор - 
   записывает только для этого пользователя)

Код


Function DeleteKav(St1:string):String;
begin
if St1='' then Exit;
While pos('"',St1)>0 do Delete(St1,pos('"',St1),1);
Result:=St1;
end;
 

Procedure AddProgramRun(name,Path,Parametrs:string);
var  r : TRegistry;
begin
Path:=DeleteKav(path);Path:='"'+path+'"';
if Parametrs<>'' then path:=path+' '+Parametrs;
r:=TRegistry.Create;
try
R.RootKey:=HKEY_LOCAL_MACHINE;
if R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True) then
begin
r.WriteString(name,path);
end else
begin
R.RootKey:=HKEY_CURRENT_USER;
R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
r.WriteString(name,path);
end;
Finally
R.CloseKey;
R.Free;
end;
end;

Procedure DelProgramRun(name:string);
var  r : TRegistry;
begin
r:=TRegistry.Create;
try
R.RootKey:=HKEY_LOCAL_MACHINE;
if R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True) then
if r.ValueExists(name) then r.DeleteValue(name);
R.CloseKey;
R.RootKey:=HKEY_CURRENT_USER;
if R.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True) then
if r.ValueExists(name) then r.DeleteValue(name);
R.CloseKey;
Finally
R.Free;
end;
end; 

Автор: Poseidon 1.5.2008, 01:13
А почему бы сразу не писать для этого пользователя (в HKEY_CURRENT_USER) и не лезть в HKEY_LOCAL_MACHINE?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)