![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автозапуск в реестре. [D7, XP]
AlexeyIII © (2010-03-31 09:29:00)Здравствуйте. Объясните пожалуйста непонятную мне ситуацию. Нужно добавить программу в автозапуск. Использую ветку реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Она ведь для этого и предназначена?
Пишу в нее так:
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('Software',true);
Reg.OpenKey('Microsoft',true);
Reg.OpenKey('Windows',true);
Reg.OpenKey('CurrentVersion',true);
Reg.OpenKey('Run',true);
Reg.WriteString('mycoolproga',Application.ExeName);
Reg.CloseKey;
Reg.Free;
При запуске выдает: Failed to set data for 'mycoolproga' и ничего не пишет. Если делать так:
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
Reg.WriteString('mycoolproga',Application.ExeName);
Reg.CloseKey;
finally
Reg.Free;
inherited;
end;
То происходит тоже самое. Так же и если писать в HKLM
Я на машине под учеткой админа. D7 WinXPSP3
Подскажите плис, что происходит?
Цукор5 (2010-04-01 17:01:00) [1]Я так делал :
if CheckBox1.Checked then
AddShortcut(GetAutorunLinkPath) else ...
//
procedure AddShortcut(const Path: string);
begin
if not FileExists(Path) then
begin
CreateLink(Application.ExeName, Path, sDescr);
end;
end;
procedure CreateLink(
const Path: string;
const LinkPath: string;
const Description: string);
var
Link: IShellLink;
begin
Link := CreateComObject(CLSID_ShellLink) as IShellLink;
OleCheck(Link.SetPath(PChar(Path)));
OleCheck(Link.SetDescription(PChar(Description)));
OleCheck((Link as IPersistFile).Save(PWideChar(WideString(LinkPath)), True));
end;
function GetAutorunLinkPath: string;
begin
Result := IncludeTrailingPathDelimiter(GetSpecialFolder(CSIDL_STARTUP))
+ sName;
end;
Anatoly Podgoretsky (2010-04-01 14:17:00) [2]> GrayFace (01.04.2010 13:29:07) [7]
Ручками, только так, но если и здесь К встрянет, то сделать ему харакири. Нафиг нужна программа с подлянками. Есть же много нормальных программ, в том числе и бесплатных.
GrayFace (2010-04-01 13:29:00) [3]AlexeyIII (31.03.10 9:29)
Reg.OpenKey('Software',true);
Reg.OpenKey('Microsoft',true);
Reg.OpenKey('Windows',true);
Reg.OpenKey('CurrentVersion',true);
Reg.OpenKey('Run',true);
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
Плохиш © (31.03.10 14:27) [6]
Давить дерьмопрогу.
Каспера. Добавление в автозапуск можно делать и культурно, в настройках.
Плохиш (2010-03-31 14:27:00) [4]
> Нужно добавить программу в автозапуск.
Давить дерьмопрогу.
KSergey (2010-03-31 11:48:00) [5]> Дмитрий Белькевич (31.03.10 11:08) [4]
Кто виноват?!
Дмитрий Белькевич (2010-03-31 11:08:00) [6]Я знал, я знал! Это всё глюки каспера, делфи и винды.
Игорь Шевченко (2010-03-31 10:58:00) [7]AlexeyIII (31.03.10 09:40) [1]
Во падла
Anatoly Podgoretsky (2010-03-31 09:49:00) [8]> AlexeyIII (31.03.2010 09:40:01) [1]
Во падла.
AlexeyIII (2010-03-31 09:40:00) [9]Всем спасибо. Разобрался:)
Оказывается Касперский втихаря блокирует запись в ветки автозапуска.