Come verificare se l'utente attualmente connesso utilizza il profilo di roaming?
-
05-07-2019 - |
Domanda
Come posso verificare se l'utente corrente sta usando il profilo di roaming?
Esiste una libreria di framework .net che può aiutare?
Soluzione
Credo che l'unico modo per farlo sia chiamare la funzione di shell Win32 GetProfileType . Dovresti usare P / Invoke per effettuare la chiamata e quindi controllare il valore out del parametro pdwFlags per PT_ROAMING (che ha il valore di 2).
Non vedo una firma di esempio per questa funzione su pinvoke.net ma con una firma così semplice:
BOOL WINAPI GetProfileType(
DWORD *pdwFlags
);
La creazione di uno non sarebbe difficile.
Altri suggerimenti
[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
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow