c# - Inject custom system menu item and handler into newly opened windows -
what want do: want create custom menu item (along minimize, maximize, close, etc.) when user right-clicks on window's title bar. additionally, want user able click on menu item , trigger code. also, want every newly opened windows. example, when user opens new notepad window , right clicks on title bar, he/she see: restore, move, maximize, minimize, foo (my menu item), close. 1 time click on "foo", code gets called.
what have far: using setwineventhook hook eventobjectcreate event. next this guide insert own menu item (via getsystemmenu , appendmenu).
my question: can inject own menu item onto newly created windows, nil happens when user clicks on item. how register function menu item when gets clicked?
p.s. i'm doing in c# using pinvoke, not sure if matters.
you have hook windows' window proc (also known subclassing window) , handle wm_syscommand message. check wparam parameter , phone call function if menu item selected custom item.
you're going run interesting problems. see, example, subclass native application c# , subclassing external window in c# .net.
it can done, it's not simple.
you might interested in http://www.codeproject.com/articles/3234/subclassing-in-net-the-pure-net-way.
c# windows winapi interop com-interop
No comments:
Post a Comment