Mark Jacobs' Free 32-bit Windows Software

Contact me on my email submission form for queries about
any of the following software. None of these programs install anything to your PC - they
do not write anything to your registry (with the obvious exception of MJ Registry Watcher) and
they are all self-contained .EXE files - you simply make an installation directory for them,
and unzip them into, and run them from there. They were all developed with Borland C++ Builder
Professional, and they are free of charge. If you feel generous,
then you can donate something by clicking on this Paypal button :-

MJ Registry Watcher is a simple registry, file and directory hooker/poller, that safeguards the
most important startup files, registry keys and values, and other more exotic registry
locations commonly attacked by trojans. It has very low resource usage, and is set to poll
every 30 seconds by default, although you can adjust this to anywhere between 0 and 9999. A
configuration file stores all your settings for future use. MJRW not only polls the system, but
it also hooks it, so that most changes to keys, files and directories are reported
instantaneously. Key deletions are still caught by the polling loop though, since they cannot
be hooked. Exactly which keys and files are protected can be completely configured by the user,
although the sets I supply with MJRW will cover most standard PCs.

There is an additional automatic registry backup system that takes a snapshot of the entire
registry about every 28 days and stores it in the directory MJRegBackup. The filename is of the
form MJRegBackup_yyyymmdd.reg where yyyy is the year, mm is the month and dd is the day. The
last 15 snapshots are kept. They can be restored from a menu option : this can be used in Safe
Mode as administrator to rescue a non-booting PC. It should only be used as a last resort : it
saved my PC when I accidentally knocked out the video drivers during an over-zealous session in
the registry, cleaning out "LogMeIn"!

To install it, extract the files with pathnames, and you'll have a self-contained .exe file
with a small help text file, the keys and files lists, and a couple of exclusion files in the
MJRegWatcher directory. Launch RegWatcher.exe and then, use the Options, Settings, Automatic
Startup Options screen to install it either just for the current user, or for all users. From
this screen, you can also choose which key set to start it up with, or you
can uninstall it. Softoxi have also done a brief
video
tutorial in installing and exploring MJRW.

Please note that under Vista and later, MJRW may need to be configured with
administrator privilege to write to the registry. To do this, go to the RegWatcher.exe file in
Explorer, right-click to Properties, and go to the Compatibility tab. Check the admin box.
Whenever the PC is restarted, you may have to OK MJRW to start with admin rights. Unless
you disable UAC, the only way round this is to use the task scheduler to launch MJRW with
administrator rights and set it to run at log on.

There is also a service mode which is documented in the help file as follows :-

RUNNING MJ REGISTRY WATCHER AS A SERVICE

You will need administrator access rights to set up the MJ RegWatcher Service. You can use the
item under the Options menu to "Install MJ RegWatcher Service". REMEMBER TO UNINSTALL THE
INTERACTIVE MJ REGISTRY WATCHER (using Options, Settings, Automatic Startup Options or
disabling the scheduled task or Startup menu item) before you start using the service since
they cannot be run simultaneously. Once interactive MJRW is uninstalled, and the service has
been installed, you can start the service by running services.msc (or Administrative Tools,
Services from Windows) and going to the entry "MJ RegWatcher Service Stub" and starting it.
Once running, it will continue to run until the PC is shutdown, surviving logins and logouts,
and automatically starting up when the PC is started (and before anyone logs in). If someone
tries to terminate it without stopping the service stub, it will be re-launched automatically.

To remove the service, you have to stop the service running using services.msc (or Windows
service manager with Administrative Tools, Services). Navigate to "MJ RegWatcher Service
Stub" and stop it. Then launch interactive MJ Registry Watcher (by running RegWatcher.exe from
the installation directory) and choose "Uninstall MJ RegWatcher Service" from the Options
menu. REMEMBER TO INSTALL THE INTERACTIVE MJ REGISTRY WATCHER (using Options, Settings,
Automatic Startup Options or enabling/creating the scheduled task or Startup menu item) if you
want MJ Registry Watcher interactive mode to start up automatically when someone logs in.

The service has some important differences from the interactive mode :-

Only Accept and Reject modes are supported. Prompt mode defaults to and sets Accept mode.

There is no tray icon or visible application interface. It runs invisibly.

Keys and filespecs prefixed with $ to always prompt, will instead Accept or Reject depending on which mode is set.

