Newsgroup: it.comp.lang.delphi
Titolo: Una dritta sull'esecuzione automatica!

Se voglio mettere un mio programma in esecuzione automatica, ma non nel menu
avvio\programmi\esecuzione automatica come faccio?
C'č modo tramite REG?
Ciao e grazie...

 Ciao e grazie...
Premetto che non ho mai avuto la necessità di fare una cosa del genere ma,
mettendo una nuova stringa in
\hkey_local_machine\software\microsoft\windows\currentversion\run\
oppure
\hkey_local_machine\software\microsoft\windows\currentversion\service\
e inserendo come valore il path del prog dovresti ottenere il risultato sperato.
By Enri'S
P.S. Se non sei sicuro di quello che stai facendo, ti conviene fare una copia
del registro (tutto). Non si sa mai!
--
"Sono convinto che l'informatica abbia molto in comune con la fisica.
Entrambe si occupano di come funziona il mondo a un livello abbastanza
fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire
come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del
computer, sei tu il creatore. Controlli - almeno potenzialmente - tutto ciò che
vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala."
  Linus Torvalds.

 \hkey_local_machine\software\microsoft\windows\currentversion\service\
La seconda chiave non c'è su WinXP.
Altro modo è quello di mettere una riga
run = tuoprog.exe
nel file win.ini sotto la voce [boot]
o nel file system.ini la riga
device = tuoprog.exe
sotto la voce [386enh].
Esistono modi più subdoli, tipo sfruttare le voci di registro che caricano
alcuni OCX o DLL di Windows, ma non le conosco bene... e in ogni caso
il tuo prog dovrebbe usare delle tecniche da "quasi virus".

\hkey_local_machine\software\microsoft\windows\currentversion\run\
oppure
\hkey_local_machine\software\microsoft\windows\currentversion\service\
Come faccio a fare cio' dal codice?
Come posso creare una mia chiave e assegnargli un valore?
Io ho provato cosě ma non succede proprio niente!!
Sicuramente ci saranno errori, non ho familiaritŕ con il REG, AIUTATEMI!
procedure TForm1.Button1Click(Sender: TObject);
var
nameKey : string;
Reg : TRegistry;
begin
  try
   nameKey :=
'hkey_local_machine\software\microsoft\windows\currentversion\run\';
   Reg := TRegistry.Create;
   Reg.OpenKey(nameKey,true);
   Reg.CreateKey('\MIACHIAVE');
   Reg.WriteString(nameKey,'Miovalore');
  finally
   Reg.Free;
  end;
 end;
end.
Forse mi manda il Reg.SAVEKEY, bo, non saprei...!

 Forse mi manda il Reg.SAVEKEY, bo, non saprei...!
Prova a fare in questo modo, non l'ho testato (lo stavo facendo oggi ma
l'enel si prendeva gioco di me), ma dovrebbe funzionare.
Ciao
        By Enri'S


 Ciao e grazie...
Prova questo.
procedure TForm1.Button1Click(Sender: TObject);
var
 nameKey : string;
 Reg : TRegistry;
 begin
  nameKey :='\software\microsoft\windows\currentversion\run\'; //solo il path
della chiave
  Reg := TRegistry.Create;
  try // quì è già meglio
  Reg.RootKey := HKEY_LOCAL_MACHINE; //setto la rootkey
  Reg.OpenKey(nameKey,true);
  //non serve creare un'altra chiave, basta solo la stringa con il valore
  Reg.WriteString('MyApplication','Miovalore'); //dove miovalore è il path
  finally
   Reg.CloseKey;//chiudo la chiave
   Reg.Free;
   end;
end;


Ho risolto tutto!!!!
Ma adesso mi serve l'istruzione per togliere la chiave, ho provato con
DELETEKEY ma non funziona, non da' nessun errore ma non cancella la chiave,
sapete ome si fa'?