1

我是一名 vb6 编码员,面临 Windows 7 UAC 问题。

受限用户:当我运行我的安装程序时,它要求输入管理员帐户密码,我输入并正确安装。我的应用程序将日期写入公共应用程序数据文件夹,以便所有用户都可以访问文件/数据。

在 Windows 7 中,路径为:

C:\ProgramData\<CompanyName>\<AppName/Title>\Config.ini

当我的安装程序以管理员权限运行时,它会正确创建这些子文件夹。

但是,当应用程序从受限用户帐户运行时。它未能在该位置写入(它实际上写入虚拟路径)。

但是,我想写入那个确切的文件。

但是,我已经进行了足够的研究,并且每个地方都被告知要写在CommonAppData文件夹中。但它仍然失败。

请有人帮帮我。

我使用SHGetSpecialFolderLocationAPI 调用来获取文件夹位置,并使用文件夹 id 35。

以下是路径的示例代码:

strAPPPath = fGetSpecialfolder(35) & "\" & App.CompanyName & "\" & Trim(App.Title)
4

2 回答 2

0

我并不是要暗示您的安装程序是问题所在,我想知道您的安装程序具有哪些功能。正如我所说,我正在运行安装后自定义操作,在其中创建我的目录,设置它的权限并将我的配置文件复制到它。看起来您的安装程序有能力进行交互和外壳操作,但由于我不熟悉它,所以我不会尝试给您举个例子。我用来设置目录权限的命令是 doscalcs命令。我使用的命令行是。

cacls "%ALLUSERSPROFILE%\**<Your Directorys here>**" /E /P BUILTIN\Users:F

我希望有人会加入并提供另一种方法来执行此操作,因为我想释放 bat 文件。

于 2013-09-11T01:00:42.707 回答
0

您可以尝试使用 www.sysinternals.com 中的 procmon(重定向到 MS Technet)并找到您的应用程序为访问数据文件夹而进行的磁盘访问。

它将为您提供更好的错误消息,该消息应为您指明正确的方向,例如权限。

于 2013-09-10T12:25:07.383 回答