How do you reliably get the Quick Launch folder in XP and Vista?我们需要为Vista和XP下的所有和当前用户可靠地获取Quick Launch文件夹。我正在C语言中进行开发,但这可能更像是一个常见的Windows API问题。 作为参考,这是在两个系统下获取Application Data文件夹的代码:我怀疑这只是知道Microsoft使用哪个子文件夹的问题。 在Windows XP中,应用程序数据子文件夹为: Microsoft \\\\ Internet Explorer \\\\ Quick Launch 在Vista下,看来子文件夹已更改为: Roaming \\\\ Microsoft \\\\ Internet Explorer \\\\ Quick Launch ,但我想确保 找到确定此位置的正确方法非常重要,因为在进入国际安装目录时,依赖于硬编码的文件夹名称几乎总是会中断。该文件夹在Vista中被命名为"漫游"的事实使我想知道是否有与该文件夹相关的特殊处理(类似于XP下的Local Settings文件夹)。 http:// m sdn.microsoft.com/zh-cn/library/bb762494.aspx表示CSIDL_APPDATA的等效ID为FOLDERID_RoamingAppData,这似乎支持StocksR的断言,即CSIDL_APPDATA确实返回了C:\\\\ Users \\\\ xxxx \\\\ AppData \\\\ roaming ,因此对于CSIDL_APPDATA可以使用相同的相对路径来快速启动(\\\\ Microsoft \\\\ Internet Explorer \\\\ Quick Launch)。 因此,每个MS的以下算法均正确: >
检查hres以确保成功调用SHGetSpecialFolderPath也将是一个好主意。 在Vista上的AppData指的是C:\\\\\\\\ Users \\\\\\\\\\ xxxx \\\\\\\\ AppData \\\\\\\\\\\\漫游而不是C:\\\\\\\\ Users \\\\\\\\\\ xxxx \\\\\\\\ AppData文件夹 此外,这篇在Microsoft网站上的文章http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept05/hey0901.mspx意味着您只需使用相对于appdata文件夹 的路径 好问题! 无论您做什么,都不要屈从于诱惑来深入研究注册表以查找此信息! 此外,我们必须抵制诱惑,以硬编码某些路径,甚至是部分路径。如果获得特殊的AppData路径,则只需在字符串末尾附加一个字符串,这在非美国安装的软件(文件夹名称被本地化为该语言)下可能会中断。例如。 希望有人正确回答了您的问题;我很好奇自己知道! |