Hello tout le monde =)
Un problème qui me triture l'esprit en cette soirée est l'accès à une valeur du registre avec l'api win32, laquelle semble avoir décidé de me les briser vu qu'aucun code ne fonctionne de mon côté sous code::blocks, qu'il soit de moi ou pompé honteusement.
Précédemment le code suivant me renvoyait un problème de header (erreur 0x06), j'ai réglé le problème à l'aide du peu de documentation que j'ai pu trouver là-dessus, mais à présent c'est un joli rapport d'erreur qui m'arrive entre les gencives quand je veux tester mon code, qui cette fois m'envoie un code d'exception 0x05, ce qui m'étonne c'est une erreur de droit d'accès alors que je dev sous admin.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define REG_MAXLEN 2000

    HKEY    hkey = NULL;           //Déclaration handle clé registre
    char    lbuffer[REG_MAXLEN];   //Déclaration du buffer de récupération
    DWORD   lbufferlen = REG_MAXLEN;


    if((RegOpenKeyEx(HKEY_CURRENT_USER,"SessionInformation", 0, KEY_EXECUTE, &hkey)) != ERROR_SUCCESS)            //Procédure en cas d'échec
    {
        printf("\nfailed opening handle");
        EXIT_FAILURE;
    }


    //Handle ouvert
    printf("handle successfuly opened");


    if((RegQueryValueEx(hkey, "ProgramCount", NULL, NULL, (BYTE*)lbuffer, &lbufferlen)) != ERROR_SUCCESS)            //Procédure d'erreur
    {
        printf("\nfailed querying value");
        EXIT_FAILURE;
    }
EDIT : J'ai fini par trouver la solution, qui était sous mon nez d'ailleurs, au bout de la n-ème lecture de la doc msdn j'ai fini par trouver mon erreur. Désolé T_T

Par contre la doc ne dit pas vraiment sous quel format on peut récupérer les données dans ledit buffer. Je sens que déjà c'est pas dans un char comme j'ai fait et que ça ressemble plus à un type propre à l'api, pour le cas actuel je me retrouver avec de jolis symboles dans mon shell ou une valeur hexa qui a rien à voir avec les 3 applis en cours.