微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 AutoCAD 运行期间编辑 Program Files 目录中的 Settings.txt 文档

如何解决在 AutoCAD 运行期间编辑 Program Files 目录中的 Settings.txt 文档

我正在尝试将 AutoCAD 用户的设置存储在他们的 Program Files 下的目录中。最初,我将所有内容都存储在用户收藏夹文件夹中,但我想将所有插件文档/文件保存在同一目录中。所以,我一直在尝试各种选项来在运行时获得管理员权限,但仍然没有成功。这或多或少是我最近测试的:

Public Shared Sub GetAdminAccess()
    AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
    Dim curIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()
    Dim principalPerm As PrincipalPermission = New PrincipalPermission(nothing,"BUILTIN\Administrators")
    principalPerm.Demand()
End Sub

<PrincipalPermissionAttribute(SecurityAction.Demand,Role:="BUILTIN\Administrators")>
Private Shared Sub CreateSettingsFile()
    Try
        IO.File.Create(SettingsFilePath)
        SettingsFileData = DefaultFileData
        Property_WindowsOnTop = True
        Property_SaveBackups = False
        Property_SkipCreateSite = False
        Property_AlignmentZoomExtents = ToFullExtents
        Property_SaveBackups_Method = _TxtValue_Generic_None
        Property_SaveBackups_MainDirectoryPath = _TxtValue_Generic_None
        Call SetUserSettings(SettingsFileData)
        Call SetPropertySettings()
    Catch IOE As IO.IOException
        MsgBox(IOE.Message)
    Catch Ex As Exception
        MsgBox(Ex.Message)
    End Try
End Sub

我的许多尝试都导致了同样的错误

“应用程序试图执行安全策略现在允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员,或使用 Microsoft.NET Framework 配置工具。

如果您单击继续,应用程序将忽略此错误并尝试继续。

请求主体权限失败。”

解决方法

应用无法在没有管理员权限的情况下写入 Program Files 文件夹。程序文件文件夹(及其下的子文件夹)受管理员保护,以防止程序用恶意等效代码替换已安装的可执行代码。不要那样做。

如果需要特定于应用程序的数据,请使用 appData 文件夹。您可以使用 System.Environment.SpecialFolder.ApplicationDataEnvironment.GetFolderPath

访问该文件夹

熟悉 SpecialFolder 枚举(以及 System.IO.Path.Combine)。它们是访问 Windows 操作系统中所有知名文件夹的正确方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。