I wrote a program in VB6 that enumerates auto-run values in the registry such as HKLM/Run, Services, Drivers, etc. It takes the returned values and checks if file exists and then gathers file info such as size, version, etc. It works fine with 32 bit operating systems, but when it runs on a 64 bit operating system, it gets a little weird. I read up on the problem and realize that when you use a 32 bit app, it will only see 32 bit processes and when you look in a system32 folder, it will redirect to syswow64 folder instead. I did figure out that if you use WMI in VBScript, it can see both 32 and 64 bit processes and paths, but if you put the same code in VB6, it redirects to the 32 bit path. I know it is possible for a 32 bit app to handle 64 bit files, because the program Autoruns will run as 32 bit, but can show correct paths for 32 and 64 bit files. So my question is, how does Autoruns do this? You can download Autoruns for yourself and run in on a 64 bit operating system and Task Manager will show *32 and yet it will display 32 and 64 bit paths correctly.