none
CSIDL_APPDATA probleme avec Vista RRS feed

  • Question

  •  

    Bonjour,

    J'ai fait une application qui tourne sous XP et maintenant je modifie le code pour vista.Mon application crée des répertoires et sous répertoires avec fichiers à l'inérieur j'utilisa ce code pour le mettre dans Application Data de l'utilisateur (code donné dans les exemples de "Gambit" trouvé sur le forum internationnal.

    //////////////////////////////////////////////////

    LPITEMIDLIST List=NULL;
    AnsiString Full,Fi,FN;

    char Path[MAX_PATH+1]={0};
    if(!SHGetSpecialFolderLocation(0,CSIDL_APPDATA,&List))
            {
            if(SHGetPathFromIDList(List,Path))
                    {Fi=Path;
                    FN=societe;
                    Full=Fi+FN;
                    strcpy(Path,Full.c_str());
                    CreateDir(Full);
                    }


            }
    ChVista=Full

    ////////////////////////////////////////////////////////////////

    Donc dans ChVista j'ai bien si l'utilisateur est moi même :

    Documents and setting\Patrick\Application Data

    donc à priori c'est bon.

    Mais lorsque je lance mon programme il me mets les répertoires utilisateurs dans:

    Documents and settin\Patrick\Application Data\Roaming

    Donc mon logiciel partant de la définition plus haut de ChVista il ne trouve pas.

    J'ai bien regardé les explications sur

    LPITEMIDLIST

    Ainsi que sur ShGetSpecialFolderLocation, mais je ne comprends pas pourquoi il rajoute ce "Roaming" et comment je pourrai faire ou bien j'utilise un mauvais CSLID mais pourtant j'ai regardé.

    Merci beaucoup de m'aider car ça fait un bon moment que je suis dessus encherchant partout dans les aides et le net et je vois pas là ou je fais mal.

    Si quelqu'un a eu déja un problème de changement comme je suis obligé de faire pour vista..............je suis preneur

    Merci par avance à tous et tous vos conseils

    Patrick

    jeudi 24 janvier 2008 15:56