UDP: The Unicode Document Processor Windows Application
UDP is a stand-alone document processing program that works with Unicode
fonts in the Win/98/ME and Win/NT/2K/XP/Vi/7/8 environments.
It supports not only word processing and databases in multiple languages,
it also supports faxing and "one-click" e-mailing. UDP is a powerful document processor with
many more features than are found in other free word processors such as WordPad.
It is freeware and is available for FREE download from https://leighb.com/udp
CMDer: A better DOS-Box Windows Application (Win//NT/2000/XP/Vi/7/8/10 only)
CMDer is a Windows frontend for the standard Windows Command Shell (aka cmd.exe) that supports ^C and ^V for Copy and Paste. It works by piping its input to a slave cmd.exe's stdin and it reads a pipe connected to stdout and writes that to the screen.
IntraSrv: Simple Web Server Console Application
This is a small web server that you can run to allow a directory and all its subdirectories to be accessible via a web browser. You will only want to do this on a local network (LAN) that is protected by a hardware firewall (such as a Linksys or D-Link Firewall Router). This little web server was built from the Visual C - wsrv at Web Programming with Sockets. More info here.
wgetall: Simple HTTP downloader Console Application
This program will download a file via HTTP, save it in the current directory, then download all the files pointed to by downloaded file. It is primarily intended to use with IntraSrv to grab all the files pointed to by a page IntraSrv is displaying. But it can also be used to grab all the files pointed to by any HTML page on the internet (currently there is no support for cgi, php, asp, etc. pages).
This simple HTTP reader was built from the Visual C - wget at Web Programming with Sockets. More info here.
instmpl8.exe (stored in instmpl8.zip - 15,174 bytes) Console Application
This is a program to insert a template into an HTML file. It is very useful if you have a menu (for example) that occurs on a number of pages and you want to change the menu in all pages quickly and easily. Make a template HTML file that contains your menu and surround it above and below with markers like
<!-- BEGIN AUTO INSERTION BLOCK OF menu template -->
[your menu code goes here]
<!-- END AUTO INSERTION BLOCK OF menu template -->
Then surround the menu in each of your web pages with the same markers. When you run instmpl8.exe against each web page, whatever is between the markers is removed and replaced with what ever is between the markers in the template file.
Usage is instmpl8.exe [Template-file] [Target-file]
The markers being looked for are
"<!-- BEGIN AUTO INSERTION BLOCK OF "
"<!-- END AUTO INSERTION BLOCK OF "
(The quotes are not included, of course).
There must be only one set of markers in the [Template-file].
A log file will be found in the same folder as instmpl8.exe if there are any errors.
tighthtm.exe (stored in tighthtm.zip - 14,177 bytes) Console Application
This little program removes extra whitespace and blank lines from HTML files. It does not alter whatever is enclosed in <pre> </pre> tags.
Usage is tighthtm.exe [input-file] [output-file]
TodayAt.exe (stored in todayat.zip - 28,228 bytes) Windows Application
This is a simple Alarm program. Run it from the Start > Run dialogbox (or a DOS box). It takes a time (HH:MM) or minutes (:MM) and disappears. Examples:
todayat 9:45a todayat 21:50 - You can even add a comment todayat :30
It rings the alarm when the time is up and reappears. You can re-show and re-hide the Alarm Window(s) by running todayat show or todayat hide. Unzip todayat.zip and place both files in your PATH (e.g. c:\windows). Run todayat with no arguments (or /?) to see more options. You can change the alarm sound by replacing the TodayAt.wav file in the same folder as TodayAt.exe - just copy the desired WAV file over the existing TodayAt.wav.
SetCurPos.exe (stored in setcurpos.zip - 10,663 bytes) Windows Application
This program takes 2 numbers as command line input and positions the cursor at that location on the screen. The first number is the horizontal offset; the second number is the vertical offset. The numbers can be a plain number (e.g. 320) or a single arithmetic operation (640/2). If a number is greater than your screen dimensions, it is converted to your screen dimension - this makes it possible to set the cursor based on the current resolution of your screen (e.g. 9999/2 is converted to half your screen's width or height).
Examples:
setcurpos 0 0
Cursor to upper left
setcurpos 12 60
Cursor to upper left - perhaps to the Back button on your browser
setcurpos 9999/2 9999/2
Cursor to center of screen
setcurpos 20 9999-10
Cursor to Start button
Why is this useful? If you create Shortcuts on your desktop and set their Shortcut Keys, you can instantly jump the cursor to a location on your screen with just a Ctrl+Alt+Key. If you make 9 such shortcuts and make the Shortcut Keys be the numerical keypad keys, you have a visually mnemonic way to jump your cursor to various locations on your screen. This can be especially useful on a laptop with a limited pointing device (joystick or touch pad). [Note: When creating Shortcut Keys in a Shortcut, position your caret in the Shortcut Key field and press the desired key - do not also press Ctrl+Alt - they will be added automatically.]
The are also 3 possible command line flags to SetCurPos.exe:
-g Get the current cursor position and save it in SetCurPos.txt
-s Set the cursor position to the value saved in SetCurPos.txt
-r Become memory Resident (hides itself - run again to unhide)
For the first 2 above, you will want to make shortcuts with Ctrl+Alt accelerators (I use the - and + on the Numerical Keypad); the 3rd is useful in your Startup program group.
calnsert.exe (stored in calnsert.zip - 19,541 bytes) Console Application
If you want to add a calendar for this month to an HTML file, add the
following 2 lines to the HTML file where you want the calendar inserted:
Then run calnsert.exename-of-HTML-file and this month's calendar
will be inserted. Today's day will be in red. If you want today's day to be
a link, run calnsert.exename-of-HTML-filehttp://some.url and
today's day will link to http://some.url. You can see an example of this
by clicking here.
cal36.exe (stored in cal36.zip - 19,136 bytes) Console Application
Run Cal36.exe to generate a 36 month HTML calendar starting from this month. You can add this program to your StartUp program group to automatically generate a new 36 month
calendar whenever you boot your system. The output will be in calendar36.htm
in the same directory that you are in when you run cal36.exe. You can add a numerical argument to generate more than 36 months - eg. for a 48 month calendar, run cal36 48; the output will be in calendar48.htm. You can also specify where to generate the output - eg. cal36 36 c:\www\36mocal.htm
calyr.exe (stored in calyr.zip - 21,983) Windows Application
This program can generate an HTML Gregorian calendar for any year from 1701 to 2500 and will automatically display it in your browser. If you run it with no command line arguments, it will display a dialog where you can enter the year as well as other formatting values. Run with /? for more optional arguments.
ShowFont.exe (stored in showfont.zip - 15,272 bytes) Windows Application
Want a quick way to see all the fonts installed on your system and what they look like?
Run this program and it will create an HTML file in your %TEMP% directory and then
run your browser to display it (provided your browser is installed correctly to handle
*.htm files).
DoIt.exe (stored in doit.zip - 12,766 bytes) Windows Application
Ever want to run a Windows Application from a batch file on Win/NT or Win/2000 and have
the batch file continue on like it does on Win/95/98/ME? If the batch file line
just executes a Windows Application with certain flags, you can use this program
to do just that.
You can also set up a program with certain flags to run from a Command Prompt and not wait:
Example: Calling myeditor with certain flags set:
Change to a directory that is in your path
copy DoIt.exe ed.exe
echo c:\mypath\myeditor.exe -flags > ed.dat
Now just type:
C:\any\path>ed filename.ext
Note that the copy of DoIt.exe with a new name and the *.Dat file must have the same
BaseName and must reside in the same directory.
traverse.exe (stored in traverse.zip - 13,190 bytes) Console Application
Ever wanted to run some program or batch file in a directory and in all its subdirectories? Traverse.exe lets you do exactly that. Type traverse followed by the command line you want run and away you go.
Examples:
traverse del *.bak
traverse grep printf *.c
Usage is traverse {-flag(s)} [some command line to run]
The given command will be run in the current directory & all subdirectories
the optional echo -flag can be one of the following:
-q echos nothing
-d echos the drive:directory as each is entered
-o echos the directories without any drive
-D only echos the command followed by the drive:directory in quotes
-O only echos the command followed by the directory in quotes
(-D and -O do not actually run the command - they only echo)
(Default is to echo drive:directory and command)
the optional limit -flag limits the depth of subdirectories
-0 only the current directory, no subdirectories
-1 the current directory and its subdirectories
-2 the current directory, its subdirectories and their subdirectories
-N where N is a number: current dir, and subdirs to N levels
ClipBook.Exe (stored in clipbook.zip - 24,432 bytes) Windows Application
[Updated 3 July '13.]
This is an expanded version of FixClip.Exe which remembers previous clipboard
entries. It has two ways of remembering and reusing clipboard entries:
It automatically stores previous ClipBoard entries of type TEXT and OEMTEXT.
If there is a horizontal scrollbar at the bottom of the window, there are
previous ClipBoard entries available - use the scrollbar to view them.
If you find an entry that you would like to be the current contents of the
ClipBoard, press the "Copy to ClipBoard" button just above the scrollbar.
The previous entries (up to 64 of them) are stored in an internal 16384 byte
buffer. This buffer is saved to disk when the program exits or File/SaveBuffer
is selected. They are stored in most-recently-used order.
Only TEXT and OEMTEXT entries are saved and only if they are less than 8192 bytes long.
You can place numeric markers on ClipBoard entries
so that they can be retrieved to the ClipBoard with a single keystroke.
To mark the currently displayed entry, press the letter 'm' and then press
a number between 0 and 9. To retrieve a marked entry, simply press the number
you used to mark it and it will be copied to the clipboard.
Entries of type TEXT, OEMTEXT and RTF can be marked and retrieved.
There is an extensive Help system - see the Help menu item for more features.
copythis.exe (stored in copythis.zip - 5,995 bytes) Windows Application
This program copies its command line to the clipboard.
It is most useful when used with a Shortcut Icon that has a 'shortcut key'
(i.e. Ctrl-Alt-someletter). You can build various shortcuts that have command
lines that are things that you type very frequently. Then press Ctrl-Alt and
the right letter and you load the clipboard; press Ctrl-V (usually) and you've
typed the whole string in just 2 keystrokes. You can also preload the clipboard
at boot time by putting such a shortcut in your Startup program group.
This program has no visible window and terminates immediately after copying
its command line to the clipboard.
copythis2.exe (stored in copythis2.zip - 9,524 bytes) Windows Application
Like copythis but with three optional command line flags: /f /q and /i
/f means that what follows is a full path & file name and to copy only the file name part to the clipboard:
copythis2 /f c:/dir/filename.ext => filename.ext
/q means strip any leading/trailing quotes from what follows:
/i must be the last option and means ignore and just copy what follows as is -- so you can use copythis2
with Unix file paths or anything else that starts with a /:
This was suggested by a user of copythis who wrote:
I'm using your CopyThis utility in my WinXP SendTo menu as a simple way to copy
a path/filename to the clipboard. It works just fine, but I'd would like to have the possibility to just copy the
filepart of the path. Would it be possible for you to add a /f option to
CopyThis that does this?
copyfile.exe (stored in copyfile.zip - 15,612 bytes) Windows Application
This program copies the contents of a given file to the clipboard. The file can be given on the command line or if there is no command line, a standard File - Open dialog is displayed for you to enter the file name. The contents of the file are inserted as CF_TEXT (plain text) no matter what the file type is.
This program has no visible window and terminates immediately after copying
the file to the clipboard.
CopyFile can be used with batch files to quickly place data on the clipboard. Here's an example of a batch file that will copy the current date and time to the clipboard:
@echo off
date /T > %temp%\now.txt
time /T >>%temp%\now.txt
copyfile %temp%\now.txt
del %temp%\now.txt
SldShwGen.exe (stored in sldshwgen.zip - 18,855 bytes) Windows Application
SldShwGen will parse an HTML contact sheet that contains
links to JPG, GIF and/or PNG files and build a series of small HTML files
that work as a slide show that the user can change manually or set to change
automatically every 5 seconds. The order of the slide show will be the same as the order of the images in the contact sheet. The name of the slideshow HTML files will be the same as the corresponding image file except with an extension of htm for manual changes and html for automatic changes. Therefore, for example, if the first image on the contact sheet is myimage.jpg, the slideshow starts at myimage.htm (manual) or myimage.html (automatic) - you'll have to manually change your contact sheet to point to one of these.
These small slideshow HTML files, along with an allin1.html file will be written to the same folder as the contact sheet. This method uses only HTML - no javascript, etc. On Firefox, the images are automatically resized. The IrfanView image viewer is a great way to generate HTML contact sheets (use File > Save as HTML File on the Thumbnail screen to generate the contact sheet).
In SldShwGen, use File > Open to select the HTML contact sheet or else provide the filename on the command line.
lsed.exe (stored in lsed.zip - 15,429 bytes) Console Application
Want to do a find and replace in a whole set of text files where you use a for loop
and sed - but the find or replace string has things like < or > or |
or a weird mixture of spaces and tabs? You can do this with lsed provided
the whole find-string in on a single line. You create a file with the find-string
and another file with the replace-string (which may contain multiple lines) and run
lsed
Usage is lsed [find-str-file] [replace-str-file] [input-file]
where
[find-str-file] is a one line file containing the text to find,
[replace-str-file] is a one line file containing the text to replace
the found text. This file could consist of just a CR LF,
[input-file] saved with extension BAK; it must not have extension TMP
Example: for %h in (*.ht*) do lsed find.txt replace.txt %h
lgrep.exe (stored in lgrep.zip - 35,980 bytes) Console Application
I use the ol' unix GREP all the time. But some of the DOS - Win/XX
versions don't do exactly what I want do sometimes. So I wrote my own.
The best feature of this is the "context" grep - it shows surrounding lines
when it gets a hit. The following is taken from the "lgrep -?" help message:
Usage is lgrep {options} [pattern] [filename]
[pattern] is matched against lines of [filename]
{options} are as follows:
-c Output to stdout is matching lines of [filename]
with 10 lines preceding the matched line
& 12 following the matched line
-# Output to stdout is matching lines of [filename]
where # <= 50 is number of lines to print as context
with #/2 lines preceding the matched line
& #/2 following the matched line
-#1:#2 Output to stdout is matching lines of [filename]
with #1 lines preceding the matched line
& #2 following the matched line
-b matches only at beginning of line
-e matches only at end of line
-i ignore case
-w matches words
-v print lines where pattern is NOT found (sets #==1)
-t precedes file with a title line
-n line-numbers each line and *'s each matched line
-p pauses after each context (ignored with -v)
dump.exe (stored in dump.zip - 14,323 bytes) Console Application
Want to see exactly what's in a file? dump will dump the contents of a file to your screen in both hexidecimal and ascii formats, 16 characters per line:
C:\dir>dump 20-ff.txt
00000000 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./
00000010 0D 0A 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D ..0123456789:;<=
00000020 3E 3F 0D 0A 40 41 42 43 44 45 46 47 48 49 4A 4B >?..@ABCDEFGHIJK
00000030 4C 4D 4E 4F 0D 0A 50 51 52 53 54 55 56 57 58 59 LMNO..PQRSTUVWXY
00000040 5A 5B 5C 5D 5E 5F 0D 0A 60 61 62 63 64 65 66 67 Z[^_..`abcdefg
00000050 68 69 6A 6B 6C 6D 6E 6F 0D 0A 70 71 72 73 74 75 hijklmno..pqrstu
00000060 76 77 78 79 7A 7B 7C 7D 7E 7F 0D 0A 80 81 82 83 vwxyz{|}~..Çüéâ
00000070 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 0D 0A 90 91 äàåçêëèïîìÄÅ..Éæ
00000080 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F 0D 0A ÆôöòûùÿÖÜ¢£¥₧..
00000090 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF áíóúñѪº¿⌐¬½¼¡«»
000000A0 0D 0A B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD ..░▒▓│┤╡╢╖╕╣║╗╝╜
000000B0 BE BF 0D 0A C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB ╛┐..└┴┬├─┼╞╟╚╔╩╦
000000C0 CC CD CE CF 0D 0A D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 ╠═╬╧..╨╤╥╙╘╒╓╫╪┘
000000D0 DA DB DC DD DE DF 0D 0A E0 E1 E2 E3 E4 E5 E6 E7 ┌█▄▌▐▀..αßΓπΣσµτ
000000E0 E8 E9 EA EB EC ED EE EF 0D 0A F0 F1 F2 F3 F4 F5 ΦΘΩδ∞φε∩..≡±≥≤⌠⌡
000000F0 F6 F7 F8 F9 FA FB FC FD FE FF 0D 0A ÷≈°∙·√ⁿ²■ ..
Total Bytes Processed: 252
Usage is dump {flag} [input-file]
{flag} is -a or -q or -x where
-a output ansi instead of ascii (only useful if redirecting to a file for viewing with e.g. notepad, wordpad, etc)
-q no hex counter; no ascii (no first & last columns)
-x -q plus prefix with 0x for C/C++
-? will print this help message
pathof.exe (stored in pathof.zip - 13,022 bytes) Console Application
Now you can easily find out the full path of a command.
Usage is pathof.exe [command]
SplitIt.Exe (stored in splitit.zip - 12,161 bytes) Console Application
Got a file that is too big to fit on a single 1.44 floppy? Well now you
can SplitIt.
Usage is splitit [filename] {#K per block}, where the
default for the optional {#K per block} is 1400. SplitIt creates SPLITIT.1,
SPLITIT.2 ... SPLITIT.n - you can use the DOS "copy" command to put the
pieces back together. NOTE: YOU MUST USE THE /b FLAG TO THE COPY COMMAND!
timetaken.exe (stored in timetaken.zip - 472,397 bytes - the *.EXE file and *.DLL file should go in the same folder) Console Application
Displays, if available, the time JPG photo(s) were taken and optionally, changes the file modification-time to time-taken.
If you run the program with no arguments, a multiselect file open dialog will appear for you to select the files. You can use Ctrl+Click and Shift+Click to select more than one file.
You'll then be asked if you want to change the mod-times.
If a JPG header with time-taken is not available for a file, the modification-time is displayed instead.
You can also run the program with command line arguments:
Usage: timetaken {flags} [filename]
where {flags} can be any combo of the following:
-l -> show long paths for files
-q -> quiet: suppresses bgn & end msgs
-t -> touch file(s) to make mod-time = time-taken
if no -t, just display time-taken for each file
and [filename] is the JPG file(s) to display/touch
[filename] may contain a path and/or wildcards
[filename] may be omitted & will be prompted for.
SiteMap (stored in sitemap.zip - 19,102 bytes) Console Application
This program generates a simple SiteMap HTML file.
I created this program specifically for this site, so it is a bit customized:
It only works with a copy of a website on a hard drive (no http support)
It only follows relative links and links to subdomains
It ignores links that start with "../"
It ignores links with an anchor of "SlideShow"
It ignores links pointing to "allin1.html"
It ignores pages with the comment <!-- Generated by SldShwGen.Exe -->
It ignores the rest of a page if it encounters the comment <!-- No Sitemap Links -->
It handles a maximum of 16,000 HTML, TXT and PDF files.
Usage is sitemap [start-HTML-file] {URL-for-header}
Example: sitemap index.html http://leighb.com
If {URL-for-header} is a number, only that many levels are mapped. An example is the Link Map for suttas.htm, created with
Example: sitemap suttas.htm 1
In the same folder as the [start-HTML-file], it generates sitemap.html (which is renamed sitemap.htm on this web site).