Ecrire clef base de registre

morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 - 24 août 2003 à 13:49
 Dav6215 - 24 juil. 2004 à 04:23
alors j ai deja chercheé sur la msdn mais j ai rien compris donc pas la peine d aller me dire "gna gna gna msdn" ;)
j aimerait savoir la syntaxe exacte svp pour ecrire une clef dans HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run afin qu un programme nomé programme.exe se lance à chaque demarage... merci d avance
++

24 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 14:01
void InsertInitWindows(BOOL bIns)
{
char szThis[300], szValue[] = "bnuRappels";
HKEY hKey;
DWORD dwDispo;
if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, 0, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, 0, &hKey, &dwDispo) != ERROR_SUCCESS) return;
if(bIns) {
GetModuleFileName(NULL, szThis, 300); strcat(szThis, " s");
RegSetValueEx(hKey, szValue, 0, REG_SZ, (const unsigned char*)szThis, strlen(szThis));
}
else RegDeleteValue(hKey, szValue);
RegCloseKey(hKey);
}

Si tu ne peux pas comprendre MSDN, faut commencer par maitriser le C sinon tu n'avanceras pas.
BruNews, ciao...
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 14:04
c où que tu met "programme.exe" ??
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 14:07
j aimerait lancer automatiquement programme.exe qui se situe dans : C:\Program Files\prog\programme.exe comment faire svp ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 14:13
Puree mais tu abuses un peu, faut que je t'ecrive ton prog complet ?
Je te fournis exemple en 1 fonction prete a l'emploi, tu ne peux pas compiler cela dans un mini exemple et aller voir le resultat avec regedit ?
Si tu ne comprends pas les params, je repete: ETUDIE le C.
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 16:00
je veu po que tu m ecrive mon prog complet, juste la fonction pour ecrire la clef dans la base de registre c tout :(
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
24 août 2003 à 18:25
Je veux pas faire le rabajoie, mais tu c'est que Windows s'occupe déja de ça. Tu met un raccourci dans le répertoire démarrage du menu démarrer et ton exe est lancer automatiquement.... Alors ne t'exite plus la dessus si tu as du mal avec le registre.
a+
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 18:38
oui mais nan moi je veu que ce soit le programme qui crée la clef pour le lancer automatiquement sinon ça sert a rien de faire un programme aussi pendant qu on y est
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 19:16
Bon, voila du tout mache. Tu passes en param le nom du prog qui doit se lancer OU ALORS tu passes ZERO pour le retirer de la cle 'RUN'.

void InsertInitWindows(char *pszprog)
{
char szValue[] = "morgan1";
HKEY hKey;
if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, 0)) return;
if(pszprog) RegSetValueEx(hKey, szValue, 0, REG_SZ, (BYTE*)pszprog, strlen(pszprog));
else RegDeleteValue(hKey, szValue);
RegCloseKey(hKey);
}

BruNews, ciao...
0
cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
24 août 2003 à 19:30
Peite explication du code de brunews si t'as po compris (dites moi si je me trompe kk part)
void InsertInitWindows(BOOL bIns)
{
char szThis[300]/*va contenir le chemin d'acces du programme*/, szValue[] = "bnuRappels";/*nom de la valeur que l'on va inscrite dans la colonne "nom" de la base de registre*/
HKEY hKey;
DWORD dwDispo;
 if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &dwDispo) != ERROR_SUCCESS) return;
if(bIns) {
GetModuleFileName(NULL, szThis, 300);/*On recupere le chemin d'acces du programme que l'on stocke dans szThis*/
strcat(szThis, " s");//euh???? on rajoute s
RegSetValueEx(hKey, szValue, 0, REG_SZ, (const unsigned char*)szThis, strlen(szThis));/*on "set" la valeur: ici le nom est "bnuRappels", le type "REG_SZ soit une chaine" et la valeur "szThis qui contient le chemin d'acces (genre c:\nomdupro.exe s"*/
}
else RegDeleteValue(hKey, szValue);//pour supprimer la cle
RegCloseKey(hKey);
}

