locked
UIAutomationCore.dll could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM RRS feed

  • Question

  • I am trying to add UIAutomationCore.dll to Vb.net but I got the above error ,
    I tried to register the dll but nothing changed  
    I tried TlbImp.exe , but gave alot of warnings and errors
     Tried to place it in My documents folder , no hope  .
    I don't know why Microsoft is always irritating us with these strange issues !
    I mean I finished my code in 3 hours and I have been looking for a way to add this reference for 4 days , 
     Please Help !
    Monday, June 5, 2017 8:38 PM

Answers

  •  I found the link below which is where i believe you got the code from,  just in case others want to inspect the VBA code which apparently works for doing this...

     VBA code to wait until file download from IE is complete

     I converted your example over to use the method i showed in the other thread that i gave a link to in my first post.  It did not take to much work,  however i do not have a new version of IE to test it on,  i use Firefox.  So,  i could not test it and am not sure about the two lines below.  They appear 3 times in the DownloadFromIEFrameNotificationBar function and i believe i may have the un-commented line right but,  you will have to test it.  If it does not work,  then do some debugging,  maybe the commented out lines are right,  not sure.

     
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)


     It is about as close as i can get it without being able to test it.  I would also suggest maybe running it in a separate thread do to all the While Loops which it appears you have added to it, and the use of the DoEvents.  I don`t recommend the use of Application.DoEvents so,  running it in another thread would stop it from freezing the UI thread if you get rid of the use of the DoEvents calls.

     I am sure it could be refined a bit more too but,  you can try it and get it working before tinkering with it too much.  8)

    Option Strict On
    Option Explicit On
    Option Infer Off

    Imports System.Windows.Automation ' requires you to add a reference to (UIAutomationClient) and (UIAutomationTypes) in the (Reference Manager / Assemblies)
    Imports System.Threading

    Public Class Form1
        Private RetryFlag As Boolean = False
        Private Const UIA_InvokePatternId As Integer = 10000

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim IE As Process = Process.GetProcessesByName("iexplore").Where(Function(x) x.MainWindowTitle.ToLower.Contains("internet explorer")).FirstOrDefault
            If IE IsNot Nothing Then
                DownloadFromIEFrameNotificationBar(IE.MainWindowHandle)
            Else
                MessageBox.Show("Internet Explorer Process Not Found.")
            End If
        End Sub

        Public Sub DownloadFromIEFrameNotificationBar(hBrowser As IntPtr)
            Dim eBrowser As AutomationElement = Nothing
            Dim eFNB As AutomationElement = Nothing
            Dim e As AutomationElement = Nothing
            Dim InvokePattern As InvokePattern = Nothing
            RetryFlag = False

            '--Find 'Frame Notification Bar' element
            While eFNB Is Nothing
                eBrowser = AutomationElement.FromHandle(hBrowser)
                eFNB = FindFromAllElementsWithClassName(eBrowser, "Frame Notification Bar")
            End While


            '--Find 'Save' button element
            While e Is Nothing
                e = FindFromAllElementWithName(eFNB, "Save")
            End While

            '--'Click' the 'Save'  button
            Thread.Sleep(200)
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
            InvokePattern.Invoke()


            '--Wait for the file to download by waiting for the 'Open Folder' button to appear in the 'Frame Notification Bar'
            e = Nothing
            While RetryFlag
                While e Is Nothing
                    e = FindFromAllElementWithNameRetry(eFNB, "Open folder", "Retry")
                End While

                '--'Click' the 'Retry'  button
                If RetryFlag Then
                    Thread.Sleep(1000)
                    InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
                    'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
                    InvokePattern.Invoke()
                    Thread.Sleep(1000)
                End If
            End While


            '--Close Notification Bar window
            e = Nothing
            While e Is Nothing
                e = FindFromAllElementWithName(eFNB, "Close")
            End While

            '--'Click' the 'Close'  button
            Thread.Sleep(400)
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
            InvokePattern.Invoke()
        End Sub

        Private Function FindFromAllElementWithNameRetry(e As AutomationElement, n As String, k As String) As AutomationElement
            Dim MaxTime As Integer = 10000
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.Name = n Then
                        Return ea(i)
                        RetryFlag = False
                        Exit Function
                    ElseIf ea(i).Current.Name = k Then
                        Return ea(i)
                        RetryFlag = True
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function

        Private Function FindFromAllElementWithName(e As AutomationElement, n As String, Optional MaxTime As Integer = 10000) As AutomationElement
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.Name = n Then
                        Return ea(i)
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function

        Private Function FindFromAllElementsWithClassName(e As AutomationElement, c As String, Optional MaxTime As Integer = 10000) As AutomationElement
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.ClassName = c Then
                        Return ea(i)
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function
    End Class
     

     EDIT:  This leads me to ask,  have you tried/considered trying to use some other of the .net methods to download your file?  If not,  that may very well be much easier than automating IE.

     


    If you say it can`t be done then i`ll try it

    • Edited by IronRazerz Tuesday, June 6, 2017 10:59 PM
    • Marked as answer by Mofadl Tuesday, June 6, 2017 11:23 PM
    Tuesday, June 6, 2017 10:42 PM

All replies

  • You are being shown in c# and VS, but it should work the same with VB and VS where the COM wrapper is VBis being made for you.

    https://stackoverflow.com/questions/635839/best-way-to-access-com-objects-from-c-sharp

    Monday, June 5, 2017 10:30 PM
  •  I am taking it that this is a continuation of your last question...

    Declaring IUIAutomationelement in VB.net

     I am not sure how Castorix31 added a reference to the UIAutomationCore.dll,  i get the same error you do when i try it.  Maybe he can explain?

     Anyways,  if you can give us a link to the code you are trying to use,  or if it is your own code you can post it here and maybe we can help you convert it over to use the method i showed in that post for using the UIAutomation methods.


    If you say it can`t be done then i`ll try it

    Tuesday, June 6, 2017 12:01 AM
  •  I am taking it that this is a continuation of your last question...

    Declaring IUIAutomationelement in VB.net

     I am not sure how Castorix31 added a reference to the UIAutomationCore.dll,  i get the same error you do when i try it.  Maybe he can explain?


    I did nothing special...

    I just added it from C:\Windows\system32 (VS 2015 on Windows 10, french version) :

    And I get all the interfaces :


    • Edited by Castorix31 Tuesday, June 6, 2017 4:59 AM
    Tuesday, June 6, 2017 4:56 AM
  • Hi Mofadl,

    My computer is windows 10 Enterprise 1607, and I can find UIAutomationCore.dll in C:\Windows\System32 field, and then I can directly add this dll in my vb.net project.

    Please confirm your computer has this dll or not, if not , please refer to this article to add reference.

    http://www.dllfixis.com/uiautomationcore.dll.html

    best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    Tuesday, June 6, 2017 6:15 AM
  • Thanks IronRazers , please help me to convert it 

    Public Function DownloadFromIEFrameNotificationBar(ByRef oBrowser As InternetExplorer, Filename As String) As Long
    
        Dim UIAutomation As IUIAutomation
        Dim eBrowser As IUIAutomationElement, eFNB As IUIAutomationElement, e As IUIAutomationElement
        Dim InvokePattern As IUIAutomationInvokePattern
        Dim DLfn As String
    Dim BrowserHwnd As Long
    RetryFlag = False
    
        DownloadFromIEFrameNotificationBar = 0
    
        
    
        '--Find 'Frame Notification Bar' element
    Do
    BrowserHwnd = oBrowser.Hwnd
     UIAutomation = New CUIAutomation
     eBrowser = UIAutomation.ElementFromHandle(ByVal BrowserHwnd)
     eFNB = FindFromAllElementsWithClassName(eBrowser, "Frame Notification Bar")
    Loop While eFNB Is Nothing
    
    
    
        'If eFNB Is Nothing Then
          '  Debug.Print "'Frame Notification Bar' not found"
          '  DownloadFromIEFrameNotificationBar = 1
          '  Exit Function
      '  End If
    
        '--Find 'Save' button element
    Do
         e = FindFromAllElementWithName(eFNB, "Save")
        Loop While e Is Nothing
        'visible?
        
        'If e Is Nothing Then
           ' Debug.Print "'Save' button not found"
           ' DownloadFromIEFrameNotificationBar = 2
           ' Exit Function
       ' End If
    
        '--'Click' the 'Save'  button
    
        Sleep 200
         InvokePattern = e.GetCurrentPattern(UIA_InvokePatternId)
        InvokePattern.Invoke
    
        '--Wait for the file to download by waiting for the 'Open Folder' button to appear in the 'Frame Notification Bar'
     e = Nothing
    
    
    Line: Do
    
         e = FindFromAllElementWithNameRetry(eFNB, "Open folder", "Retry")
        Loop While e Is Nothing
        '--'Click' the 'Retry'  button
        If RetryFlag = True Then
        Sleep 1000
         InvokePattern = e.GetCurrentPattern(UIA_InvokePatternId)
        InvokePattern.Invoke
        Sleep 1000
        End If
        
        If RetryFlag = True Then GoTo Line
        
        
        
        
        'If e Is Nothing Then
          '  Debug.Print "'Open Folder' button not found"
            'DownloadFromIEFrameNotificationBar = 3
           ' Exit Function
        'End If
    
        '--Done with download, now look for a file that was very recently (with in 3 seconds) added to the User's Downloads folder and get the file name of it
    
       ' DLfn = FindVeryRecentFileInDownloads()
    
        'If DLfn <> "" Then
    
            '--We got recent downloaded file, now Delete the file we are saving too (if it exists) so the Move file will be successful
    
            'DeleteFile Filename
          '  MoveFile DLfn, Filename
       ' Else
          '  Debug.Print "Very recent file not found!"
         '   DownloadFromIEFrameNotificationBar = 4
       ' End If
    
        '--Close Notification Bar window
        
     e = Nothing
    Do
         e = FindFromAllElementWithName(eFNB, "Close")
        Loop While e Is Nothing
        
        'If e Is Nothing Then
          '  Debug.Print "'Close' button not found"
           ' DownloadFromIEFrameNotificationBar = -1
           ' Exit Function
        'End If
    
        '--'Click' the 'Close'  button
    
        Sleep 400
         InvokePattern = e.GetCurrentPattern(UIA_InvokePatternId)
        InvokePattern.Invoke
    End Function
    
    Private Function FindFromAllElementWithNameRetry(e As IUIAutomationElement, n As String, k As String) As IUIAutomationElement
        Dim oUIAutomation As New CUIAutomation
        Dim MaxTime As Long
        Dim ea As IUIAutomationElementArray
        Dim i As Long, timeout As Date
    MaxTime = 10000
        timeout = Now + TimeSerial(0, 0, MaxTime)
    
        Do
             ea = e.FindAll(TreeScope_Subtree, oUIAutomation.CreateTrueCondition)
    
            For i = 0 To ea.Length - 1
                If ea.GetElement(i).CurrentName = n Then
                     FindFromAllElementWithNameRetry = ea.GetElement(i)
                    RetryFlag = False
                    Exit Function
                    ElseIf ea.GetElement(i).CurrentName = k Then
                     FindFromAllElementWithNameRetry = ea.GetElement(i)
                    RetryFlag = True
                    Exit Function
                End If
            Next
    
            DoEvents
    
            Sleep 20
        Loop Until Now > timeout
    
         FindFromAllElementWithNameRetry = Nothing
    End Function
    Private Function FindFromAllElementWithName(e As IUIAutomationElement, n As String, Optional MaxTime As Long = 10000) As IUIAutomationElement
        Dim oUIAutomation As New CUIAutomation
        Dim ea As IUIAutomationElementArray
        Dim i As Long, timeout As Date
    
        timeout = Now + TimeSerial(0, 0, MaxTime)
    
        Do
            ea = e.FindAll(TreeScope_Subtree, oUIAutomation.CreateTrueCondition)
    
            For i = 0 To ea.Length - 1
                If ea.GetElement(i).CurrentName = n Then
                    FindFromAllElementWithName = ea.GetElement(i)
                    Exit Function
                End If
            Next
    
            DoEvents
    
            Sleep 20
        Loop Until Now > timeout
    
         FindFromAllElementWithName = Nothing
    End Function
    
    
    Private Function FindFromAllElementsWithClassName(e As IUIAutomationElement, c As String, Optional MaxTime As Long = 10000) As IUIAutomationElement
        Dim oUIAutomation As New CUIAutomation
        Dim ea As IUIAutomationElementArray
        Dim i As Long, timeout As Date
    
        timeout = Now + TimeSerial(0, 0, MaxTime)
    
        Do
             ea = e.FindAll(TreeScope_Subtree, oUIAutomation.CreateTrueCondition)
    
            For i = 0 To ea.Length - 1
                If ea.GetElement(i).CurrentClassName = c Then
                     FindFromAllElementsWithClassName = ea.GetElement(i)
                    Exit Function
                End If
            Next
    
            DoEvents
    
            Sleep 20
        Loop Until Now > timeout
     FindFromAllElementsWithClassName = Nothing
    End Function


    Tuesday, June 6, 2017 4:05 PM
  • Hi Cherry , I already have it but I cannot add it I get this error every time "UIAutomationCore.dll could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM"
    Tuesday, June 6, 2017 4:07 PM
  • every time I add it it gives the same error :
    UIAutomationCore.dll could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM
    Tuesday, June 6, 2017 4:11 PM
  • Hi Cherry , I already have it but I cannot add it I get this error every time "UIAutomationCore.dll could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM"
    And did you all suggestions which are on the page for which Cherry gave a link?

    Success
    Cor

    Tuesday, June 6, 2017 4:40 PM
  •  I found the link below which is where i believe you got the code from,  just in case others want to inspect the VBA code which apparently works for doing this...

     VBA code to wait until file download from IE is complete

     I converted your example over to use the method i showed in the other thread that i gave a link to in my first post.  It did not take to much work,  however i do not have a new version of IE to test it on,  i use Firefox.  So,  i could not test it and am not sure about the two lines below.  They appear 3 times in the DownloadFromIEFrameNotificationBar function and i believe i may have the un-commented line right but,  you will have to test it.  If it does not work,  then do some debugging,  maybe the commented out lines are right,  not sure.

     
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)


     It is about as close as i can get it without being able to test it.  I would also suggest maybe running it in a separate thread do to all the While Loops which it appears you have added to it, and the use of the DoEvents.  I don`t recommend the use of Application.DoEvents so,  running it in another thread would stop it from freezing the UI thread if you get rid of the use of the DoEvents calls.

     I am sure it could be refined a bit more too but,  you can try it and get it working before tinkering with it too much.  8)

    Option Strict On
    Option Explicit On
    Option Infer Off

    Imports System.Windows.Automation ' requires you to add a reference to (UIAutomationClient) and (UIAutomationTypes) in the (Reference Manager / Assemblies)
    Imports System.Threading

    Public Class Form1
        Private RetryFlag As Boolean = False
        Private Const UIA_InvokePatternId As Integer = 10000

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim IE As Process = Process.GetProcessesByName("iexplore").Where(Function(x) x.MainWindowTitle.ToLower.Contains("internet explorer")).FirstOrDefault
            If IE IsNot Nothing Then
                DownloadFromIEFrameNotificationBar(IE.MainWindowHandle)
            Else
                MessageBox.Show("Internet Explorer Process Not Found.")
            End If
        End Sub

        Public Sub DownloadFromIEFrameNotificationBar(hBrowser As IntPtr)
            Dim eBrowser As AutomationElement = Nothing
            Dim eFNB As AutomationElement = Nothing
            Dim e As AutomationElement = Nothing
            Dim InvokePattern As InvokePattern = Nothing
            RetryFlag = False

            '--Find 'Frame Notification Bar' element
            While eFNB Is Nothing
                eBrowser = AutomationElement.FromHandle(hBrowser)
                eFNB = FindFromAllElementsWithClassName(eBrowser, "Frame Notification Bar")
            End While


            '--Find 'Save' button element
            While e Is Nothing
                e = FindFromAllElementWithName(eFNB, "Save")
            End While

            '--'Click' the 'Save'  button
            Thread.Sleep(200)
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
            InvokePattern.Invoke()


            '--Wait for the file to download by waiting for the 'Open Folder' button to appear in the 'Frame Notification Bar'
            e = Nothing
            While RetryFlag
                While e Is Nothing
                    e = FindFromAllElementWithNameRetry(eFNB, "Open folder", "Retry")
                End While

                '--'Click' the 'Retry'  button
                If RetryFlag Then
                    Thread.Sleep(1000)
                    InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
                    'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
                    InvokePattern.Invoke()
                    Thread.Sleep(1000)
                End If
            End While


            '--Close Notification Bar window
            e = Nothing
            While e Is Nothing
                e = FindFromAllElementWithName(eFNB, "Close")
            End While

            '--'Click' the 'Close'  button
            Thread.Sleep(400)
            InvokePattern = CType(e.GetCurrentPattern(AutomationPattern.LookupById(UIA_InvokePatternId)), InvokePattern)
            'InvokePattern = CType(e.GetCurrentPattern(InvokePatternIdentifiers.Pattern), InvokePattern)
            InvokePattern.Invoke()
        End Sub

        Private Function FindFromAllElementWithNameRetry(e As AutomationElement, n As String, k As String) As AutomationElement
            Dim MaxTime As Integer = 10000
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.Name = n Then
                        Return ea(i)
                        RetryFlag = False
                        Exit Function
                    ElseIf ea(i).Current.Name = k Then
                        Return ea(i)
                        RetryFlag = True
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function

        Private Function FindFromAllElementWithName(e As AutomationElement, n As String, Optional MaxTime As Integer = 10000) As AutomationElement
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.Name = n Then
                        Return ea(i)
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function

        Private Function FindFromAllElementsWithClassName(e As AutomationElement, c As String, Optional MaxTime As Integer = 10000) As AutomationElement
            Dim ea As AutomationElementCollection
            Dim timeout As Date = Now.AddSeconds(MaxTime)
            Do
                ea = e.FindAll(TreeScope.Subtree, Condition.TrueCondition)
                For i As Integer = 0 To ea.Count - 1
                    If ea(i).Current.ClassName = c Then
                        Return ea(i)
                    End If
                Next
                Application.DoEvents()
                Thread.Sleep(20)
            Loop Until Now < timeout
            Return Nothing
        End Function
    End Class
     

     EDIT:  This leads me to ask,  have you tried/considered trying to use some other of the .net methods to download your file?  If not,  that may very well be much easier than automating IE.

     


    If you say it can`t be done then i`ll try it

    • Edited by IronRazerz Tuesday, June 6, 2017 10:59 PM
    • Marked as answer by Mofadl Tuesday, June 6, 2017 11:23 PM
    Tuesday, June 6, 2017 10:42 PM
  • Hi Cherry , I already have it but I cannot add it I get this error every time "UIAutomationCore.dll could not be added.Please make sure that the file is accessible and that it is a valid assembly or COM"

    And did you all suggestions which are on the page for which Cherry gave a link?

    Success
    Cor

     That link only shows you to download the dll and what folder(s) to place it in,  C:\Windows\System32 or another one or two.  The file is apparently already there on OP`s computer and on mine too.  I can add it to the (Reference Manager) by browsing to it but,  it gives this error when i try to check it and press (Ok) to add the reference to the project.  I know the file is there, that only leaves the option of not a valid assembly or com object.  I am using VS2015 Community with Win7 Pro 32bit (x86).


    If you say it can`t be done then i`ll try it

    Tuesday, June 6, 2017 10:53 PM

  • IronRazerz , you saved me for the second time ! really appreciate it

    I only have one question , what do you mean by another methods in .net ? 

    I will tell you what I am doing , I have a website that I can export a long query from it as an excel file , and download it 
    I tried to get the url for the file download but it is restricted by the server , so I had no choice but to use IE automation ,and so I had to handle the save as prompt 

    I also have one last question since you are pretty good with UI , when I used this code in VBA and made IE invisible , the webpage had to show up once the save as notification bar is there 

    it seems like notification bars are forcing the invisible page to be visible 

    So the page appears once save as is there then it got handled by VBA and closed after downloading
     
    My question is : is there any way in vb.net that I can force IE page to be invisible even when it has a notification bar showing up ?

    Thanks Alot
    Tuesday, June 6, 2017 11:32 PM
  •  What i mean by "other .net methods" is using the WebClient Class. There is also the old My.Computer.Network.DownloadFile Method but,  i would recommend the WebClient class over that.  However,  they would require an address path to the file you want to download.  There is examples of using it at the bottom of the link i gave,  there is also lots of examples in the questions that have been asked here on the forum like This Forum Search Result

     I am surely not that experienced at using UIAutomation,  i have only used it a handful of times.  I just do a bit of searching,  experimenting,  and reading the msdn documents to figure out what i need for what i want to do.  So,  as for your second question,  i can`t really give an answer because i really cant test it and experiment with it.  Sorry.

     You`re welcome,  and i hope it helped get you closer to getting it working.  8)


    If you say it can`t be done then i`ll try it

    Wednesday, June 7, 2017 12:09 AM