Comment vérifier si l'utilisateur actuellement connecté utilise un profil itinérant?
-
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?
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