"You wait an hour for the bus to arrive then 3 come together"
|Some program may be hung because it is using some other program (a child process or a COM server) and it is waiting for it to respond. This kind of problem is nicely investigated using an obscure windows 7 feature called wait chains. Using start menu search for Resource Monitor and switch to the CPU tab. A stuck process will appear red. Right click on it and choose Analyse wait chain command from the menu to see the information. If the process is not stuck because of chain waiting, but has caused its own demise, this tool will not tell you anything except for "the program is not responding"|
For older windows or if the program has shot itself in the foot, you can try a nirsoft tool called What Is Hung. This will tell you what the program is busy doing instead of responding to the user. You start WhatIsHang, find the stuck program in the list and press F9 to see the problem. The information is a bit cryptic but if you copy/paste it and email it to the program support, they may be able to figure out what's wrong.