Как проверить, использует ли текущий вошедший в систему пользователь перемещаемый профиль?
-
05-07-2019 - |
Вопрос
Как я могу проверить, использует ли текущий пользователь перемещаемый профиль?
Есть ли какая-нибудь библиотека .net framework, которая может помочь?
Решение
Я считаю, что единственный способ сделать это - вызвать функцию оболочки Win32 GetProfileType . Вам нужно будет использовать P / Invoke, чтобы сделать вызов, а затем проверить значение out параметра pdwFlags для PT_ROAMING (которое имеет значение 2).
Я не вижу образец подписи для этой функции на pinvoke.net, но с такой простой подписью:
BOOL WINAPI GetProfileType(
DWORD *pdwFlags
);
Создать его не составит труда.
Другие советы
[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
}
}
Не связан с StackOverflow