Bon voila en esperant t'avoir aidé et ne m'etre pas trompe.
Bye,Xentor609
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 19:40
strcat(szThis, " s");//euh???? on rajoute s
Parce que je lui ai fait un copier coller d'un truc qui devait savoir (grace au param 's') s'il etait lance a la main ou depuis le 'RUN'.
BruNews, ciao...
0
cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
24 août 2003 à 19:42
ah ok, je trouvais bizarre aussi.
Bye,Xentor609
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 19:43
eu je capte pas c quoi "morgan1" et je ne voit pas où mettre le chemin du programme ( c:\programmes\programme.exe )
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 19:50
ah ok merci mais par contre le chemin du programme à mettre dans RUn est different du programme qui ecrit dans la base de registre donc pour
GetModuleFileName(NULL, szThis, 300);/*On recupere le chemin d'acces du programme que l'on stocke dans szThis*/
c pas bon
comment faire pour indiquer un chemin different ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 août 2003 à 19:54
Tu vas me faire avoir une crise, faut lire la 1ere ligne:
"Tu passes en param le nom du prog" !!!!!!!!!!
C'est pourtant clair.

Demo installation dans 'RUN' :
InsertInitWindows("c:\\programmes\\programme.exe");

Demo suppression de 'RUN':
InsertInitWindows(0);

Et ne regarde plus ce qu'il y a dans la fonction, tu t'en sers et BASTA.
BruNews, ciao...
0
cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
24 août 2003 à 19:59
c'est tres simple, si tu connais le chemin d'acces du prog que tu veux mettre dans run suffit juste de faire:
.../tout le tralala avant sauf le getmodulefilename
char szValue[]="Nom du prog";
char szProg[]="C:\\Program Files\\prog\\programme.exe "
RegSetValueEx(hKey, szValue, 0, REG_SZ, (const unsigned char*)szProg, strlen(Prog));

Voila,
Bye,Xentor609
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 20:22
bon alors j ai fait:

void InsertInitWindows(BOOL bIns);
{

char szThis[300];
char szValue[]="programme";
char szProg[]="C:\\programmes\\programme.exe";
HKEY hKey;
DWORD dwDispo;
if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &dwDispo) != ERROR_SUCCESS) return;
if(bIns) {
strcat(szThis, " s");//euh???? on rajoute s

RegSetValueEx(hKey, szValue, 0, REG_SZ, (const unsigned char*)szProg, strlen(Prog));
}
else RegDeleteValue(hKey, szValue);//pour supprimer la cle
RegCloseKey(hKey);

}

et à la compilation j ai:

`return' with no value, in function returning non-void

`bIns' undeclared (first use this function)

`Prog' undeclared (first use this function)
0
cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
24 août 2003 à 20:26
void InsertInitWindows(BOOL bIns)//y'a pas de ;
{

char szThis[300];
char szValue[]="programme";
char szProg[]="C:\\programmes\\programme.exe";
HKEY hKey;
DWORD dwDispo;
if(RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0, 0, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &hKey, &dwDispo) != ERROR_SUCCESS) return;
if(bIns) {
strcat(szThis, " s");//euh???? on rajoute s

RegSetValueEx(hKey, szValue, 0, REG_SZ, (const unsigned char*)szProg, strlen(szProg));
}
else RegDeleteValue(hKey, szValue);//pour supprimer la cle
RegCloseKey(hKey);

}

Bye,Xentor609
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 20:28
oué ben rien qu en enlevant ";" ça me fait 22 erreurs à la compilation...
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 21:18
tu veut pas me montrer la source entiere du programme pour qu il marche stp ? :sad)
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
24 août 2003 à 21:20
ça marche pas j ai des erreurs à la compilation
0
Rejoignez-nous