Sha256: bb8b131d78544ec1f3ee3d419dd4ff2c5cc4be3b69e3902a4c1314616d7201a0
Contents?: true
Size: 1.95 KB
Versions: 3
Compression:
Stored size: 1.95 KB
Contents
#include "StdAfx.h" #include "AutomationFinder.h" AutomationFinder::AutomationFinder(AutomationElement^ automationElement) { _automationElement = automationElement; } AutomationElementCollection^ AutomationFinder::Find(...array<Condition^>^ conditions) { return _automationElement->FindAll(System::Windows::Automation::TreeScope::Subtree, SomethingOrEverything(conditions)); } AutomationElement^ AutomationFinder::FindFirst(...array<Condition^>^ conditions) { return _automationElement->FindFirst(System::Windows::Automation::TreeScope::Subtree, SomethingOrEverything(conditions)); } AutomationElement^ AutomationFinder::Find(const FindInformation& findInformation) { switch(findInformation.how) { case FindMethod::Id: { auto searchCondition = gcnew PropertyCondition(AutomationElement::AutomationIdProperty, gcnew String(findInformation.data.stringData)); return FindAt(findInformation.index, searchCondition); } case FindMethod::Value: { auto searchCondition = gcnew PropertyCondition(AutomationElement::NameProperty, gcnew String(findInformation.data.stringData)); return FindAt(findInformation.index, searchCondition); } case FindMethod::Focus: return AutomationElement::FocusedElement; case FindMethod::ScreenPoint: return AutomationElement::FromPoint(Point(findInformation.data.pointData[0], findInformation.data.pointData[1])); case FindMethod::Handle: return AutomationElement::FromHandle(IntPtr(findInformation.data.intData)); } return nullptr; } AutomationElement^ AutomationFinder::FindAt(const int whichItem, ...array<Condition^>^ conditions) { return Find(conditions)[whichItem]; } Condition^ AutomationFinder::SomethingOrEverything(...array<Condition^>^ conditions) { if( conditions->Length == 0 ) { return Condition::TrueCondition; } else if( conditions->Length == 1 ) { return conditions[0]; } return gcnew AndCondition(conditions); }
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rautomation-0.9.2 | ext/UiaDll/UiaDll/AutomationFinder.cpp |
rautomation-0.9.1 | ext/UiaDll/UiaDll/AutomationFinder.cpp |
rautomation-0.9.0 | ext/UiaDll/UiaDll/AutomationFinder.cpp |