The configuration of the service is taken from that used by the normal interactive configuration.

Only one instance of the service can be run at a time, and it cannot be run at the same time as an interactive session.

To be informed about alerts while the service is running, you can :-
a) Run the application mjrwmon.exe from the installation directory to watch the service
b) Use the alert sound set in interactive mode
c) Use the email settings set in interactive mode
d) Keep a view open and refreshed on the log file mjregwatchkeys.log

If a trojan attempts to change your startup settings, you will be alerted, and you can prevent
any changes being made. You can also configure MJRW to email the alert details to, for
example, an administrator. It is fully configurable as to what keys and files are monitored,
so, if you have a vested interest in protecting your file association for the mailto protocol
(your default emailer), so that your preferred app loads them, and something else is trying
very hard to undermine this association (Outlook for example), this will popup, offering to
stop a new association attempt, after Outlook had loaded, say. The key that stores this
association is hkey_lmus\software\classes\mailto\shell\open\command, and you will find
that all such keys are covered by the wildcard key hkey_lmus\software\classes\???\shell\???\command.
This means that all your file associations are protected. All the system files are also
monitored, including system dlls, executables and driver files. If there is a change to any
of these files, an alert is recorded as to what files have changed and you may be optionally
informed with an on-screen alert. However, changes to the files cannot be undone.

It assumes write access and directory create rights for the path the .exe file sits in (ie.
wherever you installed it). The default set of keys and files should ensure that nothing gets
run at startup without you knowing about it, and important boot up files don't get changed
behind your back. When monitoring, keys are opened in Read-Only mode, and the application only
needs Write Registry access when it has detected a change. It keeps a log of any suspect
activity, and displays any such information for the current session in the bottom panel. A log
file has this appended to it and can be viewed by pressing the Log button. The file keeps a
complete history of alerts.

You can also visit a Wilders
Security forum thread dedicated to the formative years of this application. My moniker is
Graphic Equaliser. The thread started November 13th 2004 and finished on June 29th 2010.

The default set of keys was chosen to balance security against intrusiveness. However, you can
experiment by selecting different security levels on the Options menu, and see the impact on
PC performance. The higher you set it, the better the coverage, and also, the more warnings
you'll get (especially with the openwithlist keys monitored). This list is based on some
invaluable work done by Hojtsy documented in
Hojtsy's compiled
list of the security hotspots in the registry. It also has stuff from the
Gladiator AV Forum
and Silent Runners' Launch Points List.

is a simple news reader with the added advantage that you don't need to set up accounts, and it
writes nothing to your hard disk except for a couple of small text configuration files, which
simply list your preferred news servers and your identity when sending replies. This simple
.exe file will allow browsing of, and, usually, postings to newsgroups. Searching and thread
traversal are catered for with a unique interface design. Both headers and message bodies can
be searched for wildcarded text or even regular expressions (prefix with mjre: to announce a
regular expression match). The Message header "References" is maintained when replying to
threads. It is an adaptation and enhancement of the
Netmasters Fastnet news reader demo program.

