Solved

Program that hooks another program's thread, having problems....

Posted on 2003-10-31
3
205 Views
Last Modified: 2010-04-17
I have inherited a program written in Visual C++ 6 that works behind the scenes to hook another application and monitor the user's keystroke activity in that target program.  The hooking program was originally written for Windows 95.  I have been asked to upgrade it and migrate it to Windows 2000 and Windows XP.  However, I have a problem.  The hooking program cycles in the background looking for instances of the target application and then hooks the process and thread of the given instance, allowing the target program to have as many instances up on the desktop as the user wants.  The hooking program saves off process and threadids, along with window ids to a collection object and when a specific window in a particular instance of the target application has focus, the hooking application monitors that instance of the target application.  This is how the program works on Windows 95.  However, when I run this program on a machine with either Windows 2000 or Windows XP I cannot activate more than one instance of the target program, otherwise I get the "Switch To", "Retry", "Cancel" error box and the desktop freezes up.  This hooking program was patterned after code found in the book, Programming Applications for Microsoft Windows by Jeffrey Richter, using much of Chapter 22 quidance.  This is a program that uses API hooking and the API functions to locate instances of specific windows.  However, no matter what I try to do to debug this program, I cannot figure out why it does not allow more than one instance of the target application to appear on the desktop at any given moment on a computer using the Windows 2000 or Windows XP operating systems, and why any effort to increase the number of instances of the target application running on the desktop freezes up the computer.  Any information, or help would be greatly appreciated.

Thank you.
0
Comment
Question by:Hawkeye67
  • 2
3 Comments
 
LVL 6

Expert Comment

by:GloomyFriar
ID: 9657913
It's rather difficult to help without looking at the code in this case.
I can only recommend the following link:
http://www.codeproject.com/system/hooksys.asp
0
 
LVL 6

Accepted Solution

by:
GloomyFriar earned 500 total points
ID: 9657978
Just register (it's free) to get source codes there.
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now