********************************
 ExecutIt v.1.0
 
 by Adam J. Sycz
 ajs@webster-image.com

 Copyright (c)1996 Webster Image
 Middle Village, NY 11379
 http://www.webster-image.com
********************************

------------
REQUIREMENTS
------------
Need for such thing, Windows95, 486 or Pentium, 
it may or may not run on NT

----------------------
DISCLAIMER & LICENCING
----------------------

This program is provided absolutely free of any charge
since most people don't pay for shareware anyway.
However, even though I don't think ExecutIt is a candidate
for commercial usage, do not redistribute this program as a
part of anything that isn't completely free. If you want to
distribute it, please use original ZIP file for that purpose
or create one which contains ALL original files

	Executit.exe
	Executit Info.txt
	Sample Script.ei-script

(*)ExecutIt is provided AS IS. User of this program assumes 
   full responsibilty for anything that may happen
   as a result of using it.

------------
WHAT IT DOES
------------

Few things.
1). Executes multiple files
2). Plays Wave or system sounds
3). Displays messages
4). Enables/Disables Screen Saver
5). Changes desktop wallpaper
6). Reboots or shuts down the system

I think that is just about it for now. 

ExecutIt was really written in few hours so it is completely unoptimized,
I can't guarantee that it won't hang or kill your system though I had no
problems with it and it works out beautifully. Personally I find it most
useful as an extension to System Agent. Gives me ability to run a set of
instructions, applications and so on without cluttering its schedule list.
It is a quite primitive line-by-line processor that's all.

------------
INSTALLATION
------------

Simply copy Executit.exe to your WINDOWS directory. This way you will have
no problems accessing it.

-----------------------
MULTIPLE FILE EXECUTION
-----------------------

The idea is quite simple really. Write a script, ExecutIt will read it
and act on it. A script can be any ASCII file. You can run the script
by using it as ExecutIt's parameter such as

	Executit.exe myscript.txt

Script functions:
[RUN]
<program name (200 chars long max)> (full path if necessary)
<parameters (200 chars long max)> or NOARG
<mode>

	:[RUN] set will execute program specified by <program name>. Calling it
	:using full path may be necessary. You can also start <program name> with
	:optional parameters such as document or options. Note that some programs
	:may require /option notation. If no parameters are to be used you MUST 
	:specify NOARG. You can also open application in specific <mode> which can
	:either be NORMAL,MAXIMIZED, or MINIMIZED.
	:ExecutIt has no problem with long filenames. It will also execute
	:a shortcut.

	*Note that you can use executit.exe in [RUN] set to call itself with different
	 parameters or scripts. This will not terminate or disturb one it is called from

[DIRECTORY]
<full path (200 chars long max)>

	:<full path> will be used for all [RUN] sets to follow until end or
	:next [DIRECTORY] set is specified. This way you can execute programs
	:by calling only their filenames providing that they are in the same
	:directory specified by <full path>

[DELETE]
<file to delete>
<file to delete>
<file t....    >
-T

	:Deletes file(s) specified by <file to delete>. Multiple files can be declared
	:no wildcards (*.*) however are allowed. You can either explicitly specify
	:full path\filename or use [DIRECTORY] to set path and then only refer to
	:file by its name. List MUST be terminated by -T

[MESSAGE]
<Title (25 char max)>
<Message text (100 chars per line max)>
<Message text>
CR
<Message text>
-T
<ResponseStyle>
<Type>

	:[MESSAGE] set will display a message on screen. <Title> is box title. 
	:<Message Text> can be in myltiple lines. This way you can sort of design
	:its appearance. If you put CR between lines it will place a space between
	:corresponding lines. Multiple CR's are allowable. 
	:You must terminate text by -T.
	:Primitive <ResponseStyle> is available YES_NO, OK_CANCEL or OK. 
	:I'll get to responses later. <Type> may be: OK, EXCLAMATION, STOP, 
	:INFORMATION, QUESTION or SYSTEM (which may be useful at times because
	:it stays on top of all windows untill OK pressed). If you use this set in
	:the middle of script, it will be halted til you close the message (press button).

[PAUSE]
<Seconds>

	:Script execution will be halted for specified amount of seconds.
	:It may be important if you want to ensure proper execution sequence 
	:or whatever else you might think of

[PLAY]
<Sound>

	:[PLAY] set will play either WAV file specified by <Sound> (using full
	:path may be necessary) or a system sound.
	:For example you could specify <Sound> as
	:	c:\windows\sounds\somesong.wav
	:or
	:	SystemExit
	:In the second case ExecutIt will play the sound assigned as you Exit Windows sound

[JUMP]
label

	:[JUMP] set will cause ExecutIt to move pointer to label skipping instructions and sets
	:calling label is simply a string. Label itself however must be the 
	:same string surrounded with [ and ]
	:For example:
	:	[JUMP]
	:	ComeHere
	:	.
	:		this will be skipped
	:	.
	:	[ComeHere]
	:	[NEXT EXECUTED SET]


[END]

	:Terminates the script execution. This command is required 
	:at the end of the script. If you do not include it ExecutIt 
	:will run forever.
	:[END] can also be placed anywhere else in the script which
	:may be useful in case of jumps or using message responses

------------------------------
MESSAGE BOX RESAPONSE HANDLING
------------------------------

If you define your <ResponseStyle> as OK_CANCEL or YES_NO you can control
your script execution a bit. Simply declare labels as
[BN OK]			- for OK in OK_CANCEL message
[BN CANCEL]		- for CANCEL in OK_CANCEL message
[BN YES]		- for YES in YES_NO message
[BN NO]			- for NO in YES_NO message

