我需要为我的应用程序创建系统中所有管理员的桌面快捷方式。 我正在使用以下代码获取用户列表。
var identifier = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
GroupPrincipal group = GroupPrincipal.FindByIdentity(new PrincipalContext(ContextType.Machine), identifier.Value);
foreach (Principal principal in group.Members)
{
Console.WriteLine(principal.Name);
}
我需要以某种方式为每个用户获取桌面路径。你能建议我解决方案吗?非常感谢。
答案 0 :(得分:0)
您需要调整SHGetFolderLocation函数(http://msdn.microsoft.com/en-us/library/bb762180.aspx),该函数允许您传入代表您感兴趣的用户的访问令牌英寸
不知道会有多困难。
答案 1 :(得分:-3)
您可以选择一些选项,具体取决于您的操作方式。
选项A:
硬编码,但适用于默认系统设置
var userDirectory = Path.Combine("C:\Users\", principal.Name, "\Desktop");
选项B:
查找当前用户,然后将其换出
var currentUser = Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
var newUser = currentUser.Replace("MyUser", principal.Name);
现在,选项B尚未经过全面测试,但应该可以使用!