Jump to content

IUIAutomation MS framework automate chrome, FF, IE, ....


junkew
 Share

Recommended Posts

you should read the first few posts that tell you to try with simplespy and post the output so we can see

  1. What kind of controltype we are dealing with
  2. What patterns are supported natively by UIA
  3. More details if you ask a question as there are dozens of ways to automate application tables
  4. ....

If getvalue did work then your text is on the clipboard and you should be able to get it. But I assume that after you find your text you want to turn on/of checkboxeds on that line.

 

Link to comment
Share on other sites

I need to Copy all the text from a Chrome Browser page. But the underlying page is protected against copying.

I can unprotect the page with extensions, but I'd like to avoid that. Unfortunately Chrome is required for the web application we are using.

Before I go down the road of learning this UDF I'd like to know if I can get access to content of the Chrome page without an extension.

All I really need to accomplish is find a specific Chrome Browser tab (base on user input into autoit) and then copy all the text from the page so that I can extract specific information from it.

Thank you.

Edited by dchaosw360
Link to comment
Share on other sites

You can in any browser type javascript in addressbar

Javascript:<your jscode>;void,(0);

So either do

1.alert(document.body.innertext)

or

2. more complex scripting like adding textbox and copy pasting from that textbox.

Or

3. make use of adding websocket thru addressbar and make use of tcpip commands autoit

So as soon as regular functions cannot help you you can run any javascript thru addressbar. Sometimes only small chunks as number of characters is limited in addressbar.

 

Be aware javascript and html is very case sensitive.

Edited by junkew
Link to comment
Share on other sites

  • 1 month later...

Unfortunately the tool doesn't work out of the box on Windows 7 64-bit SP1 :(

I tried only V0.70 and V0.66 and they can't get proper control information from a WPF Application - they are querying the desktop window instead.

I guess, it is caused by the UAC, which elevates the spy (what for?), and the target application isn't elevated.

V0.51 works better - it can see the control (a button) in a WPF application, but crashes when pressing CTRL+R.

Here its log:

>"F:\Programs\autoit-v3\SciTe\..\autoit3.exe" /ErrorStdOut "E:\KA\...\UIA_V0_51\simplespy.au3"    
//TODO codetemplates.txt not available An error occurred when reading the file. & @CRLF"E:\KA\...\UIA_V0_51\simplespy.au3" (229) : ==> Subscript used on non-accessible variable.:
$tLine=$UIA_CodeArray[$i]
$tLine=$UIA_CodeArray^ ERROR
>Exit code: 1    Time: 10.01

 

Link to comment
Share on other sites

  • See FAQ 31
  • Try inspect.exe as thats out of the box Microsoft tool based on the UIA library they provide.

V0.51 and V0.70 are based on same MS DLL so objects that are recognized should be the same.

  1. Best to run first in admin mode 
  2. Try 32 bits and 64 bits AutoIt and identify what type your application is regarding 32 or 64 bit applications.
Link to comment
Share on other sites

  • 1 month later...

I am trying automation CALC, for study how use UIAutomation. this error is happening i don't know why

#include "CUIAutomation2.au3"