You will have to use [JUMP] set to skip a label if necessary. Note that proper <bn_XX> labels 
are necessary if OK_CANCEL or YES_NO style was chosen. for OK <ResponseStyle> no labels are
necessary. Program just don't care. It is really simple concept.

Sample syntax:
	[MESSAGE]
	Title
	Some text here
	-T
	QUESTION
	YES_NO

	[BN YES]
	
	[RUN]
	somethin.exe
	NOARG
	NORMAL

	[JUMP]
	qbox label

	[BN NO]
	[PLAY]
	song.wav

	[qbox label]

	[RUN]
	application.exe
	NOARG
	MINIMIZED
	[END]

--------------------------------
RUNNING EXECUTIT WITH PARAMETERS
--------------------------------

You can also run ExecutIt using parameters other than a script file.
This could be useful if you just want to do a single task or call task
from within a script itself.

Do not use slashes for parameter specification
Usage:
	ExecutIt.exe parameter

PLAY <Sound>
	:Will play a sound specified by <Sound>. Just as in [PLAY] set it 
	:can either be a WAV file or a System Sound

REBOOT
	:Will reboot your machine. If there is a problem with priority
	:you may be asked by some application to confirm job or file saving

SHUTDOWN
	:Will shutdown your machine. If there is a problem with priority
	:you may be asked by some application to confirm job or file saving

SSOFF
	:Will disable Screen Saver. This change is not written to user
	:information data so if you restart your computer your Screen Saver
	:settings should go back to original ones. This is useful if you are
	:executing certain task, do nothing but have to watch the screen beyond
	:normal Screen Saver timeout. Turn it off.

SSON <Minutes>
	:Will enable Screen Saver. Optionaly you may specify the delay 
	:time in minutes otherwise it will activate Screen Saver settings 
	:with original delay time. Screen Saver settings will go back to 
	:original ones if Windows has been restarted.

WALLP <BMP File>
	:Will change current wallpaper using BMP file specified by
	:<BMP File>. Using full path assignment may be necessary

?
	:About info box

------------
RESTRICTIONS
------------

None. ExecutIt runs silently. No screens come up, nothing to remind 
you of me or this little program. You won't even know it exists.
If it runs into an error in script or parameter specs it will either 
ignore it or do unbelivably stupid things. Most likely however
nothing will happen. There is no error control or messages poping up.
Why? Nothing really bugs me more than messages I have to act on and my
computer cannot deal with on its own. When I'm away sometimes for weeks
my poor machine is working its butt off round the clock and there is nobody
to push the damn button. Philosophy is: If it can't run it, fine, but
dont bother me with it.

--------------
LONG FILENAMES
--------------

ExecutIt handles long filenames quite OK. If you specifying
a directory name or file name within the script
you don't have to bother with surrounding them with quotes
you can simply use i.e.

	[DIRECTORY]
	c:\Program Files\Some Directory

and it will now how to handle it. Same goes for specifying <program name>
in [RUN] or <Sound> in [PLAY] sets.

[RUN] set can also point to Shortcuts. So far I have had only problems
with pointing to shortcuts which in turn point to directories only

-------------
SCRIPT SYNTAX
-------------

Set may not contain any line skips. In other words
	[RUN]
	myprog.exe

	NOARG
	NORMAL

will mess up this set and myprog.exe may not execute or
execute in some weird way

To give you a quick idea of ExecutIt's script, I have enclosed a sample
script for you to look at named "Sample Script.ei-script".

-----------------
SCRIPT EXTENSIONS
-----------------

No defaults. Anything goes. However it maybe a good idea to invent one.
I use "*.ei-script" for all ExecutIt scripts so I can register it
as a auto file and call just a script instead of executit.exe with script as
parameter. 

This would be the procedure:
   1). Open Explorer
   2). Create an empty file called "First.ei-script"
   3). Now right click on it and choose "Open with..."
   4). Specify name in box as ExecutIt Script
   5). Check "Always ... blah blah" box
   6). Press "Other" button
   7). Find executit.exe, select it and press OK

Now whenever you doubleclick on any *.ei-script file it
will be executed using ExecutIt.

What if you want to edit it? Don't worry. Thought of this too.
Maybe I should have provided an INF file to do it for you
but I really didn't feel like it. :-)

   1). Run REGEDIT.exe
   2). Choose EDIT/Find
   3). Type ei-script_auto_file
   4). You want to look at KEYS only, so uncheck two other boxes
   5). Press "Find Next" button
   6). Expand ei-script_auto_file branch
   7). Highlight "shell" branch (it will appear)
   8). Click right-mouse, select New->Key
   9). Name it "Edit script..." (no quotes)
  10). Now expand shell and highlight "Edit script..."
  11). Click right-mouse, select New->key
  12). Name it "command" (no quotes)
  13). Highlight "command" now
  14). On right panel you will see only one entry "Defaul"
  15). Double-click it
  16). Type in "notepad.exe %1" (no quotes)
  17). Press OK and close the registry
  18). Now go back to explorer and right-click on a ei-script file. 
  19). Chose "Edit script..." to edit it with notepad.

----
BUGS
----
This application doesn't do much so it doesn't have many bugs.
If you find something wrong with it you may let me know. Can't
promise any fixes but who knows. ExecutIt is simply a result
of boredom and having fun with the compiler and I have never 
intended to make it a decent application. It just does stuff.

If you have a question or idea write to me at e-mail address provided.
