Click here to Skip to main content
15,881,757 members

Michael Kennedy - Professional Profile



Summary

    Blog RSS
38,256
Author
85
Authority
100
Debator
4
Enquirer
473
Organiser
218
Participant
0
Editor
Michael Kennedy is a founding partner and software engineer at United Binary, LLC (http://www.unitedbinary.com [^]) and he is active in the agile software development community. Michael has been developing software for over 10 years. The last 4 of those years have been solidly focused on .NET development. For more information, please visit his website http://www.michaelckennedy.net [^]

In a previous life, Michael was pursuing a fairly successful career in mathematics before he saw the True Light and chose The Way of Programming.

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
GeneralGreetings Pin
Michael Kennedy27-Apr-04 13:56
Michael Kennedy27-Apr-04 13:56 
GeneralRe: Greetings Pin
Marcie Jones28-Apr-04 3:51
Marcie Jones28-Apr-04 3:51 
GeneralRe: Greetings Pin
Michael Kennedy30-Apr-04 20:22
Michael Kennedy30-Apr-04 20:22 
GeneralPost-Hook? Pin
paullox2-Jun-04 13:36
paullox2-Jun-04 13:36 
GeneralRe: Greetings Pin
N.T.Gopalakrishnan10-Jun-04 3:20
N.T.Gopalakrishnan10-Jun-04 3:20 
GeneralCallNextHookEx Fix Pin
thomasa8811-Jul-04 9:44
thomasa8811-Jul-04 9:44 
GeneralRe: CallNextHookEx Fix Pin
Michael Kennedy11-Jul-04 9:51
Michael Kennedy11-Jul-04 9:51 
GeneralRe: CallNextHookEx Fix Pin
thomasa8811-Jul-04 22:47
thomasa8811-Jul-04 22:47 
GeneralRe: CallNextHookEx Fix Pin
Michael Kennedy13-Jul-04 21:43
Michael Kennedy13-Jul-04 21:43 
GeneralRe: CallNextHookEx Fix Pin
thomasa8814-Jul-04 11:37
thomasa8814-Jul-04 11:37 
GeneralGlobal Hooks for Pocket PC Pin
XBSANTOS11-Mar-05 6:00
XBSANTOS11-Mar-05 6:00 
GeneralWH_JOURNALRECORD Windows CE Global Hook is blocked! Pin
XBSANTOS24-Mar-05 6:35
XBSANTOS24-Mar-05 6:35 
GeneralWH_KEYBOARD_LL not capture all key events Pin
XBSANTOS28-Mar-05 8:34
XBSANTOS28-Mar-05 8:34 
GeneralA simple question Pin
nir_tzachar8-May-05 23:44
nir_tzachar8-May-05 23:44 
GeneralExcellent article. How about a local system hook into another application's thread? Pin
MogobuTheFool2-Feb-06 6:36
MogobuTheFool2-Feb-06 6:36 
I'm having a hard time ferreting out exactly how to insert a windows hook that will allow me to monitor messages to a window outside my own application. I don't need a global hook - I know the handles to the specific windows I want to watch - but I believe I'll still suffer all the complications of having to inject a DLL into a different application's memory space. I'm trying to monitor window placement information, so I want to capture creation, destruction, and movement.

Here's the context:

I've written a free add-on tool in C# for poker players on Party Poker. My tool is window-management software which positions and re-sizes their poker tables. The tool snaps tables into user-defined "slots" and allows users to swap two tables by dragging one over the other. When playing multiple tables, managing the windows is a chore, so I wanted to automate it. That's what computers are for!

The tool is fully functional and several hundred players are using the Beta, but I'm trying to make the architecture more elegant by monitoring windows messages. You can check out the tool and download it to try here: http://www.overcards.com/wiki/moin.cgi/PartyPlanner

It requires Party Poker, of course; if you don't want to install Party Poker, you can run a Mock application I wrote for testing. You can download it here: ftp://www.overcards.com/downloads/MockParty.zip

In the current architecture, I have a loop on a timer uses Windows API calls to get all top-level windows, identify poker tables, get their positions and states, etc. Then my code uses more calls to position the tables according to plan. I also give the user a drag handle on top of their table by creating a transparent form which overlays the poker table; dragging the handle moves the poker table. To keep the drag handle visible, I also need to insert my form before the table in the z-order. As you can see, all this works (although there's a bit of delay on the z-order positioning after you click on a table; I initially used TopMost, but that was awkward when the user positions a browser or other window in front of the table, and the drag handle pokes through!)

What I want to do is get away from the timer loop entirely. I would like to put out a windows hook into each running poker table and watch the sizing and movement messages. This requires throwing a local windows hook into a foreign windows application and, as I said before, I think this suffers all the limitations of global hooks.

Though I have a degree in computer science, I never worked as a programmer, so my skills are rusty. . . after many years, I became a poker player, and now I've picked up the coding as a hobby. I've learned C# and VB.NET; my pointer referencing/derefrencing skills have rusted shut, and I'm out of my element when writing the DLL component of this solution!

If I'm wrong about the approach/difficulty, I'd love to be told it's easier than I think. I'd greatly appreciate any advice you could give, or any useful references you could point me to.

If you think posting this message to the public forums here would be fruitful, I'll give that a try, too.

Thanks in advance for your great work, for reading my long post, and for any time you spend in reply!


GeneralRe: Excellent article. How about a local system hook into another application's thread? Pin
MogobuTheFool2-Feb-06 6:39
MogobuTheFool2-Feb-06 6:39 
GeneralSystem Hooks libraries...help please? Pin
Amit.Nayar3-Mar-06 10:26
Amit.Nayar3-Mar-06 10:26 
Generalbug in KeyboardTracking Pin
blindahl26-Mar-06 5:51
blindahl26-Mar-06 5:51 
QuestionKeyboard Hookers - SOS Pin
Annie Fernando2-Apr-06 5:28
Annie Fernando2-Apr-06 5:28 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.