有时,应用程序错误会生成带有 Z-Index 的隐藏 UI 控件,这意味着它位于其他 UI 元素之上。这个隐藏的窗格出现在屏幕的左上角,并阻止用户从任何最大化的窗口加载“文件”菜单。如果应用程序关闭,UI 元素就会消失。
使用 UISpy,我能够捕获有关元素的以下信息:
AutomationElement
General Accessibility
AccessKey: ""
AcceleratorKey: ""
IsKeyboardFocusable: "True"
LabeledBy: "(null)"
HelpText: ""
State
IsEnabled: "True"
HasKeyboardFocus: "False"
Identification
ClassName: "WindowsForms10.Window.8.app.0.365bd83"
ControlType: "ControlType.Pane"
Culture: "(null)"
AutomationId: ""
LocalizedControlType: "pane"
Name: ""
ProcessId: "10968 (MyApplication)"
RuntimeId: "42 21628486"
IsPassword: "False"
IsControlElement: "True"
IsContentElement: "True"
Visibility
BoundingRectangle: "(0, 0, 132, 38)"
ClickablePoint: "(null)"
IsOffscreen: "False"
ControlPatterns
我还有一个在 WinDbg 中打开的应用程序的内存转储。如何找到使用 RuntimeID 引用 UI 元素的托管对象"42 21628486"
?或者也许我可以搜索具有特定宽度的对象?
我希望通过找到托管对象,它会提供一些关于隐藏窗口原因的线索。