Como verificar se o usuário conectado no momento está usando o perfil de roaming?
-
05-07-2019 - |
Pergunta
Como posso verificar se o usuário atual está usando o perfil de roaming?
Existe alguma biblioteca do .NET Framework que pode ajudar?
Solução
Eu acredito que a única maneira de fazer isso é para chamar a função Win32 shell GetProfileType . Você precisa usar P / Invoke para fazer a chamada e, em seguida, verificar o valor fora do parâmetro pdwFlags para PT_ROAMING (que tem o valor de 2).
Eu não vejo uma assinatura de amostra para esta função pinvoke.net mas com uma assinatura tão simples:
BOOL WINAPI GetProfileType(
DWORD *pdwFlags
);
Criação de um não seria difícil.
Outras dicas
[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
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow