Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Shell Extension Uninstall

Shell Extension Uninstall

Scheduled Pinned Locked Moved C / C++ / MFC
linuxquestion
1 Posts 1 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mynab
    wrote on last edited by
    #1

    Hello, I would like to know the best way to upgrade/uninstall a shell extension. Simply unregistering is not enough as Explorer keeps the file locked for a certain amount of time. I also saw one piece of code that restarts the Shell but this is not very elegant because all the Startup Items are relaunched and this causes a mess not counting the disappearing and reappearing of the task bar... The method I have been using for the last year or so works but I would like to have something more simple. For instance an upgrade is done like this: my installer copies the .dll to a .tmp file then unregisters the .dll and tries to delete the .dll file. It the deletion is successful then the .tmp is renamed to .dll and is registered: everything is fine. If the deletion fails then my installer creates a .bat file that deletes the .dll, renames the .tmp, registers the dll and deletes itself (this is why it is a .bat file: a .bat can delete itself while running, a .exe can't). Then this .bat file is registered in the RunOnce section to be executed at the next reboot. Uninstallation follows the same kind of process. As you see this is kind of complex... I have been looking on the web for other way to do this but did not find any info. So anyone has something on this topic??

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • World
    • Users
    • Groups