Comment vérifier si l'utilisateur actuellement connecté utilise un profil itinérant?

StackOverflow https://stackoverflow.com/questions/1200173

  •  05-07-2019
  •  | 
  •  

Question

Comment puis-je vérifier si l'utilisateur actuel utilise un profil itinérant?

Existe-t-il une bibliothèque .net qui puisse vous aider?

Était-ce utile?

La solution

Je pense que la seule façon de procéder consiste à appeler la fonction shell Win32 GetProfileType . Vous devez utiliser P / Invoke pour effectuer l'appel, puis vérifier la valeur out du paramètre pdwFlags pour PT_ROAMING (qui a la valeur 2).

Je ne vois pas d'exemple de signature pour cette fonction sur pinvoke.net mais avec une signature aussi simple:

BOOL WINAPI GetProfileType(      
    DWORD *pdwFlags
);

En créer un ne serait pas difficile.

Autres conseils

    [DllImport("Userenv.dll", EntryPoint = "GetProfileType", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern bool GetProfileType(ref uint pdwflags);

    [Flags]
    enum Win32ProfileType : uint { 
        Local=0x00,
        Temporary=0x01,
        Roaming=0x02,
        Mandatory=0x04
    }


    public void SomeTest()
    {
        uint type = 0;
        if (GetProfileType(ref type)) {
            //todo
        }
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top