Func Num($number)

    Local $oUIAutomation = ObjCreateInterface($sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation)

    Local $pDesktop, $oDesktop
    $oUIAutomation.GetRootElement($pDesktop)
    $oDesktop = ObjCreateInterface($pDesktop, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pCondition
    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, "ApplicationFrameWindow", $pCondition)

    Local $pCalc, $oCalc
    $oDesktop.FindFirst($TreeScope_Descendants, $pCondition, $pCalc)
    $oCalc = ObjCreateInterface($pCalc, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'Windows.UI.Core.CoreWindow', $pCondition)

    Local $pCalc1, $oCalc1
    $oCalc.FindFirst($TreeScope_Descendants, $pCondition, $pCalc1)
    $oCalc1 = ObjCreateInterface($pCalc1, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'LandmarkTarget', $pCondition)

    Local $pGroup, $oGroup
    $oCalc1.FindFirst($TreeScope_Descendants, $pCondition, $pGroup)
    $oGroup = ObjCreateInterface($pGroup, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, 'NumberPad', $pCondition)

    Local $pGroup2, $oGroup2
    $oGroup.FindFirst($TreeScope_Descendants, $pCondition, $pGroup2)
    $oGroup2 = ObjCreateInterface($pGroup2, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, $number, $pCondition)

    Local $pButton, $oButton
    $oGroup2.FindFirst($TreeScope_Descendants, $pCondition, $pButton)
    $oButton = ObjCreateInterface($pButton, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pInvoke, $oInvoke
    $oButton.GetCurrentPattern($UIA_InvokePatternId, $pInvoke)
    $oInvoke = ObjCreateInterface($pInvoke, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern)
    $oInvoke.Invoke()
EndFunc   ;==>Num

Func Operators($Operators)

    Local $oUIAutomation = ObjCreateInterface($sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation)

    Local $pDesktop, $oDesktop
    $oUIAutomation.GetRootElement($pDesktop)
    $oDesktop = ObjCreateInterface($pDesktop, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pCondition
    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, "ApplicationFrameWindow", $pCondition)

    Local $pCalc, $oCalc
    $oDesktop.FindFirst($TreeScope_Descendants, $pCondition, $pCalc)
    $oCalc = ObjCreateInterface($pCalc, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'Windows.UI.Core.CoreWindow', $pCondition)

    Local $pCalc1, $oCalc1
    $oCalc.FindFirst($TreeScope_Descendants, $pCondition, $pCalc1)
    $oCalc1 = ObjCreateInterface($pCalc1, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'LandmarkTarget', $pCondition)

    Local $pGroup, $oGroup
    $oCalc1.FindFirst($TreeScope_Descendants, $pCondition, $pGroup)
    $oGroup = ObjCreateInterface($pGroup, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, 'StandardOperators', $pCondition)

    Local $pGroup2, $oGroup2
    $oGroup.FindFirst($TreeScope_Descendants, $pCondition, $pGroup2)
    $oGroup2 = ObjCreateInterface($pGroup2, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, $Operators, $pCondition)

    Local $pButton, $oButton
    $oGroup2.FindFirst($TreeScope_Descendants, $pCondition, $pButton)
    $oButton = ObjCreateInterface($pButton, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pInvoke, $oInvoke
    $oButton.GetCurrentPattern($UIA_InvokePatternId, $pInvoke)
    $oInvoke = ObjCreateInterface($pInvoke, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern)
    $oInvoke.Invoke()
EndFunc   ;==>Operators

Func GetResult()

    Local $oUIAutomation = ObjCreateInterface($sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation)

    Local $pDesktop, $oDesktop
    $oUIAutomation.GetRootElement($pDesktop)
    $oDesktop = ObjCreateInterface($pDesktop, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pCondition
    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, "ApplicationFrameWindow", $pCondition)

    Local $pCalc, $oCalc
    $oDesktop.FindFirst($TreeScope_Descendants, $pCondition, $pCalc)
    $oCalc = ObjCreateInterface($pCalc, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'Windows.UI.Core.CoreWindow', $pCondition)

    Local $pCalc1, $oCalc1
    $oCalc.FindFirst($TreeScope_Descendants, $pCondition, $pCalc1)
    $oCalc1 = ObjCreateInterface($pCalc1, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId, 'LandmarkTarget', $pCondition)

    Local $pGroup, $oGroup
    $oCalc1.FindFirst($TreeScope_Descendants, $pCondition, $pGroup)
    $oGroup = ObjCreateInterface($pGroup, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, 'CalculatorResults', $pCondition)

    Local $pGroup2, $oGroup2
    $oGroup.FindFirst($TreeScope_Descendants, $pCondition, $pGroup2)
    $oGroup2 = ObjCreateInterface($pGroup2, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

;~  $oUIAutomation.CreatePropertyCondition($UIA_AutomationIdPropertyId, 'TextContainer', $pCondition)
    $oUIAutomation.CreatePropertyCondition($UIA_ClassNamePropertyId,'ScrollViewer', $pCondition)

    Local $pTextContainer, $oTextContainer, $Value
    $oGroup2.FindFirst($TreeScope_Descendants, $pCondition, $pTextContainer)
    $oTextContainer = ObjCreateInterface($pTextContainer, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    Local $pInvokePattern, $oInvokePattern
    $oTextContainer.GetCurrentPattern( $UIA_InvokePatternId, $pInvokePattern )
    $oInvokePattern = ObjCreateInterface( $pInvokePattern, $sIID_IUIAutomationInvokePattern, $dtagIUIAutomationInvokePattern )
    $oInvokePattern.Invoke()
    $oTextContainer.GetCurrentPropertyValue($UIA_NamePropertyId, $Value)

    Return $Value

EndFunc   ;==>GetResult

Run("calc")
Sleep(2000)
WinWaitActive("Calculadora", "", 5)

Num("num1Button")
Num("num2Button")
Num("num3Button")
Num("num4Button")
Num("num5Button")
Num("num6Button")
Num("num7Button")
;~ Num("num8Button")
Num("num9Button")

Operators("multiplyButton")

Num("num9Button")

Operators('equalButton')

MsgBox("", "", GetResult())
>"C:\Program Files (x86)\AutoIt3\SciTE\..\AutoIt3.exe" "C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\resource\Desktop\AutoIt Library\exemploUIAutomate\TesteUIA2.au3" /UserParams    
+>20:24:31 Starting AutoIt3Wrapper v.19.102.1901.0 SciTE v.4.1.2.0   Keyboard:00010416  OS:WIN_10/  CPU:X64 OS:X64  Environment(Language:0416)  CodePage:0  utf8.auto.check:4
+>         SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE   UserDir => C:\Users\resource\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper   SCITE_USERHOME => C:\Users\resource\AppData\Local\AutoIt v3\SciTE 
>Running AU3Check (3.3.14.5)  from:C:\Program Files (x86)\AutoIt3  input:C:\Users\resource\Desktop\AutoIt Library\exemploUIAutomate\TesteUIA2.au3
+>20:24:31 AU3Check ended.rc:0
>Running:(3.3.14.5):C:\Program Files (x86)\AutoIt3\autoit3.exe "C:\Users\resource\Desktop\AutoIt Library\exemploUIAutomate\TesteUIA2.au3"    
+>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
"C:\Users\resource\Desktop\AutoIt Library\exemploUIAutomate\TesteUIA2.au3" (134) : ==> Variable must be of type "Object".:
$oTextContainer.GetCurrentPattern( $UIA_InvokePatternId, $pInvokePattern )
$oTextContainer^ ERROR
->20:24:37 AutoIt3.exe ended.rc:1
+>20:24:37 AutoIt3Wrapper Finished.
>Exit code: 1    Time: 6.717
Link to comment
Share on other sites

Check with inspect or simplespy if the pattern is supported on that object and make sure you have object found. I frequently highlight my objects during development to see if it finds the correct object or I position mousecursor to see if things are identified properly. Errors like variable is not an object is either

No element found

Pattern not supported

Link to comment
Share on other sites

You can do it this way:

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7

;#AutoIt3Wrapper_UseX64=n ; If target application is running as 32 bit code
;#AutoIt3Wrapper_UseX64=y ; If target application is running as 64 bit code

#include "UIA_Constants.au3" ; Can be copied from UIASpy Includes folder
;#include "UIA_Functions.au3" ; Can be copied from UIASpy Includes folder
;#include "UIA_SafeArray.au3" ; Can be copied from UIASpy Includes folder
;#include "UIA_Variant.au3" ; Can be copied from UIASpy Includes folder

Opt( "MustDeclareVars", 1 )

Example()

Func Example()
  ; Create UI Automation object
  Local $oUIAutomation = ObjCreateInterface( $sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtag_IUIAutomation )
  If Not IsObj( $oUIAutomation ) Then Return ConsoleWrite( "$oUIAutomation ERR" & @CRLF )
  ConsoleWrite( "$oUIAutomation OK" & @CRLF )

  ; Get Desktop element
  Local $pDesktop, $oDesktop
  $oUIAutomation.GetRootElement( $pDesktop )
  $oDesktop = ObjCreateInterface( $pDesktop, $sIID_IUIAutomationElement, $dtag_IUIAutomationElement )
  If Not IsObj( $oDesktop ) Then Return ConsoleWrite( "$oDesktop ERR" & @CRLF )
  ConsoleWrite( "$oDesktop OK" & @CRLF )

  ; --- Find window/control ---

  ConsoleWrite( "--- Find window/control ---" & @CRLF )

  Local $pCondition0
  $oUIAutomation.CreatePropertyCondition( $UIA_ClassNamePropertyId, "ApplicationFrameWindow", $pCondition0 )
  If Not $pCondition0 Then Return ConsoleWrite( "$pCondition0 ERR" & @CRLF )
  ConsoleWrite( "$pCondition0 OK" & @CRLF )

  Local $pWindow1, $oWindow1
  $oDesktop.FindFirst( $TreeScope_Children, $pCondition0, $pWindow1 )
  $oWindow1 = ObjCreateInterface( $pWindow1, $sIID_IUIAutomationElement, $dtag_IUIAutomationElement )
  If Not IsObj( $oWindow1 ) Then Return ConsoleWrite( "$oWindow1 ERR" & @CRLF )
  ConsoleWrite( "$oWindow1 OK" & @CRLF )

  ; --- Find window/control ---

  ConsoleWrite( "--- Find window/control ---" & @CRLF )

  Local $pCondition1
  $oUIAutomation.CreatePropertyCondition( $UIA_AutomationIdPropertyId, "CalculatorResults", $pCondition1 )
  If Not $pCondition1 Then Return ConsoleWrite( "$pCondition1 ERR" & @CRLF )
  ConsoleWrite( "$pCondition1 OK" & @CRLF )

  Local $pText1, $oText1
  $oWindow1.FindFirst( $TreeScope_Descendants, $pCondition1, $pText1 )
  $oText1 = ObjCreateInterface( $pText1, $sIID_IUIAutomationElement, $dtag_IUIAutomationElement )
  If Not IsObj( $oText1 ) Then Return ConsoleWrite( "$oText1 ERR" & @CRLF )
  ConsoleWrite( "$oText1 OK" & @CRLF )

  ; --- Element Properties ---

  ConsoleWrite( "--- Element Properties ---" & @CRLF )

  Local $sName1
  $oText1.GetCurrentPropertyValue( $UIA_NamePropertyId, $sName1 )
  ConsoleWrite( "$sName1 = " & $sName1 & @CRLF )
EndFunc

Output:

$oUIAutomation OK
$oDesktop OK
--- Find window/control ---
$pCondition0 OK
$oWindow1 OK
--- Find window/control ---
$pCondition1 OK
$oText1 OK
--- Element Properties ---
$sName1 = Skærm er 3,1415926535897932384626433832795

Note that the text control is not an edit control, but a static text like a label in AutoIt. Therefore, use the name property to read the text value.

Link to comment
Share on other sites

  • 2 weeks later...
On 8/8/2019 at 3:50 PM, Heinzl said:

Did anybody recently try to run the Firefox automation example? After doing some modifications, I have been able to access tree elements like tabs and click to them, so basic things work. But I can't access the document itself, I always get ""Action 6 failed". Any Ideas?

audacity temp mail origin

Thanks for any help.

Heinz

Attempt if simplespy features your record zone or potentially components. In all likelihood during upgrades  they change component request and accordingly your record distinguishing proof or component tree changed. Which ff rendition are you running.

Edited by Fleurpink
Link to comment
Share on other sites

  • 3 weeks later...

I'm seeing a weird issue where if the application I'm automating freezes and goes into (Not Responding) then the UIA code seems to freeze up the AutoIt script.

If a screen doesn't open within the 120 second timeout, it calls a function that resets the program back to the main screen.

Part of that is to reset a tree view, that code below.  That seems to be the part that freezes up the script but as it's very random I can't seem to figure out a more specific line to look at.

Any ideas on which of these could get stuck in an infinite loop?

Local $oP4 = _UIA_getObjectByFindAll($UIA_oDesktop, "processid:=" & $iPID & ";controltype:=UIA_WindowControlTypeId;class:=Afx", $treescope_children)
_UIA_Action($oP4, "setfocus")
Local $oP3 = _UIA_getObjectByFindAll($oP4, "Title:=Applications;controltype:=UIA_PaneControlTypeId;class:=Afx:ControlBar", $treescope_children)
_UIA_Action($oP3, "setfocus")
Local $oP2 = _UIA_getObjectByFindAll($oP3, "Title:=;controltype:=UIA_TabControlTypeId;class:=Afx:TabWnd", $treescope_children)
_UIA_Action($oP2, "setfocus")
Local $oP1 = _UIA_getObjectByFindAll($oP2, "Title:=Applications;controltype:=UIA_PaneControlTypeId;class:=Afx:ControlBar", $treescope_children)
_UIA_Action($oP1, "setfocus")
Local $oP0 = _UIA_getObjectByFindAll($oP1, "Title:=;controltype:=UIA_TreeControlTypeId;class:=SysTreeView32", $treescope_children)
_UIA_Action($oP0, "setfocus")

Dim $pTrueCondition, $pElements, $iLength                                                       ;Create the variables that will be populated by the functions below

$UIA_oUIAutomation.CreateTrueCondition($pTrueCondition)
Local $oCondition = ObjCreateInterface($pTrueCondition, $sIID_IUIAutomationCondition, $dtagIUIAutomationCondition)
$oP0.FindAll($treescope_subtree, $oCondition, $pElements)                                       ;Find all objects under the $oP5 and populate the variables with them

Local $oAutomationElementArray = ObjCreateInterface($pElements, $sIID_IUIAutomationElementArray, $dtagIUIAutomationElementArray) ;Create a UIA Array Element

$oAutomationElementArray.Length($iLength)                                                       ;Get the count of items in the UIA Array
For $U = $iLength - 1 To 0 Step -1                                                              ; it's zero based   Loop through the Array in reverse looking for each item in the Tree view, End at first as we want focus set to the top when done
    $oAutomationElementArray.GetElement($U, $UIA_pUIElement)                                    ;Get the element of Array Item $i
    Local $oUIElement = ObjCreateInterface($UIA_pUIElement, $sIID_IUIAutomationElement, $dtagIUIAutomationElement)

    $sItemText = _UIA_action($oUIElement, "property", $UIA_NamePropertyId)                      ;This Can be used to identify the item to select by Visible Text for opening/closing specific items

    $iState = _UIA_action($oUIElement, "property", $UIA_ExpandCollapseExpandCollapseStatePropertyId) ;Identify if this is expanded
    If $iState = 1 Then
        _UIA_Action($oUIElement, "setfocus")                                                    ;Select the item
        ControlSend($hFacets, "Applications", "SysTreeView323", "{Left}")                       ;Now that the item is selected, send the Left key to the containing Control to collapse it.
    EndIf

    If $sItemText = "Accounting                    " Then                                       ;Since we moved through the list in reverse, the item 0 should be the first item in the list.
        _UIA_Action($oUIElement, "setfocus")                                                    ;Select the item
    EndIf

Next

 

Update:  Got a bit more info from COM error trapping

We intercepted a COM Error at line: 1079!
    Number: 0x00000003
    Description: NULL Pointer assignment
 

In my UIAWrapper.au3 file it is for the Func _UIA_getObjectByFindAll on this line

$oAutomationElementArray = ObjCreateInterface($pElements, $sIID_IUIAutomationElementArray, $dtagIUIAutomationElementArray)

 

 

Thanks

Edited by BigDaddyO
Link to comment
Share on other sites

  • 2 weeks later...

It looks like you are searching under an element without child elements.

Hard to say where (whats in the logfile written?). $pElements is most likely null so a little earlier this cannot be set.

Just before the line you gave you could add a check

if $pElements=null then

....

endif

in this section

;~ Now get the tree of runtime objects and try to find a match
        If _UIA_IsElement($UIA_oUIElement) Then
            _UIA_LOG("*** Try to get a list of elements *** treescopetype:=" & $treeScope & @CRLF, $UIA_Log_Wrapper)
            $UIA_oUIElement.FindAll($treeScope, $UIA_oTRUECondition, $pElements)
            $oAutomationElementArray = ObjCreateInterface($pElements, $sIID_IUIAutomationElementArray, $dtagIUIAutomationElementArray)
;~          //TODO: For some silly reason we have to wait otherwise element is not ready
;~          sleep(200)
        EndIf

 

Edited by junkew
Link to comment
Share on other sites

Hey, I've had easy success with examples (notepad.exe and calc.exe) but when I try it on a specific application, the simplespy.au3 closes itself (crashes?) when I CTRL+W on the button I'm trying to manipulate. I've tried 32 and 64 bit, and I have tried compiling it as both 64 and 32 bit and running it that way.

I figured I would try this out because AutoIT also hates this particular dialog box. When the box is in the foreground all AutoIT functions cease to work. Before focus, I can easily move the mouse around and click stuff but this dialog box causes it to just stop working altogether when it is in the foreground or interacted with. I can for example, bring CALC.exe to focus while the dialog is restored but not focused, press buttons on calc, then move the mouse to the exact place on the screen where the continue button is. When I fire the click event, nothing happens and no further lines in the script are processed.

I'm trying to use this to uninstall an application that will always prompt the user regardless of specifying silent uninstall and the vendor (Sonicwall) has no resolution. Does anyone know why this dialog box is such a nuisance?

image.png.34285123af7b77423277038b9dfda9e5.png

Link to comment
Share on other sites

Sorry for the slow reply, I was able to get Inspect.exe going and it shows:
 

How found:    Mouse move (4632,463)
    hwnd=0x000000000035164E ??bit class="#32770" style=0xFFFFFFFF94C800CC ex=0x10101
------


Cannot get object from point:
[Error: FromPoint: hr=0xFFFFFFFF80070005 - Access is denied.]
 

 

Link to comment
Share on other sites

Make sure you run as administrator.

Check the tree in inspect.exe whats below the popup #32770.

Most likely user accont control is on and you can spy less.

Most likely command 

Mouseclick(4632,463) wiil work 

or

try

mousemove(4632,463)

click()

Link to comment
Share on other sites

Always run as administrator :) And I just gave turning off UAC a try and it's the same.

As stated though, Mouseclick() or any other function that interacts with the window causes the script to stop processing any further lines in the script. I had hopes on your UAC suggestion though as I hadn't tried it yet. No dice.

I'm going to chase this down now as an Inspect.exe issue, I suspect whatever is blocking AutoIT and these scripts is blocking Inspect.exe and I might get some answers from MS on the matter. I can see lots of threads on the internet regarding my error in Inspect.exe and hopefully that will reveal the cause.

Link to comment
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
 Share

×
×
  • Create New...