Domanda

Come posso verificare se l'utente corrente sta usando il profilo di roaming?

Esiste una libreria di framework .net che può aiutare?

È stato utile?

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