• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Punch a hole through a window other than your own?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Punch a hole through a window other than your own?


  • Subject: Re: Punch a hole through a window other than your own?
  • From: Gen Kiyooka <email@hidden>
  • Date: Wed, 30 Mar 2005 17:05:58 -0800

My guess is that you'd have to be inside the process. On Win32, the Window enumeration functions
enumerate all the Windows in the system. HWNDs are valid and accessible across processes.


OSX is a completely different animal. For one, Carbon and Cocoa have two different ways of
referencing Windows, and in Carbon, the window enumeration only returns windows for the
current process.


I stood up and asked a question similar to this at WWDC, and got a no-can-do answer.

If you're really into reverse engineering, my guess is to spy on the mach message traffic (no easy task)
between QuartzDebug and the Window server process. QuartzDebug lists all the system Windows
and their properties, such as whether they have a backing buffer etc.


If you go over to http://rentzsch.com/ you'll find a description of how to inject code into a running
process. Similar to Jeffrey Richter's code examples for Win32 on the same subject.


Inject a mach-o bundle into each process that has enough Cocoa and Carbon calls to munge
the Window properties and you're there.


Gen Kiyooka
Digigami

On Mar 30, 2005, at 2:24 PM, Jay Koutavas wrote:

I know it's possible to punch a transparent hole through my own window using a transparent custom view. But... is it possible, by hook or by crook, to punch a hole through another application's window?

The Windows version of the project I'm researching can do this. It grabs a window handle and knocks rectangular holes right through an Internet Explorer window to do dynamic overlays atop playing video on a window directly underneath. Alas, if only Safari honored the z-index of embedded movie plugins (Quicktime and Media Player), I wouldn't be having to look for a similar hack on Mac OS X.

With all the horsepower of Quartz compositing I imagine there is someway to achieve this. Probably an undocumented way, but still it is possible, witness moving windows around atop playing video.

Comments, chuckles? ;)

--
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  Jay Koutavas                         mailto:email@hidden
  Heynow Software                      http://www.heynow.com
  Windham, New Hampshire, USA
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Punch a hole through a window other than your own? (From: Jay Koutavas <email@hidden>)

  • Prev by Date: Re: NSCopying is manual labor
  • Next by Date: Re: Instant smooth searching
  • Previous by thread: Re: Punch a hole through a window other than your own?
  • Next by thread: Re: Punch a hole through a window other than your own?
  • Index(es):
    • Date
    • Thread