gpt4 book ai didi

c# - AutomationElement 不检索不可见元素

转载 作者:行者123 更新时间:2023-11-30 18:17:45 24 4
gpt4 key购买 nike

我试图获取我的 Skype 程序中的所有元素(包括所有聊天选项卡),但我只获取了可见的项目。

这是代码:

var window = AutomationElement.RootElement.FindFirst(TreeScope.Subtree,
new PropertyCondition(AutomationElement.ClassNameProperty, "tSkMainForm"));

if (window != null)
{
var items = window.FindAll(TreeScope.Subtree, Condition.TrueCondition);
//DO SOME CODE...
}

items 属性不包含所有不可见的项目(例如,与某人聊天的内部细节,比方说,Dan)。但是如果在我的 Skype 上打开与 Dan 的聊天,那么 items 属性也会包含与 Dan 聊天的内部细节。我希望 items 属性包含聊天的内部详细信息,即使在我的 Skype 中未打开该选项卡也是如此。

为什么我的代码没有检索到所有数据?我如何获取所有数据(包括所有聊天选项卡,即使它们未打开)?

最佳答案

遍历所有GridControl行,使用GridControlAutomationPeer的IScrollProvider接口(interface)实现

private void Button_Click_1(object sender, RoutedEventArgs e) {
var p = Process.GetProcessesByName(ProcName).FirstOrDefault(x => x != null);
if (p == null) {
Console.WriteLine("proccess: {0} was not found", ProcName); return;
}
var root = AutomationElement.RootElement.FindChildByProcessId(p.Id);
AutomationElement devexGridAutomationElement = root.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, DevexGridAutomationId));
if (devexGridAutomationElement == null) {
Console.WriteLine("No AutomationElement was found with id: {0}", DevexGridAutomationId);
return;
}

var cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.DataItem);
var devexGridItems = devexGridAutomationElement.FindAll(TreeScope.Descendants, cond);
GridPattern gridPat = devexGridAutomationElement.GetCurrentPattern(GridPattern.Pattern) as GridPattern;
Console.WriteLine("number of elements in the grid: {0}", gridPat.Current.RowCount);
}

关于c# - AutomationElement 不检索不可见元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42888313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com