Post by KalliMan10x Dave,
I want to uninstall my dll without InstallShield. Is it possible to force
Explorer to refresh the registry and free the unused dlls ?
Not reliably as far as I can tell. The Explorer shell wantonly latches on
to a shell extension DLL and keeps it in memory for periods of time that
seem unreasonably long when trying to replace the DLL. For testing
purposes, I just terminate the shell entirel by clicking "Start -> Shutdown"
and then hold down CTRL+ALT+SHIFT while clicking the "Cancel" button on the
shutdown dialog box. This causes the shell to exit, at which point you can
update the DLL from a command prompt window and then re-start the shell by
launching "explorer.exe" again. This works really well for a debug/test
environment.
If you need to simpy remove a shell extension, unregister it via REGSVR32 as
usual, or else remove the registry entries, make a call to SHChangeNotify()
to tell the shell to refresh itself and thus remove any NSE icons from under
"Desktop" and "My Computer", and then set up a delayed file rename/delete
that will happen at the next reboot to cause your shell extension DLL to be
removed from the system.
--
Chuck Chopp
ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com
RTFM Consulting Services Inc. 864 801 2795 voice & voicemail
103 Autumn Hill Road 864 801 2774 fax
Greer, SC 29651
Do not send me unsolicited commercial email.