In a WPF application (or WinForms) there are two 'objects' (that is blocks of memory containing information) to a 'window': • The system window object. • The managed objects that 'wraps' the system object. Access to the system window object is provided through the window handle (typeof HWND in unmanaged code, IntPtr in managed code). Given a window handle, which you already obtained, you can manipulate that window using the.

You can use p/invoke for this. Access to the managed object, which resides in the heap of the process (or AppDomain in the case of a managed process) is forbidden. This memory is 'protected' from other processes(1).

The only way that objects can be shared between processes (or AppDomains) is through marshalling which is a cooperative effort on the part of both processes. This applies even to many of the Win32 API methods when accessing a window in another process. Not all access is possible without custom marshalling. Note that unlike WinForms, WPF does not (normally) use system windows for controls. If your aim is to manipulate the visual tree in another WPF process/domain, you're simply out of luck unless that process provides some sort of Automation interface. (1) While it is possible to read the raw memory of another process, objects on a managed heap are moving targets. One could never even find them, even if you could somehow suspend the garbage collecting thread of that process.
To clarify further, I need to be able to point to a widndow and get its handle with WindowFromPoint which returns a handle, get the instance name of that window then climb the hierarchy using GetParent and get the names off each parent so that I can use them in a function like the one below that drill down into IE6 to get the current URL. Result:= '; if handle = 0 then handle:= FindWindow(pchar('IEFrame' ), nil); if handle 0 then begin handle:= FindWindowEx(handle, 0, 'WorkerW', nil); if handle 0 then begin handle:= FindWindowEx(handle, 0, 'rebarwindow32', nil); if handle 0 then begin handle:= FindWindowEx(handle, 0, 'comboboxex32', nil); if handle 0 then begin handle:= FindWindowEx(handle, 0, 'ComboBox', nil); if handle 0 then begin handle:= FindWindowEx(handle, 0, 'Edit', nil); if handle 0 then begin SendMessage(handle, WM_GETTEXT, 512, longint(@buf)); Result:= string(buf); end; end; end; end; end; end; end. If all you want/need is the current URL in I.E. 6 why not use a function to do just that? Crack The Suffering 2017. It would sure be simpler. Anyway, if that is all you need, try the code below. It works in/on and the browser types you enter Firefox IExplore Netscape Mosaic Netscp6 Mozilla So, MyURL:= GetURL('IExplore'); Maybe this will work for you.