【问题标题】:Unable to write to a file created by an AutoHotKey script无法写入由 AutoHotKey 脚本创建的文件
【发布时间】:2019-06-16 11:56:19
【问题描述】:

我有一台装有 Win7 64 的戴尔 PC,使用我认为是最新版本的 AutoHotKey。

我用 AutoHotKey 编写了一个安装程序应用程序来创建两个包含许多子目录的目录,然后将一个 exe 程序和一些数据文件安装到这些目录中。应用程序安装到现有的 C:\Program Files 和 C:\Program Data 目录中。

安装程序应用程序创建子目录 C:\Program Files\DSOSort 然后安装文件 DSOSort.exe。安装程序应用程序然后创建子目录 C:\Program Data\DSOSort 并安装许多附加的子目录以及所有相关的文本数据文件。

我使用安装应用程序中的 FileCreateDir 和 FileInstall 指令来创建目录并安装文件。

安装程序应用程序和 exe 程序中的所有内容都可以正常工作,只是 exe 不会对新创建的 C:\Program Data\DSOSort 目录中的文本数据文件进行任何更改。我必须使用属性打开目录并允许用户写入。完成后,exe 将正确更改文本数据文件中的数据,一切正常。

如果我将安装程序应用程序更改为创建目录 C:\DSOSort 然后将所有子目录和数据文件安装在其中而不是 C:\Program Data\DSOSort exe 可以写入文本文件。我不必使用属性更改任何权限。

我尝试使用在 C:\Documents and Settings 和 C:\Users 中找到的 C:\Program Data\DSOSort 目录的各种副本。 exe可以读取它们但不能写入。

我只在新安装的目录中遇到这个问题,正如我之前所说的,它可以通过属性来纠正。

exe 程序是为有足够知识运行安装应用程序但不了解属性或对目录进行更改的人编写的。

我可以将数据文件放在 C:\DSOSort 目录中,但更愿意将它们放在 C:\Program Data\DSOSort 目录中。

AutoHotKey 有没有办法在安装数据文件之前检查用户权限并在必要时更改它们?

我的电脑运行正常吗?是否应该创建目录而不允许写入文件?

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    其中一些目录,如“程序文件”,需要管理员权限才能修改。我相信这就是您遇到这种情况的原因。让您的应用程序以管理员身份运行,应该没问题。您可以在属性中找到 EXE 的设置。

    A_IsAdmin 内置变量返回当前用户是否有管理员权限。

    【讨论】:

    • 通过一个不太优雅的解决方案,我设置了安装应用程序以将文本数据文件安装在 Temp 目录中。当 exe 程序第一次运行时,它会将文本数据文件复制到 C:\Program Data\DSOSort。这为 exe 应用程序提供了写入文件所需的权限。
    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多