is a utilities program-gone-mad. It can list all legal WAVEFORMATEX control blocks for the PC
it is running on (right-click the little globe button on the right-hand side of the window to
activate report procedure), and do TCP/IP connections to any port and ip address, if allowed.
It can do DNS and Mailbox (MX) lookups on any host or IP address. You can "talk" to your POP3
server if you know the POP3 protocol, for example. Give it a URL and it will get whatever is
there, into a file on your PC with the same name, but in the directory this program runs in. It
factorises numbers, has a calculator, VU meters for the currently-selected input source, and a
bonkers colour selector. Some of the functions are only knowable from reading the pop-up hints
on certain controls. For example, there is an NIC information getter, but I'll leave that for
you to find. The Middle Window is an anagram and crossword solver, and also does the "Numbers
Game" in Channel 4's Countdown (you enter 6 numbers and a target, separated by spaces and
press Enter). It is also useful in Scrabble games (but don't tell my Dad!).

framoligen,s will give all words from these letters for Scrabble

framoligen,8 will give all words from these letters with 8 letters or more

dnrefainlto,8,9 will give all words with between 8 and 9 letters

b*n??t will give all words starting with b and ending in n--t (eg. blanket)

It can play CDs and look up the CD information from freedb.org. It has very low resource usage.
When playing MP3 files, it will display the artist, title, album, year and track number in the
centre of the player window, if these exist in the tag for the MP3 file. You can also easily
launch the Windows properties information for any file it is playing.

DJ Mode

It can optionally introduce each song using the speech engine in Windows XP and above, by
checking the "DJ" checkbox. You can configure the introductions with a simple text file. The
MJIntros.txt file that comes with MJPlayer is a starting point for you to "build" your own DJ.
You can access this file by right-clicking on the DJ checkbox. A line from this file
is picked at random to announce each track. Some examples of "announcements"
that come pre-defined for MJPlayer (the # sign at the start of each line
means delay playing the track until the announcement is over, otherwise the announcement talks
over the track start) :-

#%artist% told me that %random% is %random%. oh well, here's %song%
#Wonderful %random% %random% by %artist% with %song%
#Let's go back to %year% with %artist% playing %song%
#%artist% came round my house and played %song% in my %random% %random%
#Coming up next is
#Party out with
#Freaky deaky %random% %random% from
#I came in my pants when I first heard
#%song% by %artist% was my gateway into drugs
#Hedonistic happiness from
#Genius %random% %random% from %artist% with %song% from the album %album%
#And now %random% with %random%. Kidding! It's
#When I hear %song% by %artist%, I have to go off and sing it from the rooftops
#Here we go with
#It makes you realise how lucky you are to be a lyve.
#Wow, next up is
#Now some %random% with %random%. Nah! Here's
#How about %random% with %random%? Or
#We've got you
#Tremendous work from
#Terrific %random% %random% from
#Great music from
#Sod off! It can't be %artist% with %song%, can it?
#Shit hot noise from
#Fucking massive %random% %random% from
#Now it's time for
#Top notch %random% %random% by
#It had to happen. It's
#Incredible %random% %random% from
#We're on a roll with
#Wonders will never cease. It's
#Excellent %random% %random% from
#Marvellous %random% %random% by
#Gitting ada, it's
#You'll cack your pants with
#You're shitting me.
#Trance out with
#It's here. It's now. It's
#Very rare and very hip. It's
#This is the only station where you'll hear
#Melodic and beguiling. It's
#A %random% %random% from
#Now for a delicate %random% by
#Shy sir, ezz ist
#Maird, say
#Stay cool with
#Good god, it's
#Hair-raising %random% harmony by
#Groove out with
#We've got the best %random% from %random%. We've got
#I saw %artist% lyve and they were %random% %random%. Here they are with %song%
#Utterly %random%, and %random%,
#More phenomenal %random% %random% now from
#Monumental %random% %random% with
#Get off your napper with
#Phantasmagorical %random% from
#Well, I never did. What a turn up for the books. Here's %artist% with %song%
#Quality %random% %random% from
#Exceptional %random% %random% from
#%artist% phoned me to tell me to play %song% from %year% or they'd cook my %random%!

If there is no mnemonic %artist%, %song%, %album% or %year% in the announcement, it puts
"%artist% with %song%" on the end of the announcement for you.
For example, it might say "Top notch tune by Led Zeppelin with Dancing Days". Where such a mnemonic exists, it will substitute the
relevant information into place and say that. For example, it might say
"I saw Magazine live and they were incredible. Here they are with Parade".

To change or edit the intros, simply right-click on the DJ checkbox. There is no limit to the
number of different intros you can have in the intros file. You can also have a very long intro
as long as it is all on one line. When a new song is about to start, an intro is taken at
random from the current intros file and used to introduce the track. The voice is configured
from the Speech applet in Control Panel. MJ Player tries to make the voice randomly intonated
to "humanise" it a bit. Have fun inventing your own DJ! If you haven't got it already, there are
2 extra voices for XP with the
SAPI 5.1 redistributable (10 MB).
If there is more than one voice installed on the PC, the DJ's voice is changed every 20 minutes.

Jingles

By checking the "Jingles" checkbox, you can intersperse jingles between tracks. Simply make a
sub-directory off the MJPlayer directory called "Jingles" which has as many jingle sound files as
you like. It selects three jingles at random to play when a track has finished, unless the "Loop"
(loop the current track) checkbox has been checked.

Here is a zip of 1,979 jingles I
put together, to extract into such a directory (51.8 MB).

For example, if you had installed mjplayer.exe into a directory c:\mjapps\mjplayer,
then the jingles should go into c:\mjapps\mjplayer\Jingles

Other features

It also has an infinite loop mode, with a seamless loop point for WAV files. It can play all Windows
compatible formats that you have installed. If you want codecs to play MP4, DVD and FLV
file formats, go to Edskes Mirror and
download K-Lite full codec pack. Install with the "Lots of Stuff" option instead of "Default".
MJ Player may fail to play FLV. If so, use Media Player Classic, which is installed with these codecs.
If you want Quicktime and Realmedia
formats, go to Quicktime and Real Alternatives
and download and install the latest Quicktime Alternative and Real Alternative offerings from there.
After you have installed them, you should be able to play MOV, QT, RAM and RM files on your computer
with the player. If you can't, you'll need to add a couple of strings to the registry at location
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions. I added strings
called mov, rm, and ram, and set their strings to MPEGVideo. The player will now play these
extra formats and you no longer need Quicktime player with its iPod adornments, or Real Player
with its snoopy habits. The 2 black buttons on the end can step back and forth by a fixed amount
of milliseconds, which you can set as low as 1ms, so you can frame-step through video sequences,
for example. The slider control shows where you are in the current track, and you can slide it to
where you want to hear from in the track, and play from there. You can record from your soundcard
in all the formats your computer has codecs for. Here is a small help section
(viewable by right-clicking the "Show Info" button) :-

mjplayer directory -r will load a playlist with all sound files in directory
(and subdirectories), randomise the playlist, then play it.
mjplayer -p will play the last playlist you used,
from the last track and position you were on.
mjplayer -p -r will play the last playlist you used in a random order.
The Record button can be used when nothing is playing. You enter a filename
which is given a .wav extension, and choose a sound format. It will then start
recording. You can press Stop to stop recording and choose whether to save it, or
you can press record again to stop recording and automatically save it.
You can add to the playlist either while the player is playing, or when it is stopped.
If it is stopped, the playlist can be restored to its original position by clicking the
"Played" label, or you can load the playlist before this one by right-clicking on it.
To start a fresh playlist, you should clear the current one by right-clicking
the Open Media File button before using it to open more files.
To save the current playlist, click the "Of" label. If you want to restore
the last saved playlist, right-click the "Of" label, when the player is stopped.
DJ Mode Mnemonics for Announcements (Right-Click DJ Checkbox)
%artist% is substituted for the name of the artist
%song% is substituted for the name of the song
%album% is substituted for the name of the album
%year% is substituted for the year of release
%track% is substituted for the number of the track
%random% is substituted for a random word from the list of words in the file mjpwords.txt
Prefix announcement line with '#' sign to suspend playing until announcement is done

The Record button can be used when nothing is playing. You enter a filename which is given a
.wav extension, and choose a sound format. It will then start recording. You can press Stop to
stop recording and choose whether to save it, or you can press record again to stop recording
and automatically save it. You can add to the playlist either while the player is playing, or
when it is stopped. Added tracks are sorted alphanumerically before adding them to the
playlist. To start a fresh playlist, you should clear the current one by right-clicking the
Open Media File button before using it to open more files.
You can recall the last playlist used before the current one, by clicking the "Played" label.
If you right click this label, the current playlist is reloaded. If you click the "Of" label,
the current playlist is stored. If you right click this label, the last stored playlist is
reloaded. To select a track from the playlist, click the track name label and choose from the list.
You can edit any of the playlists : the files are plaintext and they are named as follows :-

mjplayer.cply - the current playlist

mjplayer.cold - the previous playlist

mjplayer.cbak - the stored playlist

Each of these is stored in the application installation directory (like MJ Registry Watcher),
and you should exit mjplayer before editing them in notepad (or whatever your text editor is).

is a simple and fast, but fully-featured browser, based on IE's underlying built-in OS support
routines. It has support for :-

Tabbed Browsing

Reading out highlighted text (Helpful for the partially-sighted)

A Complete History of Unique Sites Visited

Favourites

Set as Default Browser (Right-Click "Add Favs." Button)

Form Completion

Google, Dictionary/Thesaurus and Translate Lookups of Selected Text

Print Preview

Save Webpage as File(s)

Startup at Last Page Visited

Page Snapshot - store an image of the visible webpage. Supports BMP, JPEG, and PNG formats.
You can run it by right-clicking the Print button. It can also be run from command line using this syntax :-MJNewBro.exe {url;width;height;top;left;imagefilename;delay-in-ms}
Command line usage will close the browser after delay-in-ms milliseconds (default 5000 or 5 seconds).
If you specify zero for the width or height, it will work out the dimensions for you - this can
result in very large images on large web pages!
If you do not specify anything for width, it defaults to 800 and height to 600. top and left default to zero.
For example, mjnewbro.exe {www.jacobsm.com;800;600;12;17;jake.png}
or snapshot all of msn.co.uk with mjnewbro.exe {www.msn.co.uk;0;0;0;0;c:\temp\mjsnap1.png}
producing a 1.3 MB png file about 1000 pixels wide by 3000 pixels high.

Recent Updates

Got rid of OLE Handle and EInvalidOp errors.

Added mjbrow_raisever.reg to the download so that you can ensure MJBrowser (and MJEmails below) is using
the latest IE DLLs, rather than the default IE7 ones. Extract the .reg file and
double-click it to enter the key into the registry. You may need to restart MJBrowser if it was
running when you do this.

Now allows you to set silent mode (no dialogs) on or off yourself. Login dialogs can now pop up.

is a simple and fast POP3/SMTP email client. You can even use it to handle your emails from a USB pen
drive without affecting or leaving anything on the host computer. It also has a complete
log of POP3 activity, accessible by right-clicking the "POP3" button, which is useful if comms
do not work as they should. Unzip the contents of the zip into a directory of your choice. To
set up your accounts, click the "POP3" button to configure your hosts. The send and receive
screens both pick up details from the lines in this configuration screen. New!! Message
Archiving into Zip files with optional password protection. Right-Click the "Explore RCVD
Directory" button to bring up the archiving dialog. All files in the RCVD directory are moved
to a zip archive with a default name (can be changed) of today's date.

It uses your own white and black lists to filter relevant email. It automatically decodes email
text that is base64/mime encoded. You can also export the retrieved list of emails to a CSV file
for further investigation and processing. MJEmails allows you to vet an email drop for spam and
clear away any emails that you know you don't want. It has a 20 second keep-alive when connected.

You can send HTML email with inserted images and attachments. It has a built-in sent email log
and address book. It has command line support for "mailto:" email addresses so it can be called up from,
for example, Mozilla Firefox "mailto:" links.

The HTML email composer window has spell-checking with English UK and US
dictionaries and thesauruses. Misspelt words are wiggly-underlined in red and you can
right-click on misspellings to see corrections, suggestions and spelling options. There are even more
options on the editor's context menu as shown in the screen snapshot. Many aids for composing HTML emails
are built in, for example, inserting images automatically handles the <IMG...> tags for you, by placing
them at the cursor position. Pressing "Enter" will automatically add a <BR> tag for you too (if you
really just want a new line, use Ctrl+Enter instead).

There is also a simple CSS Style Designer and a message viewer. These both use internal
browser components based on the in-built IE DLLs in the Windows OS. These default to using IE7
controls, unless you apply the included "mjbrow_raisever.reg" registry file so that they use
the IE11 DLLs instead. Obviously, you will need IE11 installed on the PC before this will work.
The IE11 controls are more up-to-date and perform faster and better than the IE7 ones.

One of its strongest features is the filtering of spam using regular expressions and wildcards
("*" to match any characters or none, "?" to match any single character, and "mjre:" to prefix a regular expression filter).
The first 20 lines of the message, plus the "from", "to" and "subject" lines can be checked against
your filters. I commonly use these filters to trap loads of spam :-

undisclosed*recipient
--spam--
mjre:\*\*spam\*\*

Regular Expression filters are introduced by prefixing the filter with
"mjre:". On the third line, I check for the string "**spam**" and because "*" usually means
match any character, I have used a regular expression to denote that I mean the asterisk
character to be taken literally, and not as a wildcard character. My ISP puts "--spam--" into
the subject line of any email it reckons is spam. And I always discard email addressed to
"undisclosed recipients", "undisclosed-recipient", or any combination of those words.

Help Screen :-

Click Column Header to Sort that Column
Right-Click Column Header to Search that Column
Del to Mark Email as Deleted
Ctrl+Del to Recall Email
Alt+Up/Down Prev/Next Whitelist hit
Double Click or Enter to Get Message from Cache/Server
Ctrl+Enter Get Msg from Server (Bypass Cache)
Entries marked with * will be permanently deleted on manual disconnect or quit