如何检查当前登录用户是否在使用漫游配置文件?

3

如何检查当前用户是否正在使用漫游配置文件?

有没有任何 .net 框架库可以帮助实现?

2个回答

3
我认为唯一的方法是调用Win32 shell函数GetProfileType。您需要使用P / Invoke进行调用,然后检查pdwFlags参数的输出值是否为PT_ROAMING(其值为2)。
我在pinvoke.net上没有看到此函数的示例签名,但具有如此简单的签名:
BOOL WINAPI GetProfileType(      
    DWORD *pdwFlags
);

创建一个不难。

@Bubbafat:用户使用漫游配置文件默认没有安装权限,这是真的吗?那么如何设置这些权限呢? - gneash

2
    [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
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接