Fonction aide.

Fonction aide. - C - Programmation

Marsh Posté le 13-04-2008 à 20:26:30    

Salut j'ai creer un petit programme  en  c et j'aimerais qu'il se lance a tout les demarage de la session utilisateur de windows.(Je debute en c donc soyer le plus precis possible).Alors j'ai cru comprendre que plusieur solution s'offrai a moi le mettre dans le dossier demarage ou utiliser cette fonction :
 
void addToStartup(const char *path, const char *name, bool state)
{
   HKEY key;
 
   RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &key);
 
   if(state)
       RegSetValueEx(key, name, 0, REG_SZ, (BYTE*)path, strlen(path)+1);
   else
       RegDeleteValue(key, name);
 
   RegCloseKey(key)
 
   return;
}

 
 
ATTENTION il ne faut pas oublier d'inclure windows.h  
 
 
la fonction se construit comme :
 
.path désigne le chemin d'accès à votre programme  
.name désigne le nom de votre programme  
.state est un booléen indiquant si vous voulez l'ajouter, ou le retirer de la liste de démarrage (true pour ajouter, false pour retirer).  
 
 
Comment l'utiliser si :
 
.Mon programme ce situ c:/Documents and settings/Nemesis/Bureau
.Le nom du programme est fichier.
.Et si je ve l'ajouter a la liste des demarages.
 
 
Merci d'avance pour vos reponses.
 
 
 

Reply

Marsh Posté le 13-04-2008 à 20:26:30   

Reply

Marsh Posté le 13-04-2008 à 21:03:29    

Si tu souhaites que ton programme se lance à chaque démarrage, pas besoin d'écrire du code pour que celui-ci le fasse.
 
Tu as 3 solutions :
 
 - Soit tu mets un raccourci de ton programme dans le dossier "Démarrage" du "Menu Démarrer"->"Programmes".
 - Soit tu mets le chemin complet de ton programme dans la clé [HKLM\Software\Microsoft\Windows\CurrentVersion\Run" , celui-ci se lancera au démarrage quelle que soit la session.
- Soit tu mets le chemin complet de ton programme dans la clé[HKCU\Software\Microsoft\Windows\CurrentVersion\Run" , celui-ci selancera au démarrage de la session de l'utilisateur courant.
 
(HKLM = HKEY Local Machine, HKCU = HKEY Current User).
 
 
La fonction que tu viens d'écrire ne sert pas à grand chose, si ce n'est réécrire la clé "au cas où" elle serait effacée. De plus, je n'ai pas vérifié, mais il me semble qu'à chaque démarrage de ton programme, il va recréer une nouvelle clé, vérifie que ce n'est pas le cas, sinon tu auras quelques surprises au bout de quelques redémarrages. Et dans ce cas, il faudrait avant tester si la clé n'existe pas déjà avant de la créer.
 
Cela dit, pour t'aider un peu, la variable "name" contient le nom de la clé. Tu peux mettre n'importe quoi (y compris le nom du programme), et la variable path contient par contre le chemin complet du programme.
 
Ex :si ton programme s'appelle toto.exe et qu'il se trouve dans c:\Documents And Settings\Nemesis\Bureau, tu peux choisir "toto" pour la variable "name", et "c:\Documents And Settings\Nemesis\Bureau\toto.exe" pour la variable "path"

Reply

Marsh Posté le 14-04-2008 à 17:48:42    

Merci enormement mais  il n'y a pas de code fesant la solution 2 ou 3 ? car j'aimerais que les utilisateurs n'est pas a faire ce eux meme du faite que certaine personne n'on pas assé de connaissance?

Reply

Marsh Posté le 14-04-2008 à 18:03:38    

Si ton programme n'est pas lancé au moins une fois, ça ne servira à rien.

Reply

Marsh Posté le 14-04-2008 à 18:10:27    

Oui apres qu'il est ete lancé une fois.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed