有没有办法以编程方式打开目录/文件的“高级安全设置”对话框?这是我要打开的对话框:
通过单击目录/文件的“安全性属性”对话框中的“高级”按钮打开它。
有this answer显示如何使用ShellExecuteEx
打开安全属性选项卡,因此可能有不同的参数可用于直接打开高级安全设置对话框,但我没有&#39 ; t知道在哪里可以找到支持的动词/参数的文档(或在注册表中查找)。
还有EditSecurityAdvanced
API,但看起来需要实现获取/设置ACL的功能,而不是使用内置于Windows shell的功能。
我在VB.NET工作,但可以根据需要翻译C#或Windows API调用,也欢迎指导如何进行自己的研究。
答案 0 :(得分:2)
我也找不到打开它的直接方法。像Visual Vincent建议的评论员一样使用automation并不太难。不要忘记添加对程序集的引用并导入System.Windows.Automation
然后此代码应按下Advanced
按钮。这种方式仍然会创建主要的属性对话框。
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, New PropertyCondition(AutomationElement.NameProperty, "Advanced"))
TryCast(Advancedbtn.GetCurrentPattern(InvokePattern.Pattern), InvokePattern).Invoke()