Sign in to follow this  
Followers 0
luckyluke

IUIAutomation error with $objUIAutomation

8 posts in this topic

Hi all

Im working with sample code from this page:

'?do=embed' frameborder='0' data-embedContent>>

The example code is 

The error i get when run this code is:

--> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop
matched: class30012
Matching: 30012 for CalcFrame
"C:\Program Files\AutoIt3\Include\UIAWrappers.au3" (553) : ==> Variable must be of type "Object".:
$objUIAutomation.createPropertyCondition($PropertyId, $tVal, $pCondition)
$objUIAutomation^ ERROR
->21:51:53 AutoIt3.exe ended.rc:1
+>21:51:53 AutoIt3Wrapper Finished..

Please help

Thanks

Share this post


Link to post
Share on other sites



I have downloaded and run the example right now. I'm not getting any errors.

In top of the script Calculator and Notepad are opened. Can you see if these programs are opened. If not just comment out these two lines and open the programs yourself.

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

Add a check to make sure that the variable is an object, prior to using properties|methods

IsObj

you might need to add a loop to wait for it to be an object

Edited by jdelaney

IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

I have downloaded and run the example right now. I'm not getting any errors.

In top of the script Calculator and Notepad are opened. Can you see if these programs are opened. If not just comment out these two lines and open the programs yourself.

 

Add a check to make sure that the variable is an object, prior to using properties|methods

IsObj

you might need to add a loop to wait for it to be an object

Hi i've check in UIAWrappers.au3 and found that the script can not create object

func _UIA_Init()
;~  consolewrite("initializing")
    ;~ The main object with acces to the windows automation api 3.0
    $objUIAutomation = ObjCreateInterface($sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation)
    If IsObj($objUIAutomation) = 0 Then
        msgbox(1,"UI automation failed", "UI Automation failed",10)
        Return SetError(1, 0, 0)
    EndIf

$objUIAutomation = 0 so it's not a object. Im using Autoit version 3.3.10.2. What should i do now?

Edited by luckyluke

Share this post


Link to post
Share on other sites

What platform are you on? This should run from XP SP3 to Win 8. If you are on XP or Vista there may be a risk that the API isn't installed. See http://support.microsoft.com/kb/971513. Can you verify that UIAutomationCore.dll is installed on your system?

Share this post


Link to post
Share on other sites

What platform are you on? This should run from XP SP3 to Win 8. If you are on XP or Vista there may be a risk that the API isn't installed. See http://support.microsoft.com/kb/971513. Can you verify that UIAutomationCore.dll is installed on your system?

Hi, im using XP SP3. I've searched for UIAutomationCore.dll and found it in system32 folder, so i think it's installed

Share this post


Link to post
Share on other sites

I have just tested on my old XP SP3. It works.

