我对Windows系统编程非常陌生。 在我的项目中,我需要读取32/64位进程的注册“ ProgramFiles”位置。

我最终有两种选择:使用SHGetKnownFolderPath或从系统注册表中读取这些文件夹的值,但是我有一些安全方面的顾虑。 有人可以在安全性和可靠性方面比较这两种方法吗?

===============>>#1 票数:1

您不会从注册表中未记录的随机位置读取内容,因为这只是Windows 当前存储数据的位置的实现细节:很容易发生以下情况:

  • 在Windows的下一版本中,他们将决定此类数据需要存储在其他位置;
  • 您发现的数据仅在某些配置上存在(安装了某些特定的IE版本,计算机尚未加入Active Directory,没有适当的文件夹重定向,...)-但是您不知道,没有文档可以保证你什么。

正确的方法是使用操作系统提供的文档化接口,Microsoft明确声明要对它们进行兼容性保证(它们保证今天有效的公共功能-如果根据文档使用,则明天将继续起作用)。


tl; dr :如果您希望与Vista之前的Windows版本保持兼容,请使用SHGetKnownFolderPathSHGetFolderPath ,这通常是一件好事,因为Windows XP似乎仍然比所有OS X版本的市场份额都要多。

  ask by VikasPushkar translate from so

未解决问题?本站智能推荐:

2回复

如何在32位应用程序中获取64位系统文件夹?

在32位应用程序中,我必须将文件复制到64位系统文件夹 ( C:\\Windows\\System32\\而不是C:\\Windows\\SysWOW64\\ ) 为此,我尝试使用带有参数FOLDERID_ProgramFilesX64 (GUID:6D809377-6AF0-444b
2回复

如何从Delphi中的已知文件夹GUID获取文件夹路径

我有一个KNOWNFOLDERID ,我想知道相应的路径,如C:.... \\文件夹。 KNOWNFOLDERID可以在这里找到。 http://msdn.microsoft.com/en-us/library/bb762584%28VS.85%29.aspx 我想使用win ap
4回复

SHGetFolderPath不推荐使用:什么是检索Windows文件夹路径的替代方法?

从Windows Vista开始不推荐使用SHGetFolderPath()函数: http : //msdn.microsoft.com/en-us/library/bb762181%28v=VS.85%29.aspx 在Windows中检索应用程序文件夹路径的另一种方法是什么?
2回复

Windows中的特殊文件夹是否有明确的指南?

Windows中的特殊文件夹是否有明确的指南? 互联网搜索产生了一些信息,例如 维基百科:特殊文件夹 Windows 7客户端软件徽标计划 我正在寻找的是每个文件夹的解释,它的预期目的,使用场景和存在的动机(例如,本地应用程序设置为该应用程序设置提供的不是)。 我认
2回复

C#按ID获取已知文件夹的位置

我想通过其ID获取目录/文件夹的位置。 例如,下载文件夹具有ID knownfolder:{374DE290-123F-4565-9164-39C4925E467B}文件夹knownfolder:{374DE290-123F-4565-9164-39C4925E467B} ,当我将其输入到W
3回复

以编程方式获取已安装的应用程序可执行文件列表(Windows10,C#)

我想获得在Windows 10上安装和执行的应用程序列表 - 即用户可以启动的应用程序的可执行文件(UWP和非UWP)。 对于UWP应用程序,我想获得它的AppUserModelId。 对于非UWP应用程序,我想获取可执行文件的文件位置。 到目前为止,我已经尝试过:1)浏览注册表并遍历
1回复

如何获取Windows系统文件夹的路径?

我在使用Java获取系统文件夹(例如"My Computer" , "Library" , "Home group"等)的路径时遇到问题。 问题是这些文件的路径类似于::{xxxx-xxxxxx-xxxxxx}而不是简单的路径C://users ...要获取该路径,我使用filena
3回复

如何使用Vb6中的SHGetKnownFolderPath函数

我目前正在为现有的Vb6项目添加Windows 7支持,我遇到了使用SHGetFolderPath查找特殊文件夹路径的问题,这在Windows版本的Vista上不受支持。 我知道我应该使用SHGetKnownFolderPath但是我找不到在VB6中使用SHGetKnownFolderPath
1回复

与文件资源管理器匹配的已知文件夹

在Windows 10上的文件资源管理器(以前为Windows资源管理器)的树形视图上...我的根目录有多个文件夹...就我而言,这包括“快速访问”,“ DropBox”,“ OneDrive”,“ SharePoint”,“此PC”和“网络”。 是否存在包含这些内容的KnownFolde
1回复

如何限制Windows Phone 8.1中“已知文件夹”库返回的文件夹数量?

已知文件夹很棒。 我爱他们。 在这种特定情况下,我使用“已知文件夹类”中的图片库来获取所有文件夹。 因此,如果有50个文件夹,则将立即返回所有50个文件夹。 我不要那样 我正在考虑类似“分页”的概念。 返回前20个文件夹的首字母,在下一个事件(单击按钮或类似操作)中返回前20个