Hardly Foreal Custom Programming's
DeskChange 3.5a
Desktop Wallpaper Rotator and Screen Saver

Written by
Timothy Miles
deskchange@cheerful.com


===============================================================================
Purpose
===============================================================================
This program is a desktop rotator and screen saver in one.  You can use your
own images, arranged in your own directory structure on your own hard-drive. 
As a desktop wallpaper rotator, and it will randomly select from your images,
even recursing into sub-directories, and randomly select an image to be
displayed as your wallpaper.  You can set the interval for this anywhere from
1 second to 68 years (theoretical limit: 2147483647 seconds).  However, I have
a feeling that 1 second to about 5 minutes (300 seconds) is probably more
realistic.  As a screen saver, it does the same thing, except that it protects
any vital information you may have. (And it prevents people from playing
pranks like randomizing your system colors, and I do have a program available
to do just that.)  It also uses a separate set of configuration options for
the screen saver vs the destop rotator mode.  This way, you can have one set of
images that are used as wallpaper, while you are there and can screen people
from seeing them, and another to use as a screen saver when you are not there
to explain those scantily clad swimsuit models.  Of course, I run mine just the
opposite at work.  My family rotates through on my desktop, but when I am not
there, it shows the interesting pics for anyone that might get bored and wander
into my office. :)  It can also use a different delay value, because a screen
saver that only changes every 5 minutes is just boring.  But, if you don't want
to set anything different, it uses the desktop rotator settings by default for
the screen saver.  It runs under windows 95, 98, and 2000, and also under
windows NT 4.0.  It has been tested under all of these versions, some more than
others.  It accepts files in the following formats: *.jpg, *.bmp, *.eps, *.wmf,
*.gif.

===============================================================================
Installation and Usage
===============================================================================
To use the program, extract it to a temporary directory, then run the
setup.exe.  Note that it does try to put itself into the StartUp group in the
start menu, as well as its own application group.  The setup program I am
using is rather strange about the way it does this.  I believe you have to
at least choose a group at that point, even if it is not the startup group.
My suggestion is to go ahead and put it in the startup group, then delete
it later.  Regardless of where you put it, the setup program then gives you
another dialog for the application group.  I realize that this is a pain, and
one of the next things I will be doing is re-writing the setup program.

After it is installed, run it.  One of the first things it will do is ask if
you want to make it the default screen saver.  If you choose yes, it will
display the screen saver control panel with itself already selected.  All
you have to do is click ok.  Regardless of whether you tell it to set the
screen saver or not, this will be the only time it asks you.

In the Shareware version, you will then see my shareware notice/nag screen.
After this, the main screen will come up.  Browse for a directory where you
keep the images you want to use, and it will scan that directory and all
subdirectories.  For best performance, set the time delay to something like 60
seconds, and make sure the rescan option is turned off.

The ReScan option is useful if you are using images from a directory that is
changing often, like a public upload directory.
It will cause the program to re-scan the directoies for images each time it
switches images.  Depending on how large the directory tree is and how many
files are in it, this can be quite a performance hit.  If you turn it off,
then the program only scans when it starts and when the path changes.  (I may
have coded it to scan again if a file that should be there isn't, but I don't
remember for sure.  It may just give you a file-not-found error.  Let me know,
and I will fix it ASAP and send you a new copy.)

The Add Path option causes the program to shrink the image enough to put the
path at the bottom of it.  This is useful if you don't remember all of the
images you have, and want to be able to go get one or look at it again if you
see it pop up.  Without the path, you may not know where it was pulled from.

The Scale Factor option causes the displayed image to be much smaller than the
screen.  Basically, if you enter a Scale Factor of 4, the image will be of a
suitable size to tile 4x4 on the screen.  If you are using this setting in
the screen saver, just set the Scale Factor to what you want.  If you are using
it on the wallpaper rotator, you will also need to set you wallpaper to tile
instead of center.  Eventually, the program will do it for you, but not yet.

===============================================================================
Shareware Notice and Contact Information (If you have a registered copy,
                                          ignore the Shareware Notice.)
===============================================================================
This program is shareware.  That means that you are not allowed to give out
copies of the registered version.  Feel free to distribute the complete
shareware archive, however.

For a limited time only, the registration fee is only $9.99, US.  With this,
you will be emailed a fully registered version, and will be given free
upgrades for as long as I have the contact list.  The reason I say that is
because I may at some point in the future have a catastrophic data loss, and
may lose some of the email addresses.  At that point, I will not bother
trying to figure out who registered and who didn't.  However, if you have a
copy of your digital receipt (which I do not currently create) I will add you
back to the list, provided that I still have the software to access the digital
receipt. (I am currently working on these.)

