-[ SetShell v1.3 ]-------------------------------------------------------------

A simple but powerful shell-switching utility for 9x (95/98/ME) & NT (NT/2k/XP)

ON NT, SetShell SETS THE SHELL FOR THE CURRENT USER ONLY, provided the user has
sufficient privileges to do so.

* Neat stuff:
- command line OR GUI operation!
- full logging of all activity! (well, SetShell-related activity anyway. ;)
- has *some* error protection (e.g. "SetShell sadf.exe" will not set your shell
  to 'sadf'. Unless sadf.exe exists. :P)




-[ INSTALLATION ]--------------------------------------------------------------

Nothing to do, just drop it in any folder and run it.




-[ NOTES ]---------------------------------------------------------------------

* Logging:
A log file will be created and then updated every time you run SetShell,
telling you exactly what it did. The log file is created wherever the SetShell
executable is. (If SetShell is run from non-writable media the log file will be
created in the %TEMP% directory.)


* Automatic rebooting:
SetShell will prompt for confirmation before automatically rebooting when you
use it to set your shell.

To disable the confirmation prompt, fire up regedit and:

1. create the following key (if not present):
   HKEY_CURRENT_USER\Software\SetShell

2. create a 'reboot-prompt' String Value in the SetShell key, and set its Value
   Data to '0'

Or you can just de-select the 'Prompt before rebooting' option in SetShell's
GUI.




-[ OPERATION ]-----------------------------------------------------------------

* Note:
Setting one's shell on NT requires administrator privileges, unless the
administrator has enabled per-user shell setting. In this case, even non-admin
users can set their shells.

SetShell will enable per-user shell setting automatically when used by a user
with administrator privileges.


* Custom shell:
Run SetShell - browse to a custom shell's executable and hit 'Custom' to set it 
as the shell. After clicking 'Custom', the system will reboot immediately unless
auto-rebooting has been disabled.

* Windows Explorer shell:
Run SetShell and hit 'Explorer' - this will set explorer as the shell, and the
system will reboot immediately unless auto-rebooting has been disabled.

(Administrators that aren't using a custom shell personally but would like to
allow users of the system to do so should use SetShell to set their shell to
explorer in order to enable per-user shell setting.)




-[ COMMAND LINE OPERATION ]----------------------------------------------------

* Note:
Setting one's shell on NT requires administrator privileges, unless the
administrator has enabled per-user shell setting. In this case, even non-admin
users can set their shells.

SetShell will enable per-user shell setting automatically when used by a user
with administrator privileges.


* Custom shell:
SetShell.exe "x:\path\to\custom\shell.exe"

* Windows Explorer shell:
SetShell.exe "explorer.exe"

* Windows Explorer shell, DISABLE PER-USER SHELL SETTING:
SetShell.exe "/explorer.exe"

PER-USER SHELL SETTING SHOULD ONLY BE DISABLED WHEN ALL USERS ARE USING
EXPLORER AS THEIR SHELL.

(Administrators that aren't using a custom shell personally but would like to
allow users of the system to do so should use SetShell to set their shell to
explorer in order to enable per-user shell setting.)




-[ MISC ]----------------------------------------------------------------------

One of the neatest things about SetShell IMHO (apart from the logging) is that
one can run it from the command line. This makes it well-suited to use in
scripts, shortcuts, batch files, or from your favourite shell.


Here's a LiteStep example:

*popup "shells" Folder
    *Popup "explorer" !execute ["d:\SetShell\SetShell.exe" "explorer.exe"]
    *Popup "blackbox" !execute ["d:\SetShell\SetShell.exe" "d:\bb\blackbox.exe"]
*popup ~Folder


And a blackbox example:

[submenu] (shells)
    [exec] (explorer) {d:\SetShell\SetShell.exe explorer.exe}
    [exec] (litestep) {d:\SetShell\SetShell\setshell.exe d:\litestep\litestep.exe}
[end]




-[ CONTACT ]-------------------------------------------------------------------

SetShell has been available publicly for quite some time now, and no problems
have been reported. :)

If you do have a problem, take a look at the log, maybe you'll spot the error.

In any case, don't hesitate to send it to me, I'll be happy to assist you. :)

Omar
ohussain@hotmail.com




-[ HISTORY ]-------------------------------------------------------------------

* 1.3
    - added a confirmation prompt before an automatic reboot


* 1.2
    - added verification of shell entry in system.ini on 9x


* 1.1
    - added option to control automatic rebooting


* 1.0
    - initial release
      (I'm ignoring earlier versions I sent to RabidCow, DeViLbOi, and
      strangers on IRC. :P)
