If you want to track application's exe name based on current focus, I recommend you write small DLL to hook some events. You may need to hook couple of them like WH_CBT and WH_SHELL using SetWindowsHookEx(). From my experience, you need serious testing to make sure your DLL is really tracing focus movement. There are many ways to move focus to another application and covering all of them may need long time work. Once you have that DLL that will attach itself to exe by hooking function, then the filename of that exe can be obtained by GetModuleFileName(). Even if GetModuleFileName() won't work right for some application, you can use very powerfull ToolHelp32 functions to; 1 enumelate all processes 2 find process ID that matches what GetCurrentProcessId() returns Just for your info, if you unfamilier with DLL which attaches itself to exe by SetWindowsHookEx(), then take a look at Matt Pietrek's article MSJ No 12 Vol 6 (MouseWheel.DLL). Have fun! reiko