For registration and contact information, send an email to 
deskchange@cheerful.com. I am looking into getting a P.O. Box set up for the
registration stuff.

Also, I do not currently accept credit cards.  If there are any of you out
there that would like to register the program, but won't do so until I accept
credit cards, feel free to tell me that, and tell me the type of card you
want to use.  If I get enough of you to make it economically feasible, I will
see about accomodating credit card users.

Have fun, and let me know if you have any problems.

Be sure to report any bugs to deskchange@cheerful.com




Timothy Miles
Hardly Foreal Custom Programming
deskchange@cheerful.com





===============================================================================
History
===============================================================================
1.0  Created the program for me.
...
2.0  Saw a bunch of people that liked it, so I added some error trapping,
     prettied up the interface and made it shareware.
...
2.4  Added code to cause the program to minimize to the system tray instead
     of remaining on the task bar.
     Changed the icon to the nifty spiral thingy. (If anyone has a better idea,
     let me know.)  This caused a bug in which the title bar showed up when it
     was running as a screen saver.  This delayed its release to simtel and
     others.
...
3.0  Got rid of the annoying title bar in screen saver mode.
3.1  Added code to support screen saver passwords.  Began putting the revision
     history in the readme.txt file.  Began implementing code to prevent the
     same image from displaying until all images had been viewed, as well as
     adding code to allow the user to go back through previously viewed images
     in both the screen saver and the desktop rotator portions of the app.  This
     will not be apparent to the user yet, but rest assured that I am working on
     it.
3.2  In version 3.1, I switched to a more advance, more accurate timing system.
     Apparently, this produced bugs under windows NT, so I went back to the
     old system until I fix the new system.  Also, I added support for the
     shared windows screen saver password, fixed a bug in the save button, and
     added code to allow the program to set itself as the default screen saver.
3.3  Added code to allow preview in the display properties window.  Changed the
     setup program to be more flexible on the StartUp group.  Still needs a lot
     of work.
3.3a Fixed bug in which the app didn't shut down properly under NT when the
     password was enabled.  Also, fixed odd looking startup for the screen
     saver.  Basically, you were seeing the screen saver appear, then maximize,
     instead of it just appearing maximized like it was supposed to.
3.3b Fixed a bug in which the program asked you if you wanted to save changes
     when you exited, even if you had clicked the save changes button.
3.4a Changed the "Add Path" option to display the path relative to the main
     path it is looking at, instead of the entire path.  Also, fixed the
     randomizer to not display the same image a second time until it had gone
     through all the images.
3.4b Changed the temporary bitmap to be named based on the current logged on
     user.
3.4c Added an option called Scale Factor that allows you to shrink an image to
     a size suitable for tiling.  Basically, if you specify a Scale Factor of
     4, the image will fit 4x4 on the screen.  (In Desktop mode, you must set
     your wallpaper to tile, or you just get a small image in the center of
     the screen.  Eventually, the program will do this for you.)
     Fixed a bug in the username stuff so that it didn't blow up if you were
     the default user instead of logging in.
3.5  Added a tab for Screen Saver settings, and changed the original tab to be
     just Desktop settings.  If you start up from the screen saver control
     panel, the Screen Saver Settings tab will be active, the save button will
     be an OK button, and the wallpaper will not be updated.  If you start the
     program normally, all of the above will be reversed.
     Also, I added a checkbox on the Desktop settings to allow the background
     to only change on Startup.  I didn't couldn't think of a good way to
     implement this so that the program exits right after it updates and still
     allow you to modify the settings.  Therefore, it actually displays the
     window when it starts anytime this option is on, regardless of whether the
     window was minimized when you exited or not.  If anyone has a better idea,
     let me know.  I can't, at the moment, pay attention to any requests to
     have the window automatically close, but I will make it minimize if I get
     more complaints about that (even 1) than I get comments from people saying
     they think not minimizing is the best way.
3.5a Fixed a bug in which the icon did not show up in the system tray when the
     program was running in desktop mode.  Therefore, you could not change
     desktop settings unless you went through the screen saver control panel.

===============================================================================
Future changes
===============================================================================
I am planning on adding the ability to go back through the list of previously
viewed images in both the screen saver and desktop rotator modes.

I am thinking about adding the ability to change your wallpaper mode between
tile, center, and stretch within the program.  What do you think?  Email me
at deskchange@cheerful.com.

I am working on giving the program the ability to download images off of news-
groups while it is running as a screen saver.

I am thinking about modifying the Scale Factor setting so that you can display
an "Index View" of images.  In other words, if you set Scale Factor to 4, you
would get 16 different images displayed at a time, instead of the same one 16
times.