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

Edit Settings.txt Document within Program Files directory during AutoCAD runtime

我正在尝试将 AutoCAD 用户的设置存储在他们的 Program Files 下的目录中。最初,我将所有内容都存储在用户的收藏夹文件夹中,但我想将所有插件 documents/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 框架配置工具。

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

委托人权限请求失败。

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

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

访问该文件夹

熟悉 SpecialFolder 枚举(以及 System.IO.Path.Combine)。它们是访问 Windows OS.

中所有知名文件夹的正确方法