Modification d'une valeur de la base de registre
Bonjour,
Dans le cadre d'un projet, je désire modifier la variable « path » de Windows pour rendre un exécutable disponible depuis la console sans avoir à aller dans le répertoire d'installation.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <Windows.h>
#include <stdio.h>
int main(int argc, char **argv)
{
HKEY hKey;
char *path;
char *path_exec;
path = malloc(600 * sizeof(*path));
path_exec = malloc(256 * sizeof(*path_exec));
path = getenv("path");
path_exec = ";C:\\test";
path = strcat(path, path_exec);
printf("Path = %s\n", path);
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", 0, KEY_ALL_ACCESS, &hKey ) == ERROR_SUCCESS )
{
printf("Reussi \n");
/*****Ouverture a réussi *****/
if( RegSetValueEx(hKey,"path", 0, REG_SZ, path, lstrlen(path)) == ERROR_SUCCESS )
{
/*****Modification réussi, Fermeture de la clé*****/
RegCloseKey( hKey );
}
}
else
{
printf("DOWN\n");
}
getchar();
free(path);
free(path_exec);
return (EXIT_SUCCESS);
} |
1) Ouverture de la clé de registre ne fonctionne pas
2) La fonction attends un paramètre de type BYTE et la je sais pas trop,
Byte = Char ou plutôt Byte = unsigned char;
Merci pour votre aide.