我正在寻找一种获取特定用户的本地应用程序数据文件夹的好方法,而无需输入该用户的登录详细信息。
SHGetFolderPath()可以接受我想要获取其本地 appdata 文件夹的任何用户的访问令牌,但要获取访问令牌,您必须提供用户的密码。另外,根据文档,<= Windows 2000 不支持此功能。
注册表项HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹包含 AppData 值,其中包含当前用户的本地 appdata 文件夹的位置...因此我可以在技术上为特定用户安装 HKCU 配置单元并访问该值;然而,微软似乎强烈反对使用这个密钥,而且我听说它有时也会不准确。
具有讽刺意味的是,在 Windows 上,管理员帐户可以轻松访问和修改任何用户的 appdata 文件夹中的所有数据,只要他们打开资源管理器并浏览到正确的位置...但似乎没有一种简单的方法可以以编程方式获取特定用户的 appdata 文件夹的位置。
那么我还有其他选择吗?现在,访问注册表(喘息)似乎是最好的选择,但如果可能的话,我想使用官方的东西,并且微软不会阻止。
任何建议,将不胜感激。
我想知道什么是使数据线程安全的"最佳"方法.
具体来说,我需要跨多个线程保护链表 - 一个线程可能尝试从中读取,而另一个线程从中添加/删除数据,甚至释放整个列表.我一直在读锁; 它们似乎是最常用的方法,但显然它们可能存在问题(死锁).我还读过关于原子操作以及线程局部存储的内容.
在您看来,什么是我最好的行动方案?大多数程序员使用的方法是什么?出于什么原因?