如何解决在 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.ApplicationData
和 Environment.GetFolderPath
熟悉 SpecialFolder
枚举(以及 System.IO.Path.Combine
)。它们是访问 Windows 操作系统中所有知名文件夹的正确方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。