Loop Through Processes

Oorang

Well-known Member
Joined
Mar 4, 2005
Messages
2,071
I have a need to loop through every workbook open without closing them. (From Access) I was able to do that fairly easily with a for each workbook in Excel.Workbooks setup. However I realized that if there is more than one Excel Process open, I am only looping through the first Excel.Application object returned. Which means I am not truely checking everything that could be open. Which leads to the question... How do you loop through all workbooks in all Excel processes? I tried WMI but I could not figure out how to coerce a WMI Process into an Excel Application object. I'm Stumped.
 
See Jaafar's research on this topic by clicking here. ApplicationCollection2.zip includes the same code posted below.

ApplicationCollection2.zip

Create a class module and name it "ExcelInstanceCollection".
Paste in this code...
<table width="100%" border="1" bgcolor="White" style="filter:progid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New>  <font color="#0000A0">Option</font> <font color="#0000A0">Explicit</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> GetRunningObjectTable <font color="#0000A0">Lib</font> "ole32.dll" (ByVal dwReserved <font color="#0000A0">As</font> Long, pROT <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> CreateBindCtx <font color="#0000A0">Lib</font> "ole32.dll" (ByVal dwReserved <font color="#0000A0">As</font> Long, pBindCtx <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Sub</font> CoTaskMemFree <font color="#0000A0">Lib</font> "ole32.dll" (ByVal pv <font color="#0000A0">As</font> Long)

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Sub</font> OleInitialize <font color="#0000A0">Lib</font> "ole32.dll" (pvReserved <font color="#0000A0">As</font> Any)
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Sub</font> OleUninitialize <font color="#0000A0">Lib</font> "ole32.dll" ()

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> CallWindowProc <font color="#0000A0">Lib</font> "user32" <font color="#0000A0">Alias</font> "CallWindowProcA" (ByVal lpPrevWndFunc <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> hwnd <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> Msg <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> wParam <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> lParam <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Sub</font> CopyMemory <font color="#0000A0">Lib</font> "kernel32" <font color="#0000A0">Alias</font> "RtlMoveMemory" (lpDest <font color="#0000A0">As</font> Any, lpSource <font color="#0000A0">As</font> Any, <font color="#0000A0">ByVal</font> cBytes <font color="#0000A0">As</font> Long)

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> PutMem2 <font color="#0000A0">Lib</font> "msvbvm60" (ByVal pWORDDst <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> NewValue <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> PutMem4 <font color="#0000A0">Lib</font> "msvbvm60" (ByVal pDWORDDst <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> NewValue <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> GetMem4 <font color="#0000A0">Lib</font> "msvbvm60" (ByVal pDWORDSrc <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> pDWORDDst <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> VarPtr <font color="#0000A0">Lib</font> "msvbvm60" (var <font color="#0000A0">As</font> Any) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> GlobalAlloc <font color="#0000A0">Lib</font> "kernel32" (ByVal wFlags <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> dwBytes <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> GlobalFree <font color="#0000A0">Lib</font> "kernel32" (ByVal hMem <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> CopyStringA <font color="#0000A0">Lib</font> "kernel32" <font color="#0000A0">Alias</font> "lstrcpyA" (ByVal NewString <font color="#0000A0">As</font> String, <font color="#0000A0">ByVal</font> OldString <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> lstrlenW <font color="#0000A0">Lib</font> "kernel32" (ByVal lpString <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> lstrlenA <font color="#0000A0">Lib</font> "kernel32" (ByVal lpString <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Declare</font> <font color="#0000A0">Function</font> WideCharToMultiByte <font color="#0000A0">Lib</font> "kernel32" _
       (ByVal codepage <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> dwFlags <font color="#0000A0">As</font> Long, _
       lpWideCharStr <font color="#0000A0">As</font> Any, <font color="#0000A0">ByVal</font> cchWideChar <font color="#0000A0">As</font> Long, _
       lpMultiByteStr <font color="#0000A0">As</font> Any, <font color="#0000A0">ByVal</font> cchMultiByte <font color="#0000A0">As</font> Long, _
       <font color="#0000A0">ByVal</font> lpDefaultChar <font color="#0000A0">As</font> String, _
       <font color="#0000A0">ByVal</font> lpUsedDefaultChar <font color="#0000A0">As</font> Long) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> GMEM_FIXED <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = &H0
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> asmPUSH_imm32 <font color="#0000A0">As</font> <font color="#0000A0">Byte</font> = &H68
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> asmRET_imm16 <font color="#0000A0">As</font> <font color="#0000A0">Byte</font> = &HC2
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> asmRET_16 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = &H10C2&
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> asmCALL_rel32 <font color="#0000A0">As</font> <font color="#0000A0">Byte</font> = &HE8

  <font color="#008000">'IUnknown vTable ordinals</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> unk_QueryInterface <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> unk_AddRef <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 1
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> unk_Release <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 2
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> vtbl_ROT_EnumRunning = 9
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> vtbl_EnumMoniker_Next = 3
  <font color="#0000A0">Private</font> <font color="#0000A0">Const</font> vtbl_Moniker_GetDisplayName = 20


  <font color="#008000">'Function to call Interface members by ordinal in VTable</font>
  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> CallInterface(ByVal pInterface <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> FuncOrdinal <font color="#0000A0">As</font> Long, <font color="#0000A0">ByVal</font> ParamsCount <font color="#0000A0">As</font> Long, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p1 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p2 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p3 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p4 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p5 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p6 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p7 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p8 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p9 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0, <font color="#0000A0">Optional</font> <font color="#0000A0">ByVal</font> p10 <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0) <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
     <font color="#0000A0">Dim</font> i <font color="#0000A0">As</font> Long, t <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
     <font color="#0000A0">Dim</font> hGlobal <font color="#0000A0">As</font> Long, hGlobalOffset <font color="#0000A0">As</font> <font color="#0000A0">Long</font>

     <font color="#0000A0">If</font> ParamsCount < 0 <font color="#0000A0">Then</font> Err.Raise 5 'invalid call
     <font color="#0000A0">If</font> pInterface = 0 <font color="#0000A0">Then</font> Err.Raise 5

    <font color="#008000"> '5 bytes for each parameter</font>
    <font color="#008000"> '5 bytes - PUSH this</font>
    <font color="#008000"> '5 bytes - call member function</font>
    <font color="#008000"> '3 bytes - ret 0x0010, pop CallWindowProc</font>
    <font color="#008000"> '1 byte - dword align.</font>

     hGlobal = GlobalAlloc(GMEM_FIXED, 5 * ParamsCount + 5 + 5 + 3 + 1)
     <font color="#0000A0">If</font> hGlobal = 0 <font color="#0000A0">Then</font> Err.Raise 7 'insuff. memory
     hGlobalOffset = hGlobal

     <font color="#0000A0">If</font> ParamsCount > 0 <font color="#0000A0">Then</font>
       t = VarPtr(p1)
       <font color="#0000A0">For</font> i = ParamsCount - 1 <font color="#0000A0">To</font> 0 <font color="#0000A0">Step</font> -1
         PutMem2 hGlobalOffset, asmPUSH_imm32
         hGlobalOffset = hGlobalOffset + 1
         GetMem4 t + i * 4, hGlobalOffset
         hGlobalOffset = hGlobalOffset + 4
       <font color="#0000A0">Next</font>
     <font color="#0000A0">End</font> <font color="#0000A0">If</font>

   <font color="#008000"> 'First member of any interface - this. Assign...</font>
     PutMem2 hGlobalOffset, asmPUSH_imm32
     hGlobalOffset = hGlobalOffset + 1
     PutMem4 hGlobalOffset, pInterface
     hGlobalOffset = hGlobalOffset + 4

    <font color="#008000"> 'Call IFace Function by its ordinal</font>
     PutMem2 hGlobalOffset, asmCALL_rel32
     hGlobalOffset = hGlobalOffset + 1

     GetMem4 pInterface, VarPtr(t) 'dereference: find vTable
     GetMem4 t + FuncOrdinal * 4, VarPtr(t) 'Function offset in vTable, dereference
     PutMem4 hGlobalOffset, t - hGlobalOffset - 4
     hGlobalOffset = hGlobalOffset + 4

    <font color="#008000"> 'all interfaces are stdcall, so forget about stack clearing</font>
     PutMem4 hGlobalOffset, asmRET_16 'ret 0x0010

     CallInterface = CallWindowProc(hGlobal, 0, 0, 0, 0)

     GlobalFree hGlobal

  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> StrFromPtrA(ByVal lpszA <font color="#0000A0">As</font> Long, <font color="#0000A0">Optional</font> nSize <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0) <font color="#0000A0">As</font> <font color="#0000A0">String</font>
      <font color="#0000A0">Dim</font> s <font color="#0000A0">As</font> String, bTrim <font color="#0000A0">As</font> <font color="#0000A0">Boolean</font>
      <font color="#0000A0">If</font> nSize = 0 <font color="#0000A0">Then</font>
         nSize = lstrlenA(lpszA)
         bTrim = <font color="#0000A0">True</font>
      <font color="#0000A0">End</font> <font color="#0000A0">If</font>
      s = String(nSize, Chr$(0))
      CopyStringA s, <font color="#0000A0">ByVal</font> lpszA
      <font color="#0000A0">If</font> bTrim <font color="#0000A0">Then</font> s = TrimNULL(s)
      StrFromPtrA = s
  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> StrFromPtrW(ByVal lpszW <font color="#0000A0">As</font> Long, <font color="#0000A0">Optional</font> nSize <font color="#0000A0">As</font> <font color="#0000A0">Long</font> = 0) <font color="#0000A0">As</font> <font color="#0000A0">String</font>
      <font color="#0000A0">Dim</font> s <font color="#0000A0">As</font> String, bTrim <font color="#0000A0">As</font> <font color="#0000A0">Boolean</font>
      <font color="#0000A0">If</font> nSize = 0 <font color="#0000A0">Then</font>
         nSize = lstrlenW(lpszW) * 2
         bTrim = <font color="#0000A0">True</font>
      <font color="#0000A0">End</font> <font color="#0000A0">If</font>
      s = String(nSize, Chr$(0))
  <font color="#008000">' CopyMemory ByVal StrPtr(s), ByVal lpszW, nSize ' VBA doesn't support StrPtr :(</font>
      WideCharToMultiByte 0, &H0, <font color="#0000A0">ByVal</font> lpszW, -1, <font color="#0000A0">ByVal</font> s, Len(s), &H0, &H0
      <font color="#0000A0">If</font> bTrim <font color="#0000A0">Then</font> s = TrimNULL(s)
      StrFromPtrW = s
  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> TrimNULL(ByVal str <font color="#0000A0">As</font> String) <font color="#0000A0">As</font> <font color="#0000A0">String</font>
       <font color="#0000A0">If</font> InStr(str, Chr$(0)) > 0& <font color="#0000A0">Then</font>
           TrimNULL = Left$(str, InStr(str, Chr$(0)) - 1&)
       <font color="#0000A0">Else</font>
           TrimNULL = str
       <font color="#0000A0">End</font> <font color="#0000A0">If</font>
  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Public</font> <font color="#0000A0">Function</font> GetAllInstances() <font color="#0000A0">As</font> Collection
      <font color="#0000A0">Dim</font> pROT <font color="#0000A0">As</font> Long, pEnumMoniker <font color="#0000A0">As</font> Long, pMoniker <font color="#0000A0">As</font> Long, pBindCtx <font color="#0000A0">As</font> <font color="#0000A0">Long</font>
      <font color="#0000A0">Dim</font> ret <font color="#0000A0">As</font> Long, nCount <font color="#0000A0">As</font> Long, CheckForInstance <font color="#0000A0">As</font> Boolean, Key <font color="#0000A0">As</font> <font color="#0000A0">String</font>
      <font color="#0000A0">Dim</font> pName <font color="#0000A0">As</font> Long, RegisteredName <font color="#0000A0">As</font> String, ExcelApp <font color="#0000A0">As</font> Application
      ret = GetRunningObjectTable(0, pROT)
      ret = CreateBindCtx(0, pBindCtx)
      CallInterface pROT, vtbl_ROT_EnumRunning, 1, VarPtr(pEnumMoniker)
      <font color="#0000A0">While</font> CallInterface(pEnumMoniker, vtbl_EnumMoniker_Next, 3, 1, VarPtr(pMoniker), VarPtr(nCount)) = 0
           CallInterface pMoniker, vtbl_Moniker_GetDisplayName, 3, pBindCtx, 0, VarPtr(pName)
      <font color="#008000"> 'For win9x you'll need StrFromPtrA</font>

           RegisteredName = StrFromPtrW(pName)
           <font color="#0000A0">If</font> InStr(LCase(RegisteredName), "book") <font color="#0000A0">Then</font>
               CheckForInstance = <font color="#0000A0">True</font>
           <font color="#0000A0">Else</font>
               <font color="#0000A0">Select</font> <font color="#0000A0">Case</font> Right(RegisteredName, 3)
                   <font color="#0000A0">Case</font> "xla", "slk", "dif", "csv", "txt", "prn", "dbf", "wq1", "wks", "wk1", "wk3", "wk4", "xlw", "xls", "xlt", "htm", "mht", "xml"
                       CheckForInstance = <font color="#0000A0">True</font>
               <font color="#0000A0">End</font> <font color="#0000A0">Select</font>
               <font color="#0000A0">Select</font> <font color="#0000A0">Case</font> Right(RegisteredName, 5)
                   <font color="#0000A0">Case</font> ".html", "mhtml"
                       CheckForInstance = <font color="#0000A0">True</font>
               <font color="#0000A0">End</font> <font color="#0000A0">Select</font>
           <font color="#0000A0">End</font> <font color="#0000A0">If</font>

           <font color="#0000A0">If</font> CheckForInstance <font color="#0000A0">Then</font>
               CheckForInstance = <font color="#0000A0">False</font>
               <font color="#0000A0">If</font> ParentIsExcel(RegisteredName, ExcelApp) <font color="#0000A0">Then</font>
                   <font color="#0000A0">If</font> GetAllInstances <font color="#0000A0">Is</font> <font color="#0000A0">Nothing</font> <font color="#0000A0">Then</font> <font color="#0000A0">Set</font> GetAllInstances = <font color="#0000A0">New</font> Collection
                   Key = CStr(ObjPtr(ExcelApp))
                   <font color="#0000A0">If</font> <font color="#0000A0">Not</font> InstanceAlreadyCollected(GetAllInstances, Key) <font color="#0000A0">Then</font>
                       GetAllInstances.Add ExcelApp, Key
                   <font color="#0000A0">End</font> <font color="#0000A0">If</font>
               <font color="#0000A0">End</font> <font color="#0000A0">If</font>
           <font color="#0000A0">End</font> <font color="#0000A0">If</font>

           CallInterface pMoniker, unk_Release, 0
           CoTaskMemFree pName
      <font color="#0000A0">Wend</font>
      CallInterface pEnumMoniker, unk_Release, 0
      CallInterface pBindCtx, unk_Release, 0
      CallInterface pROT, unk_Release, 0
  <font color="#0000A0">Exit</font> <font color="#0000A0">Function</font>


  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> ParentIsExcel(ByVal RegisteredName <font color="#0000A0">As</font> String, ExcelApp <font color="#0000A0">As</font> Application) <font color="#0000A0">As</font> <font color="#0000A0">Boolean</font>
       <font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">Resume</font> <font color="#0000A0">Next</font>

       <font color="#0000A0">Set</font> ExcelApp = GetObject(RegisteredName).Parent
       <font color="#0000A0">If</font> ExcelApp.Name = "Microsoft Excel" <font color="#0000A0">Then</font>
           ParentIsExcel = <font color="#0000A0">True</font>
       <font color="#0000A0">End</font> <font color="#0000A0">If</font>

  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

  <font color="#0000A0">Private</font> <font color="#0000A0">Function</font> InstanceAlreadyCollected(GetAllInstances <font color="#0000A0">As</font> Collection, Key <font color="#0000A0">As</font> String) <font color="#0000A0">As</font> <font color="#0000A0">Boolean</font>
       <font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">GoTo</font> Err_InstanceAlreadyCollected
       <font color="#0000A0">Dim</font> o <font color="#0000A0">As</font> Application
       <font color="#0000A0">Set</font> o = GetAllInstances(Key)
       InstanceAlreadyCollected = <font color="#0000A0">True</font>
  Err_InstanceAlreadyCollected:
  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>

</FONT></td></tr></table><button onclick='document.all("1213200614378984").value=document.all("1213200614378984").value.replace(/<br \/>\s\s/g,"");document.all("1213200614378984").value=document.all("1213200614378984").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("1213200614378984").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="1213200614378984" wrap="virtual">
Option Explicit

Private Declare Function GetRunningObjectTable Lib "ole32.dll" (ByVal dwReserved As Long, pROT As Long) As Long
Private Declare Function CreateBindCtx Lib "ole32.dll" (ByVal dwReserved As Long, pBindCtx As Long) As Long
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)

Private Declare Sub OleInitialize Lib "ole32.dll" (pvReserved As Any)
Private Declare Sub OleUninitialize Lib "ole32.dll" ()

Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes As Long)

Private Declare Function PutMem2 Lib "msvbvm60" (ByVal pWORDDst As Long, ByVal NewValue As Long) As Long
Private Declare Function PutMem4 Lib "msvbvm60" (ByVal pDWORDDst As Long, ByVal NewValue As Long) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (ByVal pDWORDSrc As Long, ByVal pDWORDDst As Long) As Long
Private Declare Function VarPtr Lib "msvbvm60" (var As Any) As Long

Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long

Private Declare Function CopyStringA Lib "kernel32" Alias "lstrcpyA" (ByVal NewString As String, ByVal OldString As Long) As Long
Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" _
(ByVal codepage As Long, ByVal dwFlags As Long, _
lpWideCharStr As Any, ByVal cchWideChar As Long, _
lpMultiByteStr As Any, ByVal cchMultiByte As Long, _
ByVal lpDefaultChar As String, _
ByVal lpUsedDefaultChar As Long) As Long

Private Const GMEM_FIXED As Long = &H0
Private Const asmPUSH_imm32 As Byte = &H68
Private Const asmRET_imm16 As Byte = &HC2
Private Const asmRET_16 As Long = &H10C2&
Private Const asmCALL_rel32 As Byte = &HE8

'IUnknown vTable ordinals
Private Const unk_QueryInterface As Long = 0
Private Const unk_AddRef As Long = 1
Private Const unk_Release As Long = 2
Private Const vtbl_ROT_EnumRunning = 9
Private Const vtbl_EnumMoniker_Next = 3
Private Const vtbl_Moniker_GetDisplayName = 20


'Function to call Interface members by ordinal in VTable
Private Function CallInterface(ByVal pInterface As Long, ByVal FuncOrdinal As Long, ByVal ParamsCount As Long, Optional ByVal p1 As Long = 0, Optional ByVal p2 As Long = 0, Optional ByVal p3 As Long = 0, Optional ByVal p4 As Long = 0, Optional ByVal p5 As Long = 0, Optional ByVal p6 As Long = 0, Optional ByVal p7 As Long = 0, Optional ByVal p8 As Long = 0, Optional ByVal p9 As Long = 0, Optional ByVal p10 As Long = 0) As Long
Dim i As Long, t As Long
Dim hGlobal As Long, hGlobalOffset As Long

If ParamsCount < 0 Then Err.Raise 5 'invalid call
If pInterface = 0 Then Err.Raise 5

'5 bytes for each parameter
'5 bytes - PUSH this
'5 bytes - call member function
'3 bytes - ret 0x0010, pop CallWindowProc
'1 byte - dword align.

hGlobal = GlobalAlloc(GMEM_FIXED, 5 * ParamsCount + 5 + 5 + 3 + 1)
If hGlobal = 0 Then Err.Raise 7 'insuff. memory
hGlobalOffset = hGlobal

If ParamsCount > 0 Then
t = VarPtr(p1)
For i = ParamsCount - 1 To 0 Step -1
PutMem2 hGlobalOffset, asmPUSH_imm32
hGlobalOffset = hGlobalOffset + 1
GetMem4 t + i * 4, hGlobalOffset
hGlobalOffset = hGlobalOffset + 4
Next
End If

'First member of any interface - this. Assign...
PutMem2 hGlobalOffset, asmPUSH_imm32
hGlobalOffset = hGlobalOffset + 1
PutMem4 hGlobalOffset, pInterface
hGlobalOffset = hGlobalOffset + 4

'Call IFace Function by its ordinal
PutMem2 hGlobalOffset, asmCALL_rel32
hGlobalOffset = hGlobalOffset + 1

GetMem4 pInterface, VarPtr(t) 'dereference: find vTable
GetMem4 t + FuncOrdinal * 4, VarPtr(t) 'Function offset in vTable, dereference
PutMem4 hGlobalOffset, t - hGlobalOffset - 4
hGlobalOffset = hGlobalOffset + 4

'all interfaces are stdcall, so forget about stack clearing
PutMem4 hGlobalOffset, asmRET_16 'ret 0x0010

CallInterface = CallWindowProc(hGlobal, 0, 0, 0, 0)

GlobalFree hGlobal

End Function

Private Function StrFromPtrA(ByVal lpszA As Long, Optional nSize As Long = 0) As String
Dim s As String, bTrim As Boolean
If nSize = 0 Then
nSize = lstrlenA(lpszA)
bTrim = True
End If
s = String(nSize, Chr$(0))
CopyStringA s, ByVal lpszA
If bTrim Then s = TrimNULL(s)
StrFromPtrA = s
End Function

Private Function StrFromPtrW(ByVal lpszW As Long, Optional nSize As Long = 0) As String
Dim s As String, bTrim As Boolean
If nSize = 0 Then
nSize = lstrlenW(lpszW) * 2
bTrim = True
End If
s = String(nSize, Chr$(0))
' CopyMemory ByVal StrPtr(s), ByVal lpszW, nSize ' VBA doesn't support StrPtr :(
WideCharToMultiByte 0, &H0, ByVal lpszW, -1, ByVal s, Len(s), &H0, &H0
If bTrim Then s = TrimNULL(s)
StrFromPtrW = s
End Function

Private Function TrimNULL(ByVal str As String) As String
If InStr(str, Chr$(0)) > 0& Then
TrimNULL = Left$(str, InStr(str, Chr$(0)) - 1&)
Else
TrimNULL = str
End If
End Function

Public Function GetAllInstances() As Collection
Dim pROT As Long, pEnumMoniker As Long, pMoniker As Long, pBindCtx As Long
Dim ret As Long, nCount As Long, CheckForInstance As Boolean, Key As String
Dim pName As Long, RegisteredName As String, ExcelApp As Application
ret = GetRunningObjectTable(0, pROT)
ret = CreateBindCtx(0, pBindCtx)
CallInterface pROT, vtbl_ROT_EnumRunning, 1, VarPtr(pEnumMoniker)
While CallInterface(pEnumMoniker, vtbl_EnumMoniker_Next, 3, 1, VarPtr(pMoniker), VarPtr(nCount)) = 0
CallInterface pMoniker, vtbl_Moniker_GetDisplayName, 3, pBindCtx, 0, VarPtr(pName)
'For win9x you'll need StrFromPtrA

RegisteredName = StrFromPtrW(pName)
If InStr(LCase(RegisteredName), "book") Then
CheckForInstance = True
Else
Select Case Right(RegisteredName, 3)
Case "xla", "slk", "dif", "csv", "txt", "prn", "dbf", "wq1", "wks", "wk1", "wk3", "wk4", "xlw", "xls", "xlt", "htm", "mht", "xml"
CheckForInstance = True
End Select
Select Case Right(RegisteredName, 5)
Case ".html", "mhtml"
CheckForInstance = True
End Select
End If

If CheckForInstance Then
CheckForInstance = False
If ParentIsExcel(RegisteredName, ExcelApp) Then
If GetAllInstances Is Nothing Then Set GetAllInstances = New Collection
Key = CStr(ObjPtr(ExcelApp))
If Not InstanceAlreadyCollected(GetAllInstances, Key) Then
GetAllInstances.Add ExcelApp, Key
End If
End If
End If

CallInterface pMoniker, unk_Release, 0
CoTaskMemFree pName
Wend
CallInterface pEnumMoniker, unk_Release, 0
CallInterface pBindCtx, unk_Release, 0
CallInterface pROT, unk_Release, 0
Exit Function


End Function

Private Function ParentIsExcel(ByVal RegisteredName As String, ExcelApp As Application) As Boolean
On Error Resume Next

Set ExcelApp = GetObject(RegisteredName).Parent
If ExcelApp.Name = "Microsoft Excel" Then
ParentIsExcel = True
End If

End Function

Private Function InstanceAlreadyCollected(GetAllInstances As Collection, Key As String) As Boolean
On Error GoTo Err_InstanceAlreadyCollected
Dim o As Application
Set o = GetAllInstances(Key)
InstanceAlreadyCollected = True
Err_InstanceAlreadyCollected:
End Function
</textarea>

An example specific to you.
<table width="100%" border="1" bgcolor="White" style="filter:progid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New>  <font color="#0000A0">Sub</font> Example()
       <font color="#0000A0">Dim</font> AllWbs <font color="#0000A0">As</font> Collection, w <font color="#0000A0">As</font> Workbook

       <font color="#0000A0">Set</font> AllWbs = AllWorkbooks
       <font color="#0000A0">For</font> <font color="#0000A0">Each</font> w <font color="#0000A0">In</font> AllWbs
           Debug.Print w.Parent.hwnd, w.FullName
       <font color="#0000A0">Next</font>
  <font color="#0000A0">End</font> <font color="#0000A0">Sub</font>

  <font color="#0000A0">Function</font> AllWorkbooks() <font color="#0000A0">As</font> Collection
       <font color="#0000A0">Dim</font> c <font color="#0000A0">As</font> Collection, a <font color="#0000A0">As</font> Application, w <font color="#0000A0">As</font> Workbook

       <font color="#0000A0">Set</font> AllWorkbooks = <font color="#0000A0">New</font> Collection
       <font color="#0000A0">Set</font> c = ExcelInstanceCollection.GetAllInstances
       <font color="#0000A0">If</font> <font color="#0000A0">Not</font> c <font color="#0000A0">Is</font> <font color="#0000A0">Nothing</font> <font color="#0000A0">Then</font>
           <font color="#0000A0">For</font> <font color="#0000A0">Each</font> a <font color="#0000A0">In</font> c
               <font color="#0000A0">For</font> <font color="#0000A0">Each</font> w <font color="#0000A0">In</font> a.Workbooks
                   AllWorkbooks.Add w
               <font color="#0000A0">Next</font>
           <font color="#0000A0">Next</font>
       <font color="#0000A0">End</font> <font color="#0000A0">If</font>
  <font color="#0000A0">End</font> <font color="#0000A0">Function</font>
</FONT></td></tr></table><button onclick='document.all("1213200614385203").value=document.all("1213200614385203").value.replace(/<br \/>\s\s/g,"");document.all("1213200614385203").value=document.all("1213200614385203").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("1213200614385203").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="1213200614385203" wrap="virtual">
Sub Example()
Dim AllWbs As Collection, w As Workbook

Set AllWbs = AllWorkbooks
For Each w In AllWbs
Debug.Print w.Parent.hwnd, w.FullName
Next
End Sub

Function AllWorkbooks() As Collection
Dim c As Collection, a As Application, w As Workbook

Set AllWorkbooks = New Collection
Set c = ExcelInstanceCollection.GetAllInstances
If Not c Is Nothing Then
For Each a In c
For Each w In a.Workbooks
AllWorkbooks.Add w
Next
Next
End If
End Function</textarea>

ApplicationCollection2.zip
 
Upvote 0
Hi ! I tried to update the code to Office 2016 with Windows x64 and I have problems with [FONT=&quot]VarPtr, do you know how to use it today ?[/FONT]
 
Upvote 0
Hi ! I tried to update the code to Office 2016 with Windows x64 and I have problems with VarPtr, do you know how to use it today ?

Here is a simpler and less code-involved way for retrieving all the open workbooks in all excel instances without the need to query the Object Running Table:

(Should work for 32 and 64 bit)

Workbook example

1- In a Standard Module:
Code:
Option Explicit

Private Type GUID
    lData1 As Long
    iData2 As Integer
    iData3 As Integer
    aBData4(0 To 7) As Byte
End Type

[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=If]#If[/URL]  VBA7 Then
    Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
    Private Declare PtrSafe Function AccessibleObjectFromWindow Lib "OLEACC.DLL" (ByVal hwnd As LongPtr, ByVal dwId As Long, riid As GUID, ppvObject As Any) As Long
    Private Declare PtrSafe Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As LongPtr, ByVal wFlag As Long) As LongPtr
    Private Declare PtrSafe Function GetShellWindow Lib "user32" () As LongPtr
    Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=Else]#Else[/URL] 
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function AccessibleObjectFromWindow Lib "OLEACC.DLL" (ByVal hwnd As Long, ByVal dwId As Long, riid As GUID, ppvObject As Any) As Long
    Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
    Private Declare Function GetShellWindow Lib "user32" () As Long
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=End]#End[/URL]  If

Private Const OBJID_NATIVEOM = &HFFFFFFF0
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Const GW_HWNDPREV = 3
Private Const S_OK = 0


[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=If]#If[/URL]  VBA7 Then
    Private Function AllWorkBooks() As Collection
    Dim hParent As LongPtr, hChild As LongPtr
[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=Else]#Else[/URL] 
    Private Function AllWorkBooks() As Collection
    Dim hParent As Long, hChild As Long
[URL=https://www.mrexcel.com/forum/usertag.php?do=list&action=hash&hash=End]#End[/URL]  If

    Dim ID_DISPATCH As GUID
    Dim oCol As New Collection
    Dim oWindow As Window
    Dim sBuffer As String * 256, lRet As Long
        
    With ID_DISPATCH
        .lData1 = &H20400
        .iData2 = &H0
        .iData3 = &H0
        .aBData4(0) = &HC0
        .aBData4(1) = &H0
        .aBData4(2) = &H0
        .aBData4(3) = &H0
        .aBData4(4) = &H0
        .aBData4(5) = &H0
        .aBData4(6) = &H0
        .aBData4(7) = &H46
    End With
    
    hParent = GetShellWindow
    Do While hParent
        lRet = GetClassName(hParent, sBuffer, 256)
        If Left(sBuffer, lRet) = "XLMAIN" Then
            hChild = GetNextWindow(FindWindowEx(hParent, 0, "XLDESK", vbNullString), GW_CHILD)
            Do While hChild
                If AccessibleObjectFromWindow(hChild, OBJID_NATIVEOM, ID_DISPATCH, oWindow) = S_OK Then
                    oCol.Add oWindow.Parent
                    Set oWindow = Nothing
                End If
                hChild = GetNextWindow(hChild, GW_HWNDNEXT)
            Loop
        End If
        hParent = GetNextWindow(hParent, GW_HWNDPREV)
    Loop
    Set AllWorkBooks = oCol

End Function

2- Code Usage example:
Code:
Sub Test()
    Dim AllWbs As Collection, wb As Workbook
        
    Set AllWbs = AllWorkBooks
    Sheet1.Range("a1").Offset(1).Resize(Sheet1.Rows.Count - 1, 2).ClearContents
    For Each wb In AllWbs
        With Sheet1.Cells(Columns("A").Rows.Count, 1).End(xlUp)
            .Offset(1) = IIf(wb.Parent.hwnd = Application.hwnd _
            , wb.Parent.hwnd & "    [This instance]", wb.Parent.hwnd & "    [Remote instance]")
            .Offset(1, 1) = wb.FullName
        End With
        Set wb = Nothing
    Next
End Sub
 
Upvote 0
Thank you so much for your answer. I trying to get all the AutoCAD instances opened. I will try to modify this code for my purpose but I believe I need to query the Object Running Table.
 
Upvote 0
I see your second code and I find a problem. I don't know what do for this line
Code:
[COLOR=#333333]If Left(sBuffer, lRet) = "XLMAIN" Then[/COLOR]

I store all the
Code:
[COLOR=#333333]Left(sBuffer, lRet)
[/COLOR] at a worksheet and I got this
Code:
[TABLE="width: 454"]
<colgroup><col></colgroup><tbody>[TR]
[TD]Progman[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]Afx:00400000:0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]CicLoaderWndClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Dwm[/TD]
[/TR]
[TR]
[TD]DDEMLMom[/TD]
[/TR]
[TR]
[TD]DDEMLEvent[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]UxdService[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HCONTROL[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]COMTASKSWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]igfxtrayClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]BTVSTACK[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HkClass[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]PersistClass[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]TASKENGINEWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]PnPListenerWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]NHTRAY[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MainWClass[/TD]
[/TR]
[TR]
[TD]CFileTransferManager[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111b[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1123[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1106[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HCONTROLUSER[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111f[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1112[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111e[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_110b[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1105[/TD]
[/TR]
[TR]
[TD]ATKMEDIA[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_110a[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1104[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]AcrobatTrayIcon[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]KBFILTER[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DEVICE CONTROL[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]SystemTray_Main[/TD]
[/TR]
[TR]
[TD]NVSVC64.DLL[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Media Center SSO[/TD]
[/TR]
[TR]
[TD]PNIHiddenWnd[/TD]
[/TR]
[TR]
[TD]MS_WebcheckMonitor[/TD]
[/TR]
[TR]
[TD]BluetoothNotificationAreaIconWindowClass[/TD]
[/TR]
[TR]
[TD]FaxMonWinClass{3FD224BA-8556-47fb-B260-3E451BAE2793}[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]BATTERYLIFE[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]wxTimerHiddenWindow[/TD]
[/TR]
[TR]
[TD]wxTLWHiddenParent[/TD]
[/TR]
[TR]
[TD]wxWindowNR[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]wxWindowNR[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DriveDeviceMonitor[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]ASUS Screen Saver Protector Invisible Window[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DLLWindowClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]SkypeAgentWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]QEventDispatcherWin32_Internal_Widget1784807312[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIManagerWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]crashpad_SessionEndWatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Chrome_BrowserWatcherWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]COMTASKSWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]PrintTray_Notify_WndClass[/TD]
[/TR]
[TR]
[TD]ASYNCUI_NOTIFYICON_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]CSpNotify Notify Window[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]ATL:000007FEFB4841F0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]AUTHUI.DLL: Shutdown Choices Message Window[/TD]
[/TR]
[TR]
[TD]ARC Window Class[/TD]
[/TR]
[TR]
[TD]OfficePowerManagerWindow[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]MsoStdCompMgr[/TD]
[/TR]
[TR]
[TD]AcroStubUnloadWClass[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]ThunderMain[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ListBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]NameListWndClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]NVOpenGLPbuffer[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;fc3e87a8-1c11-488b-951f-d2667ca88f22][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;b6075b65-fc7d-4794-83b1-c1b7e9cc470f][/TD]
[/TR]
[TR]
[TD]DDEMLMom[/TD]
[/TR]
[TR]
[TD]DDEMLEvent[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;1268d338-4fd5-418d-9fb1-dbe48d513127][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;3f4d675f-92b9-4adc-847d-180ca8e701de][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;e512cc27-36e3-44bd-b4ef-6595b4c2b9cb][/TD]
[/TR]
[TR]
[TD]Afx:000000013FCB0000:b:0000000000010003:0000000000000006:00000000000D0CF3[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD].NET-BroadcastEventWindow.4.0.0.0.1a84f97.0[/TD]
[/TR]
[TR]
[TD]AcVcGLContextWnd[/TD]
[/TR]
[TR]
[TD]ClicJsInteropMainWindow10352[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]PopupTipWndClass[/TD]
[/TR]
[TR]
[TD]XLMAIN[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]DV2ControlHost[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_1[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_1[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;558f52ac-621f-4472-bf21-00edbfa33279][/TD]
[/TR]
[TR]
[TD]AfxMDIFrame140u[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;cfde4a29-900f-40ad-bcb0-8abe789b0e2f][/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]Afx:000000013FCB0000:2080b:0000000000010003:0000000000000000:0000000000000000[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]wndclass_desked_gsk[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]OfficeTooltip[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarPopup[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]XLMAIN[/TD]
[/TR]
[TR]
[TD]PbrsHost[/TD]
[/TR]
[TR]
[TD]OfficeTooltip[/TD]
[/TR]
[TR]
[TD]EXCELE[/TD]
[/TR]
[TR]
[TD]EXCEL8[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]__XLACOOUTER[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]ATKOSD[/TD]
[/TR]
[TR]
[TD]ACMON[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ATL:000007FEF20A52C0[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]NotifyIconOverflowWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]VANUITooltip[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]CNewOsd[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]NativeHWNDHost[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]XLToolTip[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]DV2ControlHost[/TD]
[/TR]
[TR]
[TD]Desktop User Picture[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]_SearchEditBoxFakeWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]TaskListThumbnailWnd[/TD]
[/TR]
[TR]
[TD]TaskSwitcherWnd[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]Shell_TrayWnd[/TD]
[/TR]
[TR]
[TD]Button[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]XLToolTip[/TD]
[/TR]
</tbody>[/TABLE]

I can't find a way to identify my AutoCAD application (I have on of them open). Do you have any idea ?
 
Upvote 0
I see your second code and I find a problem. I don't know what do for this line
Code:
[COLOR=#333333]If Left(sBuffer, lRet) = "XLMAIN" Then[/COLOR]

I store all the
Code:
[COLOR=#333333]Left(sBuffer, lRet)[/COLOR]
at a worksheet and I got this
Code:
[TABLE="width: 454"]
<tbody>[TR]
[TD]Progman[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]AcIpcMsgWindow[/TD]
[/TR]
[TR]
[TD]Afx:00400000:0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]CicLoaderWndClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Dwm[/TD]
[/TR]
[TR]
[TD]DDEMLMom[/TD]
[/TR]
[TR]
[TD]DDEMLEvent[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]UxdService[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HCONTROL[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]COMTASKSWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]igfxtrayClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]BTVSTACK[/TD]
[/TR]
[TR]
[TD]{0FF91E85-09D1-4d89-A707-F6E4F7333342}[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HkClass[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]PersistClass[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]HotKeysCatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]TASKENGINEWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]PnPListenerWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]NHTRAY[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MainWClass[/TD]
[/TR]
[TR]
[TD]CFileTransferManager[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111b[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1123[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1106[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HCONTROLUSER[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111f[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1112[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_111e[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_110b[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1105[/TD]
[/TR]
[TR]
[TD]ATKMEDIA[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_110a[/TD]
[/TR]
[TR]
[TD]UIPermissionWindow_1104[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]AcrobatTrayIcon[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]KBFILTER[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DEVICE CONTROL[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]SystemTray_Main[/TD]
[/TR]
[TR]
[TD]NVSVC64.DLL[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Media Center SSO[/TD]
[/TR]
[TR]
[TD]PNIHiddenWnd[/TD]
[/TR]
[TR]
[TD]MS_WebcheckMonitor[/TD]
[/TR]
[TR]
[TD]BluetoothNotificationAreaIconWindowClass[/TD]
[/TR]
[TR]
[TD]FaxMonWinClass{3FD224BA-8556-47fb-B260-3E451BAE2793}[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]BATTERYLIFE[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]wxTimerHiddenWindow[/TD]
[/TR]
[TR]
[TD]wxTLWHiddenParent[/TD]
[/TR]
[TR]
[TD]wxWindowNR[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]wxWindowNR[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DriveDeviceMonitor[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Afx:0000000140000000:0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]ASUS Screen Saver Protector Invisible Window[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]DLLWindowClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]SkypeAgentWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]QEventDispatcherWin32_Internal_Widget1784807312[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]UIManagerWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]crashpad_SessionEndWatcher[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]Chrome_BrowserWatcherWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]COMTASKSWINDOWCLASS[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]PrintTray_Notify_WndClass[/TD]
[/TR]
[TR]
[TD]ASYNCUI_NOTIFYICON_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]CSpNotify Notify Window[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]ATL:000007FEFB4841F0[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]WorkerW[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]AUTHUI.DLL: Shutdown Choices Message Window[/TD]
[/TR]
[TR]
[TD]ARC Window Class[/TD]
[/TR]
[TR]
[TD]OfficePowerManagerWindow[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]MsoStdCompMgr[/TD]
[/TR]
[TR]
[TD]AcroStubUnloadWClass[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]ThunderMain[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ListBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]NameListWndClass[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]#43[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]ComboLBox[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]NVOpenGLPbuffer[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;fc3e87a8-1c11-488b-951f-d2667ca88f22][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;b6075b65-fc7d-4794-83b1-c1b7e9cc470f][/TD]
[/TR]
[TR]
[TD]DDEMLMom[/TD]
[/TR]
[TR]
[TD]DDEMLEvent[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]GDI+ Hook Window Class[/TD]
[/TR]
[TR]
[TD]OleDdeWndClass[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;1268d338-4fd5-418d-9fb1-dbe48d513127][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;3f4d675f-92b9-4adc-847d-180ca8e701de][/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;e512cc27-36e3-44bd-b4ef-6595b4c2b9cb][/TD]
[/TR]
[TR]
[TD]Afx:000000013FCB0000:b:0000000000010003:0000000000000006:00000000000D0CF3[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]Base_PowerMessageWindow[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_0[/TD]
[/TR]
[TR]
[TD]Chrome_SystemMessageWindow[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD].NET-BroadcastEventWindow.4.0.0.0.1a84f97.0[/TD]
[/TR]
[TR]
[TD]AcVcGLContextWnd[/TD]
[/TR]
[TR]
[TD]ClicJsInteropMainWindow10352[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]PopupTipWndClass[/TD]
[/TR]
[TR]
[TD]XLMAIN[/TD]
[/TR]
[TR]
[TD]PrintCacheListenerWindow_19A79E3F-0006-4175-AACD-6F5C69CC0D23[/TD]
[/TR]
[TR]
[TD]PrintCacheLocalConnectionListenerHiddenWindow[/TD]
[/TR]
[TR]
[TD]DV2ControlHost[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_1[/TD]
[/TR]
[TR]
[TD]Chrome_WidgetWin_1[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;558f52ac-621f-4472-bf21-00edbfa33279][/TD]
[/TR]
[TR]
[TD]AfxMDIFrame140u[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]AdApplicationButton[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]HwndWrapper[DefaultDomain;;cfde4a29-900f-40ad-bcb0-8abe789b0e2f][/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]Afx:000000013FCB0000:2080b:0000000000010003:0000000000000000:0000000000000000[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]wndclass_desked_gsk[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]VBFloatingPalette[/TD]
[/TR]
[TR]
[TD]OfficeTooltip[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarShadow[/TD]
[/TR]
[TR]
[TD]MsoCommandBarPopup[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]XLMAIN[/TD]
[/TR]
[TR]
[TD]PbrsHost[/TD]
[/TR]
[TR]
[TD]OfficeTooltip[/TD]
[/TR]
[TR]
[TD]EXCELE[/TD]
[/TR]
[TR]
[TD]EXCEL8[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]__XLACOOUTER[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]ATKOSD[/TD]
[/TR]
[TR]
[TD]ACMON[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]ATL:000007FEF20A52C0[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]NotifyIconOverflowWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]VANUITooltip[/TD]
[/TR]
[TR]
[TD]#32770[/TD]
[/TR]
[TR]
[TD]CNewOsd[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]NativeHWNDHost[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]MSO_BORDEREFFECT_WINDOW_CLASS[/TD]
[/TR]
[TR]
[TD]XLToolTip[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]DV2ControlHost[/TD]
[/TR]
[TR]
[TD]Desktop User Picture[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]_SearchEditBoxFakeWindow[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]TaskListThumbnailWnd[/TD]
[/TR]
[TR]
[TD]TaskSwitcherWnd[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]CiceroUIWndFrame[/TD]
[/TR]
[TR]
[TD]Shell_TrayWnd[/TD]
[/TR]
[TR]
[TD]Button[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]IME[/TD]
[/TR]
[TR]
[TD]MSCTFIME UI[/TD]
[/TR]
[TR]
[TD]tooltips_class32[/TD]
[/TR]
[TR]
[TD]XLToolTip[/TD]
[/TR]
</tbody>[/TABLE]

I can't find a way to identify my AutoCAD application (I have on of them open). Do you have any idea ?

It should be on the list but, I am afraid, I don't know AutoCAD class name or any other thing about it.
 
Upvote 0
I try to send you a message but you have your inbox full. Here
Code:
https://forums.autodesk.com/t5/visual-basic-customization/autocad-window-class-name/td-p/324870
I found that
It is generated dynamically by MFC at runtime, and
it's never the same.
. Then, I don't know if I can use your code to open an specific AutoCAD Application (at this moment I don't know what is the lRet for the AutoCAD Application). By the other hand, I found this code
Code:
[/COLOR]http://adndevblog.typepad.com/autocad/2013/12/accessing-com-applications-from-the-running-object-table.html#comment-6a0167607c2431970b022ad355fe6e200c[COLOR=#333333]
but it's writing in C#. Specify, I have a problem to write the line
Code:
[/COLOR]Type type = Type.GetTypeFromProgID(progId);[COLOR=#333333]
to VBA.

If you have any advice for me, Je te remercie !
 
Upvote 0
I try to send you a message but you have your inbox full. Here
Code:
https://forums.autodesk.com/t5/visual-basic-customization/autocad-window-class-name/td-p/324870
I found that . Then, I don't know if I can use your code to open an specific AutoCAD Application (at this moment I don't know what is the lRet for the AutoCAD Application). By the other hand, I found this code
Code:
http://adndevblog.typepad.com/autocad/2013/12/accessing-com-applications-from-the-running-object-table.html#comment-6a0167607c2431970b022ad355fe6e200c
but it's writing in C#. Specify, I have a problem to write the line
Code:
Type type = Type.GetTypeFromProgID(progId);
to VBA.

If you have any advice for me, Je te remercie !

I wish I could help you with this but I have absolutely no idea about AutoCad .. Maybe someone else here who knows about it or works with it can hopefully adapt the code I posted in order to work for autocad.
 
Upvote 0
Let me ask :
Do you want to open a new autocad instance or do you want to get a COM pointer to an already open instance from VBA so you can manipulate its object model from VBA ? if the latter then Autocad will need to register itself in the Running Object Table which I don't know if it does.

In any case, I am not sure the code I posted would work even if the open autocad is registered in the ROT because the code I wrote is based on the AccessibleObjectFromWindow API to get the IDispatch interface which only works for certain server applications according to the documentation ... However, I believe , the code posted by Tom Schreiner could be adapted to work in your scenario.

Unfortunately, adapting Tom's code to work for autocad would require to have autocad installed for testing which I don't have .
 
Last edited:
Upvote 0

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top