luckyluke, It seems as if UI Automation isn't working on your PC. You can try to install the UI Automation update in the link, and you can try to update everything on your PC with Microsoft Update, if you haven't done that.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • BigDaddyO
      By BigDaddyO
      I have been using Auto IT along with the IUIAutomation for the nasty bits to perform automation in the Trizetto Facets application and everything is going well, until I was asked to use some of my scripts to generate Load on the system. 
      In order to do this, I would need to Launch My AutoIT script "which opens the Facets application" multiple times.  Each time it is launched a new Facets App on the same computer will open.
      Couple problems with this that I'm hoping someone will be able to help me out with
      On Launch of Facets, I get the PID from Shellexecute which I can then pass into the IUIA to search the proper window which is great, but the Click and Send functions from IUIA don't actually send directly to the control so It can get flaky when 5+ Facets screens are being controlled at the same time. On Launch of Facets, I use the PID to then get the Windows Hwnd.  When trying to do ControlClick, or Control* I can't seem to find any of the Popup windows such as the Database Select, or Login Creds using the Handle from the Main App and text from the Pop window. ex... ControlClick($MainUIhwnd, "text from popup", "Button1")  Is there some other way to identify popup windows for ControlClick type functions?  
    • parrishjason
      By parrishjason
      Hello all.

      I currently have an AutoIT script that uses INetGet to retrieve and run files over a network. However, as it stands the app has currently changed to the point where I must open an actual browser in order to be able to get to the file (at least, this is the easiest way).
       
      Right now I have an extremely unreliable and clunky set of Send and Click commands to accomplish this task with sleeps in between everything to the point where I *hope* my file was downloaded before I try to click the "Run" button in microsoft edge. 
       
      I've been looking into IUIautomation, but I'm having quite a time understanding how to actually use it properly.
       
      I'd think that a script to navigate to a URL, download a file, then click "Run" in the browser would be simple. If I can get any help that'd be highly appreciated.
       
      Once I see a sample of how to download the file, the navigation part should be quite trivial to figure out.
    • ngskicker
      By ngskicker
      I don't know if this is a correct place to ask this, so forgive me if this is the wrong place.
      I need to set text in a text field, and then press enter, this is a text field on "Microsoft Access Database Project", this control is not visible on AutoItInfo, below is what I get from simplespy
      Mouse position is retrieved 433-228 At least we have an element [20.40.22][OKttbx] Having the following values for all properties: Title is: <20.40.22> Class := <OKttbx> controltype:= <UIA_PaneControlTypeId> ,<50033> , (0000C371) 366;221;151;15 *** Parent Information top down *** 4: Title is: <Desktop> Class := <#32769> controltype:= <UIA_PaneControlTypeId> ,<50033> , (0000C371) 0;0;1366;768 "Title:=Desktop;controltype:=UIA_PaneControlTypeId;class:=#32769" 3: Title is: <Registrasi Px RSMLA> Class := <OMain> controltype:= <UIA_WindowControlTypeId> ,<50032> , (0000C370) -8;-8;1382;744 "Title:=Registrasi Px RSMLA;controltype:=UIA_WindowControlTypeId;class:=OMain" 2: Title is: <Workspace> Class := <MDIClient> controltype:= <UIA_PaneControlTypeId> ,<50033> , (0000C371) 0;74;1366;654 "Title:=Workspace;controltype:=UIA_PaneControlTypeId;class:=MDIClient" 1: Title is: <Appointment Form> Class := <OForm> controltype:= <UIA_WindowControlTypeId> ,<50032> , (0000C370) 259;124;847;537 "Title:=Appointment Form;controltype:=UIA_WindowControlTypeId;class:=OForm" 0: Title is: <> Class := <OFormSub> controltype:= <UIA_PaneControlTypeId> ,<50033> , (0000C371) 262;197;824;343 "Title:=;controltype:=UIA_PaneControlTypeId;class:=OFormSub" ;~ *** Standard code *** #include "UIAWrappers.au3" AutoItSetOption("MustDeclareVars", 1) Local $oP3=_UIA_getObjectByFindAll($UIA_oDesktop, "Title:=Registrasi Px RSMLA;controltype:=UIA_WindowControlTypeId;class:=OMain", $treescope_children) _UIA_Action($oP3,"setfocus") Local $oP2=_UIA_getObjectByFindAll($oP3, "Title:=Workspace;controltype:=UIA_PaneControlTypeId;class:=MDIClient", $treescope_children) _UIA_Action($oP2,"setfocus") Local $oP1=_UIA_getObjectByFindAll($oP2, "Title:=Appointment Form;controltype:=UIA_WindowControlTypeId;class:=OForm", $treescope_children) _UIA_Action($oP1,"setfocus") Local $oP0=_UIA_getObjectByFindAll($oP1, "Title:=;controltype:=UIA_PaneControlTypeId;class:=OFormSub", $treescope_children) _UIA_Action($oP0,"setfocus") _UIA_setVar("20.40.22.mainwindow","title:=20.40.22;classname:=OKttbx") _UIA_action("20.40.22.mainwindow","setfocus") *** Detailed properties of the highlighted element *** UIA_title:= <20.40.22> UIA_text:= <20.40.22> UIA_regexptitle:= <20.40.22> UIA_class:= <OKttbx> UIA_regexpclass:= <OKttbx> UIA_iaccessiblechildId:= <0> UIA_handle:= <1311620> UIA_RuntimeId:= <42;1311620> UIA_BoundingRectangle:= <366;221;151;15> UIA_ProcessId:= <1404> UIA_ControlType:= <50033> UIA_LocalizedControlType:= <pane> UIA_Name:= <20.40.22> UIA_HasKeyboardFocus:= <True> UIA_IsKeyboardFocusable:= <True> UIA_IsEnabled:= <True> UIA_ClassName:= <OKttbx> UIA_Culture:= <0> UIA_IsControlElement:= <True> UIA_IsContentElement:= <True> UIA_IsPassword:= <False> UIA_NativeWindowHandle:= <1311620> UIA_IsOffscreen:= <False> UIA_Orientation:= <0> UIA_FrameworkId:= <Win32> UIA_IsRequiredForForm:= <False> UIA_IsDockPatternAvailable:= <False> UIA_IsExpandCollapsePatternAvailable:= <False> UIA_IsGridItemPatternAvailable:= <False> UIA_IsGridPatternAvailable:= <False> UIA_IsInvokePatternAvailable:= <False> UIA_IsMultipleViewPatternAvailable:= <False> UIA_IsRangeValuePatternAvailable:= <False> UIA_IsScrollPatternAvailable:= <False> UIA_IsScrollItemPatternAvailable:= <False> UIA_IsSelectionItemPatternAvailable:= <False> UIA_IsSelectionPatternAvailable:= <False> UIA_IsTablePatternAvailable:= <False> UIA_IsTableItemPatternAvailable:= <False> UIA_IsTextPatternAvailable:= <False> UIA_IsTogglePatternAvailable:= <False> UIA_IsTransformPatternAvailable:= <False> UIA_IsValuePatternAvailable:= <False> UIA_IsWindowPatternAvailable:= <False> UIA_ValueIsReadOnly:= <True> UIA_RangeValueValue:= <0> UIA_RangeValueIsReadOnly:= <True> UIA_RangeValueMinimum:= <0> UIA_RangeValueMaximum:= <0> UIA_RangeValueLargeChange:= <0> UIA_RangeValueSmallChange:= <0> UIA_ScrollHorizontalScrollPercent:= <0> UIA_ScrollHorizontalViewSize:= <100> UIA_ScrollVerticalScrollPercent:= <0> UIA_ScrollVerticalViewSize:= <100> UIA_ScrollHorizontallyScrollable:= <False> UIA_ScrollVerticallyScrollable:= <False> UIA_SelectionCanSelectMultiple:= <False> UIA_SelectionIsSelectionRequired:= <False> UIA_GridRowCount:= <0> UIA_GridColumnCount:= <0> UIA_GridItemRow:= <0> UIA_GridItemColumn:= <0> UIA_GridItemRowSpan:= <1> UIA_GridItemColumnSpan:= <1> UIA_DockDockPosition:= <5> UIA_ExpandCollapseExpandCollapseState:= <3> UIA_MultipleViewCurrentView:= <0> UIA_WindowCanMaximize:= <False> UIA_WindowCanMinimize:= <False> UIA_WindowWindowVisualState:= <0> UIA_WindowWindowInteractionState:= <0> UIA_WindowIsModal:= <False> UIA_WindowIsTopmost:= <False> UIA_SelectionItemIsSelected:= <False> UIA_TableRowOrColumnMajor:= <2> UIA_ToggleToggleState:= <2> UIA_TransformCanMove:= <False> UIA_TransformCanResize:= <False> UIA_TransformCanRotate:= <False> UIA_IsLegacyIAccessiblePatternAvailable:= <True> UIA_LegacyIAccessibleChildId:= <0> UIA_LegacyIAccessibleName:= <20.40.22> UIA_LegacyIAccessibleRole:= <10> UIA_LegacyIAccessibleState:= <1048580> UIA_IsDataValidForForm:= <False> UIA_ProviderDescription:= <[pid:5708,hwnd:0x140384 Main:Nested [pid:1404,hwnd:0x140384 Annotation(parent link):Microsoft: Annotation Proxy (unmanaged:uiautomationcore.dll); Main:Microsoft: MSAA Proxy (unmanaged:uiautomationcore.dll)]; Hwnd(parent link):Microsoft: HWND Proxy (unmanaged:uiautomationcore.dll)]> UIA_IsItemContainerPatternAvailable:= <False> UIA_IsVirtualizedItemPatternAvailable:= <False> UIA_IsSynchronizedInputPatternAvailable:= <False>