Jump to content

psapi.dll error


Dolemite50
 Share

Recommended Posts

Take this with a grain of salt because I'm still a greenhorn. I recently switched back to XP from Vista (clean format) and when I attempted to re-open a form I created in Koda it gave me an object error which ended up being from only having FlashPlayer8 installed and trying to open a form created with 9. I resolved that error by downloading the latest version of FlashPlayer, but then I started getting errors regarding getProcessImageNameW not being found in psapi.dll. I searched my C: drive to make sure that I had the dll and managed to find three of them, one in Win\Sys32, one in AutoIt, and one in my Dreamweaver folder.

I renamed the AutoIt entry and all seems to be working fine again, but the fact that it was about 15-20k bigger than the others makes me worry that I'll run into more trouble or miss some functionality.

My only guess is that my global path somehow got changed but I can't find anything related to AutoIt in the environmental variables. Whadaya think? Reinstall AutoIt or just let it ride?

Thanks

Link to comment
Share on other sites

  • 2 weeks later...

Take this with a grain of salt because I'm still a greenhorn. I recently switched back to XP from Vista (clean format) and when I attempted to re-open a form I created in Koda it gave me an object error which ended up being from only having FlashPlayer8 installed and trying to open a form created with 9. I resolved that error by downloading the latest version of FlashPlayer, but then I started getting errors regarding getProcessImageNameW not being found in psapi.dll. I searched my C: drive to make sure that I had the dll and managed to find three of them, one in Win\Sys32, one in AutoIt, and one in my Dreamweaver folder.

I renamed the AutoIt entry and all seems to be working fine again, but the fact that it was about 15-20k bigger than the others makes me worry that I'll run into more trouble or miss some functionality.

My only guess is that my global path somehow got changed but I can't find anything related to AutoIt in the environmental variables. Whadaya think? Reinstall AutoIt or just let it ride?

Thanks

Welcome to Microsoft DLL hell. Ahead Software (makers of Nero Burning ROM) are good examples of what not to do here. This is what lazy programmers do: When in doubt, add your own 'standard' system DLLs to your program files folder during installation and if your program is the first since Windows bootup to call that DLL (dynamic link library), it will be loaded into memory and the requested subroutine executed. It will be retained in memory until flushed. Another program calling the same DLL name will have the one in memory served to it by Windows, and if the first one that was loaded is the older one and doesn't have a valid subroutine the other program needs, then BAM!

When you find that you have multiple copies of a DLL on your system, look for the latest version and make sure it is the only one that can be accessed from the usual Windows system folders and not from the Program Files folder. Rename the others and see if things stabilise. The version number of the DLL is often a better guide, where careful programmers add extra functionality to an existing DLL while retaining the existing features. Often overwriting the older versions with a copy of the latest version will fix stability errors. Ugly, but something that you should not have to worry about in an ideal world.

In your case, depending on which version of the psapi.dll DLL gets called first and loaded into system memory as to whether all of the programs that need the embedded getProcessImageNameW subroutine will work well.

Link to comment
Share on other sites

I searched my C: drive to make sure that I had the dll and managed to find three of them, one in Win\Sys32, one in AutoIt, and one in my Dreamweaver folder.

Delete the one in the AutoIt folder if you have not got Win NT. It is within the installer only for Win NT (and perhaps Win 95?) which does not have psapi.dll as a system file.
Link to comment
Share on other sites

Too bad Windows doesn't allow explicit path linkage. Like, "I want to use the shell32.dll in my program's folder," and things of that nature.

Yes it does - it's called isolation and works either by using the .local method where a zero byte file with the same name as the main.exe is created, but with an additional .local extension - eg main.exe.local

This works on XP and above and I believe on W2K also.

The registration information is still pulled from the registry, and is probably derived from a DLL of the same name in the System32 folder. As long as that DLL is the same or a newer version then your local DLL should work fine as the entry points in the registry should all be there.

The second method is isolation by manifest, and requires XP minimum. I will leave you to do your own further research on that method.

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...