Delphi 如何在网络计算机上查找公共文档文件夹的名称

Delphi 如何在网络计算机上查找公共文档文件夹的名称,delphi,networking,unc,delphi-2006,mapped-drive,Delphi,Networking,Unc,Delphi 2006,Mapped Drive,假设我正在网络上的一台计算机上执行EXE文件(D2006应用程序),如果EXE可能已从UNC快捷方式或映射的驱动器号快捷方式调用,并且远程计算机的平台不一定已知(但将>=WinXP),我如何获取该计算机上commondocs文件夹的路径名 在这种情况下,客户机有大量分散的机器,他们不必费心在所有PC机上安装我的应用程序。所以他们要做的就是在网络上的某个地方安装可执行文件,并给每个人一个快捷方式。这似乎已经很适合他们了,而且没有任何问题 在他们的请求下,我让应用程序从一个INI文件中读取设置,该I

假设我正在网络上的一台计算机上执行EXE文件(D2006应用程序),如果EXE可能已从UNC快捷方式或映射的驱动器号快捷方式调用,并且远程计算机的平台不一定已知(但将>=WinXP),我如何获取该计算机上commondocs文件夹的路径名


在这种情况下,客户机有大量分散的机器,他们不必费心在所有PC机上安装我的应用程序。所以他们要做的就是在网络上的某个地方安装可执行文件,并给每个人一个快捷方式。这似乎已经很适合他们了,而且没有任何问题

在他们的请求下,我让应用程序从一个INI文件中读取设置,该INI文件与可执行文件放在同一个文件夹中。我只能假设他们已经配置了一些东西,以便所有用户都可以写入该文件夹,从而可以保存回INI文件

但是,我想更改它,以便将INI文件读取并保存到远程计算机上commondocs文件夹树中的某个位置,这样它们就不需要提供对Program files文件夹的写入访问权限。

运行您的程序的计算机是您唯一可以访问的计算机。存储程序的机器与此无关。它只是一个磁盘驱动器。它可能没有运行Windows。它甚至可能是一个几乎不运行任何东西的NAS

如果客户希望文件服务器的common documents文件夹充当所有客户机系统上每个人的common documents文件夹,请让系统管理员在服务器上配置共享文件夹,然后重试。您不需要为此进行特殊编程


要获取运行程序的计算机的公共文档文件夹,可以调用各种API函数,包括。您需要的值是
CSIDL\u COMMON\u文档
。如果您改打电话,请使用
FOLDERID\u PublicDocuments

我怀疑您可以,因为我认为您需要登录计算机才能获得此信息。您好@Misha。更多细节添加到问题-Thank R“情况是,客户端有大量分散的计算机,他们不必费心在所有PC上安装我的应用程序”。如果他们能管理它们,他们也能管理它们的软件。如果他们无法管理,那么,他们就有问题了……;)谢谢@Rob。问题是,客户端不想与工作站有任何关系。他只想在服务器上安装应用程序。如果应用程序的安装为可执行文件创建了
{pf}\MyApp
,为INI文件创建了
{pf}\MyApp\Application Data
(并为
{pf}\MyApp\Application Data
文件夹“everyone modify”提供了访问权限),这难道不起作用吗?我可以计算出INI文件在可执行文件路径中的位置,每个人都可以对INI文件文件夹进行读写访问,没有人可以修改任何其他
{pf}
文件夹。是的,这听起来是一个不错的选择。好主意。