ёмайо, вот это люди.. Добавление в автозапуск на один раз:
Code
procedure DoAppToRunOnce(RunName, AppName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True);
WriteString(RunName, AppName);
CloseKey;
Free;
end;
end;
Проверка, есть ли в реестре запись об автозапуске на 1 раз:
Code
function IsAppInRunOnce(RunName: string): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', False);
Result := ValueExists(RunName);
CloseKey;
Free;
end;
end;
Удаление из автозапуска на 1 раз:
Code
procedure DelAppFromRunOnce(RunName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True);
if ValueExists(RunName) then DeleteValue(RunName);
CloseKey;
Free;
end;
end;
Что делает это "на 1 раз"? Оно добавляет в реестр запись, после перезагрузки компьютера запись сама удаляется, и программа запуститься только 1 раз...
А вот на обычный автозапуск (постоянный):
Добавление в автозапуск:
Code
procedure DoAppToRun(RunName, AppName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
WriteString(RunName, AppName);
CloseKey;
Free;
end;
end;
проверка:
Code
function IsAppInRun(RunName: string): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
Result := ValueExists(RunName);
CloseKey;
Free;
end;
end;
и удаление:
Code
procedure DelAppFromRun(RunName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
if ValueExists(RunName) then DeleteValue(RunName);
CloseKey;
Free;
end;
end;
всё очень просто...
А вот пример:
Code
uses ... Registry;
...
procedure DoAppToRun(RunName, AppName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
WriteString(RunName, AppName);
CloseKey;
Free;
end;
end;
function IsAppInRun(RunName: string): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
Result := ValueExists(RunName);
CloseKey;
Free;
end;
end;
procedure DelAppFromRun(RunName: string);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
begin
RootKey := HKEY_CURRENT USER;
OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
if ValueExists(RunName) then DeleteValue(RunName);
CloseKey;
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
if IsAppInRun('Program') then
ShowMessage('Программа уже в автозапуске.')
else
DoAppToRun('Program', ExtractFilePath(ParamStr(0))+ExtractFileName(Application.ExeName) {Путь к программе});
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if IsAppInRun('Program') then
begin
DelAppFromRun('Program');
ShowMessage('Программа успешно удалена из автозапуска.');
end
else
ShowMessage('Программы нет в автозапуске!!!');
end;
Кнопка 1: добавляет в автозапуск.
Кнопка 2: Удаляет из автозапуска.
Установлена проверка.
Фуф, написал..
Добавлено (22.01.2009, 14:35)
---------------------------------------------
Quote (russer)
Меня всегдамучил вопрос можно ли убрать имконки сверху програмы ?
Можно
свойство BorderIcons у формы.
Quote (russer)
ну и последний вопрос как переименовать файл из указаной деректории тоесть к примеру перименавать опера в експлолер если файл лежит на диске с
Code
if fileexists('путь/староеимя.формат') then
renamefile('путь/староеимя.формат','путь/новоеимя.формат')
else
ShowMessage('файл не найден');