Como verificar se o usuário conectado no momento está usando o perfil de roaming?

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

  •  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?

Foi útil?

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
scroll top