I would like to make two .reg files. One of them to tell Rhino not to load X,Y, and Z plugins and another to tell it to load X,Y, and Z again. That way I could run a quick command before debugging and get Rhino to load faster.
You can remove the guid key and all its sub keys completely to unregister a plugin. Then either drag the plugin onto rhino to re-register or add the two install entries (name and location), see http://wiki.mcneel.com/developer/installingandregisteringaplugin
That is what I mean. In your case to unregister you can delete the plug-in Guid key and all its subkeys, and to (re-)register it you must set the Guid and Name and Location.
Unregister (note: do not use “Global Options” as you did in your first post)
To register, do the following. Name should correspond to the plug-in name (defined by the C++ macro RHINO_PLUG_IN_NAME or the .NET AssemblyTitle attribute)
[HKEY_CURRENT_USER\Software\McNeel\Rhinoceros\5.0x64\Plug-Ins\<X GUID>]
"Name"="<X plug-in name>"
"FileName"="<full path to X plug-in RHP>"
Not all of the plugins I want to unload are in that current user location. In other words, there is nothing to unregister from that part of the hive.
Last night I had the idea to back up the McNeel keys, unload the plugins manually, back up the keys again and put them in WinMerge to see the changes. The global options key LoadProtection was 1 for load and 2 for unload. Modifying that flag is having the desired effect. Here are the full steps I used to cut Rhino’s startup time in half for debugging purposes (checked with Rhino.exe /stopwatch):
Using the plain name of the plugins I wished to unload, I used RegEdit to search for the plugins’ GUID (X) in the following location: