Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прописать в автозапуск без админских прав? 
V
    Опции темы
Данкинг
Дата 15.9.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



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


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
SlaUr
Дата 15.9.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Вот готовое решение из юнита mysys 
(если не может записать как администратор - 
   записывает только для этого пользователя)

Код


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; 


Это сообщение отредактировал(а) SlaUr - 15.9.2007, 22:44
PM MAIL   Вверх
Poseidon
Дата 1.5.2008, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



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


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0656 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.