加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 以编程方式打开“高级安全设置”对话框?

发布时间:2020-12-15 07:43:06 所属栏目:百科 来源:网络整理
导读:有没有办法以编程方式打开目录/文件的高级安全设置对话框?这是我要打开的对话框: 通过单击目录/文件的“安全属性”对话框中的“高级”按钮打开它. 有一个this answer显示了如何使用ShellExecuteEx打开安全属性选项卡,所以可能有不同的参数可用于直接打开高
有没有办法以编程方式打开目录/文件的高级安全设置对话框?这是我要打开的对话框:

通过单击目录/文件的“安全属性”对话框中的“高级”按钮打开它.

有一个this answer显示了如何使用ShellExecuteEx打开安全属性选项卡,所以可能有不同的参数可用于直接打开高级安全设置对话框,但我不知道在哪里可以找到文档(或在哪里查找注册表)支持的动词/参数.

还有EditSecurityAdvanced API,但看起来需要实现获取/设置ACL的功能,而不是使用内置于Windows shell的功能.

我正在使用VB.NET,但可以根据需要翻译C#或Windows API调用,并且还可以了解如何进行自己的研究.

解决方法

我也找不到打开它的直接方法.使用 automation像评论员Visual Vincent建议的并不是太难.不要忘记添加对程序集的引用并导入System.Windows.Automation

然后此代码应按下“高级”按钮.这种方式仍然会创建主要属性对话框.

Dim FileName As String = "The file name you are viewing the properties of"
Dim AE As AutomationElement = AutomationElement.RootElement.FindFirst(TreeScope.Children,New PropertyCondition(AutomationElement.NameProperty,FileName + " Properties"))
Dim Advancedbtn = AE.FindFirst(TreeScope.Element Or TreeScope.Descendants,"Advanced"))
TryCast(Advancedbtn.GetCurrentPattern(InvokePattern.Pattern),InvokePattern).Invoke()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读