Page 55 of 56 FirstFirst ... 54553545556 LastLast
Results 541 to 550 of 554

Thread: Tests Copying pasting Cliipboard issues

  1. #541
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    mmd,,dndak

    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    https://eileenslounge.com/viewtopic.php?p=318868#p318868
    https://eileenslounge.com/viewtopic.php?p=318311#p318311
    https://eileenslounge.com/viewtopic.php?p=318302#p318302
    https://eileenslounge.com/viewtopic.php?p=317704#p317704
    https://eileenslounge.com/viewtopic.php?p=317704#p317704
    https://eileenslounge.com/viewtopic.php?p=317857#p317857
    https://eileenslounge.com/viewtopic.php?p=317541#p317541
    https://eileenslounge.com/viewtopic.php?p=317520#p317520
    https://eileenslounge.com/viewtopic.php?p=317510#p317510
    https://eileenslounge.com/viewtopic.php?p=317547#p317547
    https://eileenslounge.com/viewtopic.php?p=317573#p317573
    https://eileenslounge.com/viewtopic.php?p=317574#p317574
    https://eileenslounge.com/viewtopic.php?p=317582#p317582
    https://eileenslounge.com/viewtopic.php?p=317583#p317583
    https://eileenslounge.com/viewtopic.php?p=317605#p317605
    https://eileenslounge.com/viewtopic.php?p=316935#p316935
    https://eileenslounge.com/viewtopic.php?p=317030#p317030
    https://eileenslounge.com/viewtopic.php?p=317030#p317030
    https://eileenslounge.com/viewtopic.php?p=317014#p317014
    https://eileenslounge.com/viewtopic.php?p=316940#p316940
    https://eileenslounge.com/viewtopic.php?p=316927#p316927
    https://eileenslounge.com/viewtopic.php?p=316875#p316875
    https://eileenslounge.com/viewtopic.php?p=316704#p316704
    https://eileenslounge.com/viewtopic.php?p=316412#p316412
    https://eileenslounge.com/viewtopic.php?p=316412#p316412
    https://eileenslounge.com/viewtopic.php?p=316254#p316254
    https://eileenslounge.com/viewtopic.php?p=316046#p316046
    https://eileenslounge.com/viewtopic.php?p=317050&sid=d7e077e50e904a138c794e1f2115da95#p317050
    https://www.youtube.com/@alanelston2330
    https://www.youtube.com/watch?v=yXaYszT11CA&lc=UgxEjo0Di9-9cnl8UnZ4AaABAg.9XYLEH1OwDIA35HNIei0z-
    https://eileenslounge.com/viewtopic.php?p=316154#p316154
    https://www.youtube.com/watch?v=TW3l7PkSPD4&lc=UgwAL_Jrv7yg7WWC8x14AaABAg
    https://teylyn.com/2017/03/21/dollarsigns/#comment-191
    https://eileenslounge.com/viewtopic.php?p=317050#p317050
    https://eileenslounge.com/viewtopic.php?f=27&t=40953&p=316854#p316854
    https://www.eileenslounge.com/viewtopic.php?v=27&t=40953&p=316875#p316875
    https://eileenslounge.com/viewtopic.php?p=316057#p316057
    https://eileenslounge.com/viewtopic.php?p=315915#p315915
    https://eileenslounge.com/viewtopic.php?p=316705#p316705
    https://eileenslounge.com/viewtopic.php?p=316704#p316704
    https://eileenslounge.com/viewtopic.php?p=176255#p176255
    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    Last edited by DocAElstein; 07-27-2024 at 02:11 PM.

  2. #542
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10

    bb

    xnm ccy cy
    Last edited by DocAElstein; 10-20-2024 at 11:18 PM.

  3. #543
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    xvndvndvn
    Last edited by DocAElstein; 04-20-2024 at 01:32 AM.

  4. #544
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    hcasscs
    Last edited by DocAElstein; 04-23-2024 at 01:54 AM.

  5. #545
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10

    Test for a EileenLounge post 1 (Review of a similar older Thread, which failed to solve the problem)

    Hi
    I thought it might be of general subject interest and helpful for future reference to mention that we had this exact same question from Yasser in 2019 ,
    (although it took us most of that Thread to figure out what he wanted, which was to get VBA to do something like when we manually click that Clear All Button .
    In the meantime we got a bit more insight into what The Windows Clipboard is really all about: It seems we are not strictly playing with a clipboard here, since there is only one, and that thing often referred to as the Office Clipboard aint really part of the The Windows Clipboard : What we are doing here is messing with something that makes its own limited copies of things last set to go on The Windows Clipboard , (in many cases, especially in Excel, those things never get there, ( there in the real clipboard that is) until a Paste. )
    We are messing with something that could also be described as a specific viewer of the phenomena that is The Windows Clipboard
    Also if you have multiple versions of Office open, they will all make their own independent copy of what is sent or set to be sent to the windows clipboard, but all our coding attempts so far will just clear stuff in the version its running in. That last bit is perhaps an important point that might be worth saying again a bit differently: Say I have Excel open from Office 2003, and I have word open from Office 2007. I then go somewhere, (anywhere, does not have to be anywhere in particular other than in Windows ), and I copy a word, Alan. That now appears in two list, one in each of the open Office versions: https://i.postimg.cc/nrhXLb56/A-Clip...ce-version.jpg
    But if I use just one of the two Clear All Buttons, then it only is cleared from that list. So that is telling us again that each of the two things is monitoring and making its own copy of what is going or set to be going to The Windows Clipboard
    (Some quirky contradiction like things do exist however. For example after using either Clear All button in one of the Offices, you will then no longer be able to do a simple windows Paste operation, even if things were copied from , and are still showing in the list in the other Office. So somehow either button does have the side effect of clearing the windows clipboard)

    So there is no single Office Clipboard in the way that there is a single windows clipboard.

    I am not trying to be annoyingly pedantic, - I just think it helps to understand things a bit better, which might lead to better and more interesting and clear solutions . Maybe calling it an Office’s Clipboard monitor might be better.
    A confusing quirk is that messing with it might effect the thing its monitoring. Maybe a bit like a old analogue pressure meter measuring some very high pressure large gas tank, and because of some badly designed leaking spaghetti dependency chains, if you mess with the monitor you might cause the tank to explode!

    Anyways, manipulating any Office’s Clipboard monitor thing in any direct way with VBA I have yet to see done.
    Smarter people have told me that third party software that tries to claim to be some clipboard monitor or other are a bit iffy.
    I think throughout we are concentrating here on just getting that button clicked, at some higher accessible interface level.
    _._________

    Back in 2019 we had a few of the mysterious API codings offered, big ones, most of which I think seemed to come from an Arab guy, who is an Author of a lot of these API thingies, Jaafar Tribak. I fiddled around, admittedly blindly, and got a version to work across Office versions 2003 2007 2010, (which was all I had at the time). It’s still was mostly Jaafar Tribak’s big coding and I was/am no the wiser how it works.
    In the light of this Thread, and also just re reading all the previous stuff, I did some minor changes/ updates, and this is probably "my" latest attempt – its still mostly from the mysterious big versions from Jaafar Tribak, which seemed to have been the standard used for many years. )


    We hit a brick wall back then, in 2019, as we could not get it working in Office 2016. So Yasser went off to mrexcel.com and got some interesting info from Jaafar Tribak , who tried but failed still to get it working in Office 2016. (Back then he only had Office versions 2007 2010 and 2013)
    (That mrexcel thread has got a bit messed up by a forum software update, so I tried to make a repaired summarized copy of it pulling out the important bits here )

    Back in 2019, the persistent error ( In Office 2016 ) with "my" coding and a few of the bigger codings offered by Jaafar Tribak at mrexcel was "Object doesn't support this property or method 'Error 438' " at the line
    Call oIA.accDoDefaultAction(vKid).
    For all previous Office version, that code line did not error, and that is the code line in the previous big codings that does the clearing, that is to say does the same as manually clicking that Clear All button in the Office’s Clipboard viewer, ( which incidentally must be open for any of the codings so far to work. I noticed on my recent review that it does not always get opened as it should by the previous codings, and I added a small mod that seems to overcome that problem)

    The only reason for this Office 2016 problem at the time that Jaafar Tribak could think of was that the hierarchy of the accessible buttons in the office clipboard had changed for Office 2016. My thinking was that something quirky was going on as we weren’t getting at any kid from the relevant interface out of the COM wrapper that should have that interface of the active accessibles…… :innocent:
    _.____________


    In the meantime I have got some 2013 Office versions and one 2016 versions, so I thought I would
    _ a) take a re look at the previous Threads
    and
    _b) a look at this recent one( the one I am writing in now) …..


    ….. maybe in the next post……
    Last edited by DocAElstein; Yesterday at 10:12 PM.

  6. #546
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10

    Test Post for an EileenLounge post PART 2

    Continued from last post…..

    _a) I confirmed all the previous findings, which was that the codings from 2019 were OK for Office up to and including 2013 and then the mentioned problem was also what I got in my Office 2016
    https://www.excelfox.com/forum/showt...ge11#post17966
    https://www.excelfox.com/forum/showt...ge11#post17968
    https://www.excelfox.com/forum/showt...ge11#post17969


    _._________________________________

    Now _b ), some comments and interesting findings as a result of this recent Thread, the one I am in now

    So back in early 2019 we were all stuck, even that Arab guru, Jaafar Tribak

    Now, this is the interesting thing, consider from back then in 2019, one of Jaafar Tribak’s / ("my" version of his) failed ( failed in Office 2016 ) attempts, ( and I will call this and similar looking ones from now on the more recent appearing small coding to distinguish it from the big ones that we had all back then been looking at and which had become the standard one used by many people for a long time)

    ( Note also, that back then, we all seem to have all missed the fact that this small one does actually work in Offices 2003, 2007, 2010, 2013. So we had an alternative coding to the big ones most people had been using, but we all missed that, because at the time, we were concentrating on getting something to work in Office 2016 )

    This is that smaller coding that we missed, and it would have been / (would be still for office 2013 and lower) an alternative to the previously widely used bigger type of codings. (The version here has a few simple modifications from me, just to help in the following comparisons and discussions)
    Code:
     Option Explicit
        #If VBA7 Then
         Declare PtrSafe Function AccessibleChildren Lib "oleacc" (ByVal paccContainer As Office.IAccessible, ByVal iChildStart As Long, ByVal cChildren As Long, ByRef rgvarChildren As Any, ByRef pcObtained As Long) As Long
        #Else
         Declare Function AccessibleChildren Lib "oleacc" (ByVal paccContainer As Office.IAccessible, ByVal iChildStart As Long, ByVal cChildren As Long, ByRef rgvarChildren As Any, ByRef pcObtained As Long) As Long
        #End If
    
    Sub small_2019_ClearOfficeClipBoard()  ' Slightly modified attempt of Jaafar Tribak from 2019 to  do the  Clear All  button   https://www.mrexcel.com/board/threads/reset-clear-clipboard.1087948/#post-5228633     https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues/page11#post17966
    Dim avAcc, bClipboard As Boolean, j As Long
    Dim MyPain As String
        If CLng(Val(Application.Version)) <= 11 Then  '       Case 11: "Excel 2003" Windows  "Excel 2004"
         Let MyPain = "Task Pane"
        Else
         Let MyPain = "Office Clipboard"
        End If
    Set avAcc = Application.CommandBars(MyPain)   '
    Let bClipboard = avAcc.Visible
        If Not bClipboard Then
         Let avAcc.Visible = True
         DoEvents
        End If
        For j = 1 To 4                '  J=  1, 2, 3, 4
         AccessibleChildren avAcc, Choose(j, 0, 3, 0, 3), 1, avAcc, 1
        Next
    avAcc.accDoDefaultAction 2& '       This seems to do the clearing                     1& for paste
    Let Application.CommandBars(MyPain).Visible = bClipboard         '
    End Sub
    You can see straight away that it has strong similarity to what Hans found at stack overflow.
    Having read through that stack overflow Thread a few times, I am not totally sure if the people providing the seemingly working answers totally understood what was going on as there seems to be some inconstancy and confusion in their explanations to things such as VBA7 , Win32, Win64 issues.
    I certainly don’t claim to know better, but consider these two things:
    Mike’s enlightenment ,
    and
    what Jaafar Tribak said back in 2019 when he couldn’t get that small 2019 code ( like the one I gave above) to work in Office 2016 ….. I guess the reason for the code not working in office 2016 is that the hierarchy of the accessible buttons in the office clipboard has changed. ….

    I am going to take a Layman guess for now that we can forget 32Bit / 64Bit issues, and that this attempt from me could be a new small coding version from me that will do the job from Office 2003 upwards.

    I would welcome
    _1) any comment s, generally
    as well as
    _2) if anyone passing could try that coding and tell me if it worked or not and at the same time tell me their version info.
    ( If it's any help here, the macro http://<span style="font-family: Cou...()</span> here, will give some info of your versions in the Immediate window, (although note:
    ___ Application.OperatingSystem can give quirky answers in windows 11 , so the operating system result may be wrong for if you have Windows 11
    ___ I don’t know if that macro gets it correct in Office versions 2016, 2019,2021, 2024 or 365, since I don’t have them versions to check. My guess is that it might be a bit iffy for 2016 2019,2024 or 365
    . )
    _3) Based on what we have seen and learnt with these more recent small codings, I wonder if anyone has any ideas on how to get the previous big codings to work on Office 2016 upwards. I ask this because the big codings seem to be doing things a bit differently, and it could be useful to have the different coding available as an alternative, for example to try if for some reason the small ones one day did not work
    Last edited by DocAElstein; Yesterday at 02:49 PM.

  7. #547
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    ….. continued from the last two posts…..


    I am going to take a Layman guess for now that we can forget 32Bit / 64Bit issues, and that this attempt from me could be a new small coding version that will do the job from Office 2003 upwards. (It’s in the uploaded File also - Sub small_20202024_ClearOfficeClipBoard_() )
    I tested it so far on quite a few computers with operating systems XP, Vista Windows 7 8.1 10 and 11 and Office versions 2003 2007 2010 2013. Unfortunately I only have one higher version Office, 2016. It works on that.
    The important difference between mine and what Hans found is just this bit
    Code:
     '   coding change for Office versions at  --  Office 2016  ==
        If CLng(Val(Application.Version)) < 16 Then
    ' --For Office versions 2003 2007 2010 2013 ----------------------------------------
            For j = 1 To 4         '      J =    1  2  3  4
             AccessibleChildren avAcc, Choose(j, 0, 3, 0, 3), 1, avAcc, 1
            Next
         avAcc.accDoDefaultAction 2&  '           This seems to do the clearing   It will  NOT  error if viewer pain is already  Cleared                  1& for paste
    ' ----------------------------------------------------------------------------------
        Else
    ' ==For Office versions 2016 and higher ==============================================
            For j = 1 To 7      '           J =  1  2  3  4  5  6  7
             AccessibleChildren avAcc, Choose(j, 0, 3, 0, 3, 0, 3, 1), 1, avAcc, 1
            Next
         avAcc.accDoDefaultAction 0& '            This seems to do the clearing   It  WILL  error if viewer pain is already  Cleared
        End If ' =======================================================================
    So I have just a slightly changed section for Office 2013 and lower.

    I would welcome
    _1) any comments, generally
    as well as
    _2) if anyone passing could try that coding and tell me if it worked or not and at the same time tell me their version info.,( OS and Office). That would be particularly useful for newer versions, also 64 Bit versions if anyone has them.
    _3) Based on what we have seen and learnt with these more recent small codings, I wonder if anyone has any ideas on how to get the previous big coding types to work on Office 2016 upwards. I ask this because the big codings seem to be doing things a bit differently, and it could be useful to have the different coding available as an alternative, for example to try if for some reason the small ones one day did not work



    Some minor observations:
    (_(i) This is perhaps obvious from the discussions so far, but just to make sure and clear: The coding Hans found does not work in Offices 2013 and lower : In the loop at J = 6 I get the run time error '424' Object needed )
    _(ii)
    Quote Originally Posted by SpeakEasy post_id=319225 time=1721760469 user_id=8741
    the code as written will error if there is nothing in the Office Clipboard
    I can confirm that also for my coding on my Office 2016. However my coding does not error for Office versions 2013 and lower. Maybe that tells someone something, (of course for Office 2016 and higher my coding and the one Hans found are pretty well doing the same, but for Office 2013 and lower mine does it a bit differently, as seen in the snippet above)
    _ (iii) I don’t see any obvious difference in how a typical Offices Clipboard viewer pain looks like across the Office versions 2003 2007 2010 2013 2016 that might explain why the coding needs to be different from Office 2016: They all look a bit different to my layman eye.




    Alan
    Last edited by DocAElstein; Yesterday at 07:46 PM. Reason: Test Post for an EileenLounge post PART 3

  8. #548
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    Later
    ….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
    If you are my enemy, we will try to kick the fucking shit out of you…..
    Winston Churchill, 1939
    Save your Forum..._
    _...KILL A MODERATOR!!

  9. #549
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    This is post #549
    https://www.excelfox.com/forum/showt...ge55#post24142
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues/page55#post24142
    https://www.excelfox.com/forum/showt...ll=1#post24142
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues?p=24142&viewfull=1#post24142




    A monster big one, I missed, which I expect is a version of the more typical big ones, … that might have been what Rory meant in one of his characteristic quick short answers , those ones which are not always clear what he is talking about or to what he is referring to ……
    He said
    Quote Originally Posted by rory post_id=246738 time=1550498216 user_id=83
    ..You can also reduce the code (courtesy of Jaafar Tribak) .......
    , and then he went on to give a more typical big one such as my version of a big one here https://www.excelfox.com/forum/showt...ge56#post24317



    Code:
    Option Explicit
    
    Declare Function AccessibleObjectFromWindow Lib "oleacc" ( _
      ByVal hWnd As Long, ByVal dwId As Long, _
      riid As tGUID, ppvObject As Object) As Long
    
    Declare Function AccessibleChildren Lib "oleacc" _
      (ByVal paccContainer As IAccessible, ByVal iChildStart As Long, _
      ByVal cChildren As Long, rgvarChildren As Variant, _
      pcObtained As Long) As Long
    
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
      ByVal lpClassName As String, _
      ByVal lpWindowName As String) As Long
    
    Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
    
    Declare Function EnumChildWindows Lib "user32" (ByVal hwndParent _
      As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    
    Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, _
      ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _
      ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    
    Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, _
      ByVal hWnd2 As Long, ByVal lpClass As String, ByVal lpCaption As String) As Long
    
    Const CHILDID_SELF = 0&
    Const ROLE_PUSHBUTTON = &H2B&
    Const WM_GETTEXT = &HD
    
    Type tGUID
      lData1  As Long
      nData2  As Integer
      nData3  As Integer
      abytData4(0 To 7)  As Byte
    End Type
    
    Type AccObject
      objIA  As IAccessible
      lngChild  As Long
    End Type
    
    
    Dim lngChild  As Long
    Dim strClass  As String
    Dim strCaption  As String
    'Using Active Accessibility to clear Office clipboard
    'Assumption:
    'this is running within Word or Excel as a macro, thus the global Application object is available
    Sub ClearOfficeClipboard()
      Static accButton  As AccObject
      If accButton.objIA Is Nothing Then
      Dim fShown  As Boolean, FeelMyPain As String:
        If CLng(Val(Application.Version)) <= 11 Then  '                   Case 11: "Excel 2003" Windows    "Excel 2004" mac
         Let FeelMyPain = "Task Pane"
        Else
         Let FeelMyPain = "Office Clipboard"
        End If
    
      fShown = CommandBars(FeelMyPain).Visible
      If Not (fShown) Then
      CommandBars(FeelMyPain).Enabled = True
      CommandBars(FeelMyPain).Visible = True
      End If
      accButton = FindAccessibleChildInWindow(GetOfficeClipboardHwnd(Application), "Clear All", ROLE_PUSHBUTTON)
      End If
      If accButton.objIA Is Nothing Then
      MsgBox "Unable to locate the ""Clear All"" button!"
      Else
      accButton.objIA.accDoDefaultAction accButton.lngChild ' This appears to do the clearing, but note it sets off all the other functions
      End If
    End Sub
    
    'Retrieve window class name
    Function GetWndClass(ByVal hWnd As Long) As String
      Dim buf As String
      Dim retval  As Long
       
      buf = Space(256)
      retval = GetClassName(hWnd, buf, 255)
      GetWndClass = Left(buf, retval)
    End Function
    
    'Retrieve window title
    Function GetWndText(ByVal hWnd As Long) As String
      Dim buf  As String
      Dim retval  As Long
       
      buf = Space(256)
      retval = SendMessage(hWnd, WM_GETTEXT, 255, buf)
      GetWndText = Left(buf, InStr(1, buf, Chr(0)) - 1)
    End Function
    
    'The call back function used by EnumChildWindows
    Function EnumChildWndProc(ByVal hChild As Long, ByVal lParam As Long) As Long
      Dim found  As Boolean
       
      EnumChildWndProc = -1
      If strClass > "" And strCaption > "" Then
      found = StrComp(GetWndClass(hChild), strClass, vbTextCompare) = 0 And _
      StrComp(GetWndText(hChild), strCaption, vbTextCompare) = 0
      ElseIf strClass > "" Then
      found = (StrComp(GetWndClass(hChild), strClass, vbTextCompare) = 0)
      ElseIf strCaption > "" Then
      found = (StrComp(GetWndText(hChild), strCaption, vbTextCompare) = 0)
      Else
      found = True
      End If
    
      If found Then
      lngChild = hChild
      EnumChildWndProc = 0
      Else
      EnumChildWndProc = -1
      End If
    End Function
    
    'Find the window handle of a child window based on its class and titie
    Function FindChildWindow(ByVal hParent As Long, Optional cls As String = "", Optional title As String = "") As Long
      lngChild = 0
      strClass = cls
      strCaption = title
      EnumChildWindows hParent, AddressOf EnumChildWndProc, 0
      FindChildWindow = lngChild
    End Function
    
    'Retrieve the IAccessible interface from a window handle
    'Reference:Jean Ross,Chapter 17: Accessibility in Visual Basic,Advanced Microsoft Visual Basic 6.0, 2nd Edition
    Function IAccessibleFromHwnd(hWnd As Long) As IAccessible
      Dim oIA  As IAccessible
      Dim tg  As tGUID
      Dim lReturn  As Long
    
      ' Define the GUID for the IAccessible object
     ' {618736E0-3C3D-11CF-810C-00AA00389B71}
    
      With tg
      .lData1 = &H618736E0
      .nData2 = &H3C3D
      .nData3 = &H11CF
      .abytData4(0) = &H81
      .abytData4(1) = &HC
      .abytData4(2) = &H0
      .abytData4(3) = &HAA
      .abytData4(4) = &H0
      .abytData4(5) = &H38
      .abytData4(6) = &H9B
      .abytData4(7) = &H71
      End With
      ' Retrieve the IAccessible object for the form
     lReturn = AccessibleObjectFromWindow(hWnd, 0, tg, oIA)
      Set IAccessibleFromHwnd = oIA
    End Function
    
    'Recursively looking for a child with specified accName and accRole in the accessibility tree
    Function FindAccessibleChild(oParent As IAccessible, strName As String, lngRole As Long) As AccObject
      Dim lHowMany  As Long
      Dim avKids()  As Variant
      Dim lGotHowMany As Long, i  As Integer
      Dim oChild  As IAccessible
      FindAccessibleChild.lngChild = CHILDID_SELF
      If oParent.accChildCount = 0 Then
      Set FindAccessibleChild.objIA = Nothing
      Exit Function
      End If
      lHowMany = oParent.accChildCount
      ReDim avKids(lHowMany - 1) As Variant
      lGotHowMany = 0
      If AccessibleChildren(oParent, 0, lHowMany, avKids(0), lGotHowMany) <> 0 Then
      MsgBox "Error retrieving accessible children!"
      Set FindAccessibleChild.objIA = Nothing
      Exit Function
      End If
    
      'To do: the approach described in http://msdn.microsoft.com/msdnmag/issues/0400/aaccess/default.aspx
     ' are probably better and more reliable
     On Error Resume Next
      For i = 0 To lGotHowMany - 1
      If IsObject(avKids(i)) Then
      If StrComp(avKids(i).accName, strName) = 0 And avKids(i).accRole = lngRole Then
      Set FindAccessibleChild.objIA = avKids(i)
      Exit For
      Else
      Set oChild = avKids(i)
      FindAccessibleChild = FindAccessibleChild(oChild, strName, lngRole)
      If Not FindAccessibleChild.objIA Is Nothing Then
      Exit For
      End If
      End If
      Else
      If StrComp(oParent.accName(avKids(i)), strName) = 0 And oParent.accRole(avKids(i)) = lngRole Then
      Set FindAccessibleChild.objIA = oParent
      FindAccessibleChild.lngChild = avKids(i)
      Exit For
      End If
      End If
      Next i
    End Function
    
    Function FindAccessibleChildInWindow(hwndParent As Long, strName As String, lngRole As Long) As AccObject
      Dim oParent  As IAccessible
      Set oParent = IAccessibleFromHwnd(hwndParent)
      If oParent Is Nothing Then
      Set FindAccessibleChildInWindow.objIA = Nothing
      Else
      FindAccessibleChildInWindow = FindAccessibleChild(oParent, strName, lngRole)
      End If
    End Function
    
    'Retrieve the window handle of the task pane
    Function GetOfficeTaskPaneHwnd(app As Object) As Long
      GetOfficeTaskPaneHwnd = FindChildWindow(app.hWnd, _
      "MsoCommandBar", Application.CommandBars("Task Pane").NameLocal)
    End Function
    
    'Retrieve the window handle of the clipboard child window inside task pane
    'The window title of the clipboard window seems to be language independent,
    'making it a better start point to searching our UI element than the task pane window
    Function GetOfficeClipboardHwnd(app As Object) As Long
      GetOfficeClipboardHwnd = FindChildWindow(app.hWnd, , "Collect and Paste 2.0")
    End Function
    
    
    
    
    Last edited by DocAElstein; Today at 12:49 AM.

  10. #550
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,422
    Rep Power
    10
    -

    Spare post for later related to these current posts

    https://www.excelfox.com/forum/showt...ll=1#post24317
    .

    https://www.excelfox.com/forum/showt...-issues/page56
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues/page56
    https://www.excelfox.com/forum/showt...ge56#post24317
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues/page56#post24317
    https://www.excelfox.com/forum/showt...ll=1#post24317
    https://www.excelfox.com/forum/showthread.php/2824-Tests-Copying-pasting-Cliipboard-issues?p=24317&viewfull=1#post24317 [/size]



    . .












































    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    https://eileenslounge.com/viewtopic.php?p=320960#p320960
    https://eileenslounge.com/viewtopic.php?p=320957#p3209573
    https://eileenslounge.com/viewtopic.php?p=318868#p318868
    https://eileenslounge.com/viewtopic.php?p=318311#p318311
    https://eileenslounge.com/viewtopic.php?p=318302#p318302
    https://eileenslounge.com/viewtopic.php?p=317704#p317704
    https://eileenslounge.com/viewtopic.php?p=317704#p317704
    https://eileenslounge.com/viewtopic.php?p=317857#p317857
    https://eileenslounge.com/viewtopic.php?p=317541#p317541
    https://eileenslounge.com/viewtopic.php?p=317520#p317520
    https://eileenslounge.com/viewtopic.php?p=317510#p317510
    https://eileenslounge.com/viewtopic.php?p=317547#p317547
    https://eileenslounge.com/viewtopic.php?p=317573#p317573
    https://eileenslounge.com/viewtopic.php?p=317574#p317574
    https://eileenslounge.com/viewtopic.php?p=317582#p317582
    https://eileenslounge.com/viewtopic.php?p=317583#p317583
    https://eileenslounge.com/viewtopic.php?p=317605#p317605
    https://eileenslounge.com/viewtopic.php?p=316935#p316935
    https://eileenslounge.com/viewtopic.php?p=317030#p317030
    https://eileenslounge.com/viewtopic.php?p=317030#p317030
    https://eileenslounge.com/viewtopic.php?p=317014#p317014
    https://eileenslounge.com/viewtopic.php?p=316940#p316940
    https://eileenslounge.com/viewtopic.php?p=316927#p316927
    https://www.youtube.com/channel/UCnxwq2aGJRbjOo_MO54oaHA
    Last edited by DocAElstein; 10-07-2024 at 02:26 PM.

Similar Threads

  1. Table Tests. And Thread Copy Tests No Reply needed
    By DocAElstein in forum Test Area
    Replies: 1
    Last Post: 11-20-2018, 01:11 PM
  2. Table Tests. And Thread Copy Tests No Reply needed
    By DocAElstein in forum Test Area
    Replies: 1
    Last Post: 11-20-2018, 01:11 PM
  3. Replies: 11
    Last Post: 10-13-2013, 10:53 PM
  4. Replies: 1
    Last Post: 09-14-2013, 12:49 PM
  5. Replies: 7
    Last Post: 08-28-2013, 12:57 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •