To: 1102043058@qq.com To: Mr. #6352956 at CodeProject: I was wondering if you're still doing anything with that .DLL code you had up on the Delphi forum at CodeProject. I looked at it, and was trying to figure out whether there might be a thread-access problem (even a security block) that kept the hook from being set. I would have called GetLastError to find out why SetWindowsHookEx returned null. Did you ever do that? I'm curious to know what you found out if you did. In case you didn't get around to it, you can look up the parameter info on MSDN, which will tell you the same thing Delphi's documentation should have. (I haven't looked at it yet to see what it says about SetWindowsHookEx.) Here are the links: GetLastError function: http://msdn.microsoft.com/en-us/library/ms679360 SetWindowsHookEx function: http://msdn.microsoft.com/en-us/library/ms644990 GAMerritt 01-18-11