JSDlgBox.dll - Browsing dialogue component
Note: JSDlgBox.dll does not work on Windows Vista/7. There are
no current plans to update it. The newer jsShell component
does work on Vista/7 and provides all of the functionality found in JSDlgBox.dll.
The JSDlgBox component download is still here for people who
do not need Windows Vista/7 support and who may prefer the small size of
JSDlgBox.dll to other options. The functions in JSDlgBox are simple with no optional arguments.
Browsing windows available: File Open, File Save, Choose Color.
Functions will show the dialogue window and return the file name or
color chosen.
Download jsdlgbox.zip (8 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSListVw.dll - List box window component
The JSListVw component provides a list box window
and several functions to deal with files and folders.
Functions include getting a list of:
All files in a folder.
All folders in a folder.
All files that were created and/or modified on a given date.
All folders that were created on a given date.
All files with a given file extension.
The list can be added to, cleared, or viewed in a window. List items
can be retrieved as an array or formatted string. An item can be
selected from the window list and the path of that item can be retrieved.
There is a script included that covers all the functions.
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jslistvw.zip (18 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSForm.dll - GUI component
The JSForm.dll component provides a variety of interface options.
It provides a scriptable window with options for:
• Window Title
• Window Caption
• Icon
• 2 textboxes (one of which may be a multi-line box of any size)
• Listbox
• Browsing dialogues (FileOpen, FileSave, BrowseForFolder, Color Selector)
• Buttons - up to 3 buttons with any caption
• Audio (play wav files)
• Color options - set colors of window, window text and buttons
• Save settings - INI file functions
Any or all of these options may be used in a given window.
There are numerous properties that can be set and functions to return
button clicked, textbox text, listbox selected item, etc.
Click Here to see some window samples.
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jsform.zip (70 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSSys3.dll - System info. and operations component
Note: JSSys3.dll does not work on Windows Vista/7. There are
no current plans to update it. The newer jsShell component
does work on Vista/7 and provides many, though not all, of the functions found in JSSys3.
For a full explanation of JSWare Vista/7 support see
here.
The JSSys3 component provides system functions that are difficult to
access or unavailable through VBScript. It contains 2 objects, Ops and IniEdit:
• Functions in the JSSys3.Ops object -
Information: Get Current User, computer name, display info., memory usage,
OS version, default program for filetypes, paths of executables.
Registry: Read data from 6 registry keys (all except NT HKEY_PERFORMANCE_DATA),
write data (including long binary), enumerate keys, enumerate values, delete values,
delete keys(including keys on NT that have subkeys).
Given a ProgID or CLSID, check whether a class is registered and, if so, return
CLSID, ProgID, file path.
Display: Get and set system GUI colors. Change wallpaper.
Processes: List running processes, list open windows, get active window,
set active window, close a window/program.
Dialogues: File Open (with multi-select option), File Save and Choose Color
browsing dialogues. (Including optional file extension filter setting.)
Miscellaneous: Shutdown, reboot or logoff. Get and set clipboard text.
Play a WAV file. Print files with default program. Timer(time count, not event.)
PEFile Object: An object available through the Ops object that represents file
property information for PE files (EXE, DLL, etc.) such as version, company,
file description, etc.
• Functions in the JSSys3.IniEdit object -
The IniEdit object provides a full selection of operations for reading
from and writing to INI files.
• Functions in the JSSys3.StreamOps object -
The StreamOps object provides functions to enumerate, read and delete alternate data stream files
on NTFS-formatted partitions. (ADS files are hidden security risks.) An included sample script
will recursively list all ADS files in a folder or disk partition. It can easily be adapted to clean out all
ADS files on a PC in a few seconds.
There are 15 demo scripts and a full help file included in the download.
The Startup Manager and Win9x system Info. webpage utilities are also included.
Download jssys3.zip (129 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSBin.dll - Binary Operations component
JSBin.dll provides binary file functions. They're of limited use in
scripting but if you need access to binary files this should do it.
Functions include:
Write to and read from binary files.
Translate multiple bytes to number and vice versa.
Translate byte numbers to binary strings and vice versa.
Convert between Base64 text and binary.
Sample scripts include bitmap operations, creating an icon from
a bitmap, and getting a list of functions from DLL files (export table).
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jsbin.zip (35 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSDraw.dll - Drawing component
Updated 4-2013 to support Windows Vista/7.
JSDraw.dll provides drawing capability to VBScript. This functionality
is in 2 parts:
1) Draw directly onscreen using shapes, text and images.
2) Draw to a built-in window that can be used for custom popup messages.
JSDraw can draw lines, shapes, text and images from files. It can also
be used to save a screen capture of any or all of the Desktop, allowing
drawn graphics to be saved. All of the same methods can also be used
with the popup window and the popup can have up to 4 defined hotspots
to receive input from mouse clicks. In other words, the popup window is
any kind of message box that you want it to be.
(Requirements: Windows 98 or later.)
View sample drawing
Download jsdraw.zip (56 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSMail.exe- Email component
Send email - plain text or HTML, with or without attachments. Send HTML webpages directly
as HTML email. No email program needed. No dependencies. Compatible with Windows 95/98/2000/ME/XP.
JSMail.exe is a component for sending email. It does not require MS Outlook, MAPI,
CDO or other emailing software. JSMail uses the system
sockets library Wsock32.dll. It sends email by communicating directly with your
outgoing mail server, taking the place of an email program.
JSMail.exe can send plain text or HTML email. With plain text it can also send
attachments. With HTML it can email a webpage with embedded pictures.
Note that this component
still requires an SMTP server. It does not replace the server. It replaces email software.
Added in v. 2 (April, 2008): JSMail v.2 adds the ability to send
to multiple recipients. Also new is an HTA webpage program intended especially for people who
know some HTML and CSS. Do you ever want to design a webpage and then just send that as an
email? The HTML email facilities in common email programs like Thunderbird or Outlook Express are extremely limited,
providing little more than the ability to color text with a few common colors and choose among a few tacky
"stationery" options.
With the SendHTML program, an HTA utility "powered by" JSMail,
you can just write a normal webpage. SendHTML.hta is included in this download. It provides a
handy graphical interface, using JSMail to convert an HTML file to email format and send it. The
SendHTML program will recognize
IMG tags,
BODY BACKGROUND
images, and
images specified in the STYLE
background-image property of a webpage. It embeds the images in your email
so that your webpage is delivered to the recipient just as you designed it.
Using the
SendHTML.hta program is as easy as filling in a few text fields in a webpage. (An HTA program
is an interactive webpage that runs locally in Internet Explorer.) There is also an option
to output the entire email server communication to a text window in the
SendHTML
page. That ability can be useful for troubleshooting.
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jsmail.zip (71 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Update notes:
1) While the SendHTML.hta utility can send webpages as email directly, some email
programs may not fully recognize your HTML/CSS. Testing might be needed. In our tests, Outlook
Express 5/6 and Apple Mac email rendered HTML emails properly, recognizing and rendering all 3 webpage image types (background
image, inline image, and STYLE-designated background image for elements such as HTML headings), but Thunderbird
did not see a background image assignment in an H2 tag using the CSS
background-image
property. (Outlook Express would also miss the
background-image property if it were applied inline
as an
H2 tag
STYLE attribute, rather than
within a
STYLE tag.)
Thunderbird seems to be somewhat buggy when it comes to properly displaying images in HTML. And ironically,
"webmail" browser-based email, such as gmail or yahoo webmail, seem to be the worst in terms of recognizing
and processing CSS code. So there are some details like that to keep in mind, but in general you
can expect basic webpages sent with JSMail to render as expected for the recipient.
2) Bugfix note: For people with experience using JSMail: Have you used JSMail before? Have you ever experienced WScript
crashing at script end? If so, download this latest version for corrections in the sample script. There is no problem
with the older version of JSMail itself, but the older sample scripts could cause a script crash in some circumstances.
VB6 code option:
VB code is also available for this, in the form of a VB UserControl.
The VB code is essentially the same as the JSMail component, but it can be compiled into VB software to provide
built-in email capability. The VB code does not use any controls, such as the Winsock control.
It is straight VB and sockets API. The UserControl incorporates Base64 encoding for attachments, email formatting, server IP resolution,
etc. In short, it is a compact, soup-to-nuts, emailing engine that can be dropped into any VB project to
provide emailing functionality with no dependencies, on Win95 through XP.
Go to Script Listings Page
Go to Scripts Index Page
jsHTTP2.exe - File Download and IP -> Hostname component
Updated 8-2012 to support Windows Vista/7.
Note: jsHTTP2.exe replaces jsHTTP.exe. In addition to added functionality there were
slight function changes in the new version, so it has been created as a new file/object. (The
changes to the object model are very slight, mainly just involving improved error reporting.)
jsHTTP2.exe is a component designed to combine various Internet-related functions.
It has three main objects at this point:
Downloader - Download files without any dependency on IE, MSXML, or other high-level wrappers.
IPInfo - Designed for webmasters, IPInfo provides functions to get host name and
geographical location from an IP address. The host name resolution function is optimized
for processing a large number of IP addresses. It has a timeout option to prevent long
lags when web servers don't respond to a host name request.
Included is a sample script for auto-editing web server
"raw" logs in order to see where your visitors are coming from. For example, a log entry with
an IP like
40.40.40.40 might be translated to
something like
server.acme.com*East Oshkosh-WI-US.
(IPInfo uses a free database and component from MaxMind, at maxmind.com, to find
geographical location data. Thank you to MaxMind for your generosity and well-designed tools.)
FileOps - Provides zlib compression functions and .gz file creation/extraction. Also
includes a large set of high-efficiency file I/O functions. There are already two packages here
for binary file functions: One based on Textstream and also jsBin.DLL. jsHTTP2.FileOps is a bit
different. It bypasses the slow, awkward process of translating bytes to and from variant
data types (required by VBScript) by providing functions to handle, store, read, write and edit
byte streams as stored objects. You can read a binary file, edit it, and write it back to
disk without actually "touching" most of the byte data in script.
(Requirements: 98/2000/ME/XP/2003/Vista/7)
Download jshttp2.zip (188 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
jsrssv.exe- RSS component
jsrssv.exe is a component for downloading and processing
RSS files from web feeds. It has functionality to download files,
write downloaded files to disk, and process files as RSS text,
returning an RSSFile object that provides access to the feed elements
through an RSS object model. jsrssv.exe can be used to download and
custom-format RSS feeds.
This is currently a beta component that has had limited testing.
Feel free to email with questions or reports about your experience using it.
(See the VB code page for an OCX ActiveX control equivalent with source code.)
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jsrssv.zip (37 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
RTFtoText Conversion Component
jsRTF.exe is a simple component that can be used to process RTF text in script. RTF
text is Rich Text Format, the text with formatting information used in WordPad and in
RichTextBox controls. RTF records information about font, text color, text size, etc. in
the text itself. A RichText window, such as WordPad, can load RichText and display
the formatting. (MS Word uses similar functionality.)
jsRTF provides functions that mimic the Textstream object. An RTF file
or string can be loaded as a stream and then read from, or written to disk, as the plain text version.
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jsrtf.zip (23 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
Type Library Reader Component
jsCOM.DLL is a component for reading and documenting type libraries, with a particular
emphasis on information relevant to scripters. jsCOM is similar to the object browser
script above. It is not a replacement for the object browser script but rather a replacement
for the file that script uses, TLBINF32.DLL, which is not installed on all Windows systems and
is very difficult to work with, especially for scripters. TLBINF32.DLL is the component used
to display an object browser in Visual Studio and MS Office. An object browser is
a utility that displays the methods, properties and events in scriptable COM objects.
jsCOM.DLL reads type libraries (the system documentation that makes
COM possible) and then provides a usable object model of
the information found there. You can use it to make your own object browser; to list, for example, the methods of FileSystemObject, find
out what file it derives from, find out whether it's installed locally, check for the existence of
a specific method, retrieve the values of all FSO constants, etc.
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jscom.zip (36 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSProgBr.exe - Progress Bar component
This is a simple progress bar component. It's made as an ActiveX EXE
so that the progress bar can run independently of the script. There are
30 units of measure. Draggable title bar. Title and caption can be changed
while running. The window can show an icon. The window can optionally
be shown center screen and/or on top of other windows. Progress can
be set to proceed automatically with a timer (using WScript.Sleep).
Note: JSProgBr is still available but it was actually
replaced by
JSProgBr2, which provides more options.
Download JSProgBr.exe (13 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JPG IPTC Component
jsIPTC is a component that can read and write 14 different string properties
stored in JPG image files. IPTC is a standard established by the Newspaper Association of America (NAA)
and the International Press Telecommunications Council (IPTC). It is a standard for storing
"metadata" information strings in JPG files, and is recognized by IrfanView and Photoshop, among others.
jsIPTC can be used for searching and/or cataloguing image file collections.
(Requirements: Win98+. This component was updated 11/2018 and now includes an ActiveX EXE
version for use with 64-bit WScript or other 64-bit software.)
Download iptc.zip (62 KB)
Go to Script Listings Page
Go to Scripts Index Page
jsRTB - RichTextBox Control
Updated 8-2012 to support Windows Vista/7.
jsRTB2 is a RichTextBox control for use with VBScript. Unlike the Microsoft
RichTextBox, jsRTB2 does not require a license. It uses properties and methods with variant
parameters in order to accommodate script. It can be embedded in a webpage (HTA) with an
OBJECT tag. And it has nearly all the functionality of the Microsoft RichTextBox - plus some extras.
(jsRTB2 is recommended for use in HTAs. The control is not "safe for scripting" because it
can be used to edit and write files on disk. Therefore it cannot be used in public webpages.)
It can also be used in compiled software, but the functions use variant data type, to accommodate
script, so it will not be speed-optimized.
jsRTB2 is basically what you would have if Wordpad were a scriptable
ActiveX control. It allows you to provide full editor functionality, with control over
all of the editor operations. The download comes with a simple text editor demo in the form
of an HTA. The demo is similar in functionality to the Wordpad program, demonstrating the usage
of the various jsRTB2 functions. jsRTB2 replaces the older jsRTB. It is rebuilt, with various bugfixes, support for Vista/7, and updated to work
with DEP on newer Windows systems.
View a picture of the included editor HTA.
(Requirements: 98/2000/ME/XP/2003/Vista/7/8)
Download rtbocx.zip (59 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
jsCAB - CAB File operations Component
jsCAB is a component to enable working with CAB files. It can be
used to create and unpack CAB files, to get information about CAB files, and to
convert a self-executing CAB file (EXE) to normal CAB file (CAB). The download includes
working drag/drop scripts for all operations.
This download also includes a C++ DLL for use by programming
languages such as VB. (The COM component jsCAB.dll embeds the C++ DLL,
providing both script-friendly COM functions and standard DLL functions.)
(Requirements: 98/2000/ME/XP/2003 support only.)
Download jscab.zip (76 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
jsMSI.dll - Windows Installer/MSI Ops
jsMSI.dll is a component for use with script or compiled software. It wraps the clunky and tedious Windows
Installer API, providing relatively simple functions to open, edit and unpack .msi files.
Windows Installer
provides a Dispatch or "late-bound" interface for scripting. It also provides API functions. jsMSI.dll uses the API
functions internally and provides 2 objects -- one for scripting and one for compiled software. jsMSI provides methods
to import/export tables, find column and table information, add or remove records, edit column values, extract or
insert embedded files, extract files from CABs, etc. It also provides a single function
UnpackMSI that
does just that, unpacking an MSI installer while documenting the installer package, including Registry settings made by the installer.
jsMSI.dll does not add anything new that the JSWare MSI-related scripts cannot do, but it provides
a library using API functions for people who may want greater speed and efficiency, or who want to
use the functionality in their own software. jsMSI basically combines the functionality of the 1-click MSI unpacker
with the functionality of the MBase scripting class. One can easily build a software GUI or HTA interface
around that functionality. (See
the MSI code page for
the script-based unpackers, the MBase MSI Editor and other MSI scripts.)
(Requirements: Supports all Windows versions, Win98 and later.)
Download jsmsi.zip (206 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
JSDrop - Generic Drop Handler
A drop handler is a "shell extension" that works with Explorer. Any registered file type can have a drop handler assigned to it.
The drop handler is then called when a file with that extension has something dropped onto it. For example, Windows Script Host
provides the file wshext.dll to act as a drop handler for .vbs files. When a file or folder is dropped onto a VBS file, Explorer calls wshext.dll,
which then runs the script and provides the dropped file path in the WScript.Arguments property.
JSDrop is a generic drop handler. It can be assigned to any file extension (and any number of them). You can also assign any program (or none) to
run that type of file and receive the dropped file path in its command line when a drop occurs. JSDrop was
especially designed to provide drop handling for HTAs. With JSDrop your HTAs can check the HTA commandLine property at startup,
enabling them to respond to a dropped file or folder. But JSDrop can also be used for any other file type. You can select any program
(or no program) to run and receive the command line (target file path and dropped file path) when a file or folder is dropped.
JSDrop also provides a second way to use it. A JSDrop object is loaded into the Running Object Table (ROT) at
boot time. Any script or software can access that object using GetObject. (The ROT is what allows script to access a running
instance of MS Word, etc.) The JSDrop object in the ROT provides an event when a handled file type is dropped upon. The event
allows a subscribing process to get the target file path and the dropped file path. There is even an option to cancel running the
target file.
See the help file in the download for a thorough explanation.
(Requirements: Supports all Windows versions, Win98 and later.)
Download jsdrop.zip (30 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
Go to Script Listings Page
Go to Scripts Index Page
jsShell - Shell Component
jsShell.dll is designed to provide functionality that scripters
often want: Shell operations. (Shell refers to an operating system's GUI -- the
Desktop, Explorer, windows and other visual functionality.) Shell functions are oddly missing
from both WSH and WMI. Most of what is available consists
of hacks using Shell.Application, IE windows, etc.
jsShell supports all Windows versions from Win98 up.
It combines parts of other components (replacing jsAA.dll [Active Accessibility],
ShellApp2.dll, and parts of JSSys3.dll) with new functions, to provide the following functionality:
• Enumerate running processes.
• Return information about display properties and current
mouse position.
• Dialog windows: FileOpen, Multi-FileOpen, FileSave, BrowseForFolder, ChooseColor.
• Get/Set the active window.
• Enumerate open windows and their child windows.
• Find extensive information about any of those windows --
parent or child --
including size, position, classname, handle, titlebar text,
and associated executable. jsShell can
also return details
about all sub-windows, or controls, in those windows. Through
the MS Active Accessibility API (MSAA)
* it can provide the text in a
textbox, the caption on a button, the selected item in a
listbox, etc. It can, for example, find a button in a given
window with the caption "Start", then select or even auto-click
that button.
• Return a usable IE Document from any window hosting an
IE browser window. (IE, HTAs, pre-XP folder windows, or
3rd-party software.)
(Requirements: Supports all Windows versions, Win98 and later.)
Download jsshell.zip (177 KB)
(Note: If you want to use this component on 64-bit Windows, see important information here.)
New: jsShellX.exe is exactly the same thing as jsShell.dll, but as an ActiveX
EXE it runs in its own process, which means it can be run by a 32-bit or 64-bit process. If you've found any
inconvenience using jsShell on 64-bit Windows you might want to try jsShellX.exe.
Download jsshellx.zip (166 KB)
* Active Accessibility is a set of functions built into Windows since Windows 98.
"Accessibility" is the currently politically correct term for extra functionality to help people who are blind, deaf, or have
other disabilities that limit their ability to use computers. Much of the MSAA API is involved with programmatically
detailing screen items and actions. Unfortunately, MSAA is very complex and awkward. It doesn't work very well.
Windows was never designed for accessibility, so Microsoft no doubt had difficulty retrofitting that functionality.
To a great extent MSAA is just a wrapper around a number of main API functions. But MSAA is all there is. Screen
readers for the blind, which provide spoken descriptions of what's happening onscreen, typically use a combination
of MSAA and various hacks to accomplish reasonable usability for blind people.
Since MSAA is very awkwardly designed, difficult to use, and (ironically) inaccessible from VBS,
jsShell integrates MSAA functionality such as the
IAccessible interface,
AccessibleObjectFromEvent, AccessibleObjectFromPoint,
AccessibleObjectFromWindow, etc. In addition to providing access to open windows and running functions, it also
provides objects --
AAWindow and
AAObject -- that represent windows and their component
objects (buttons, textboxes, labels, etc.). These objects provide an AA view of what's happening onscreen
through relatively easy-to-use objects, methods and properties.
Go to Script Listings Page
Go to Scripts Index Page
jsIE - Browser Component
jsIE.exe is a replacement for InternetExplorer.Application. It acts in almost the same
way and makes the Document object available to scripting, just as IE does. IE
automation has been blocked for a long time on Windows, yet it's all still there. And
HTAs still work, which are just IE without security. jsIE wraps the IE functionality
to provide a replacement in scripting and software. It's actually wrapping a VB6
WebBrowser component, but that is IE.
jsIE provides a window that mimics an IE browser window. It also provides
a few extra functions such as File open and save dialogues, color picker dialogue,
and access to the Windows Clipboard.
Requirements: jsIE is an ActiveX EXE, which means it will run on virtually
any Windows computer, 32-bit or 64-bit, with no special files required. The component just needs to be
registered as a COM object. (Explanation included.)
jsIE also
includes the VB6 project code, so that anyone who wants to can modify
the functionality for their own purposes. The code is actually very basic, since the function of jsIE is primarily just to expose the IE
functionality that's already on Windows.
Download jsie.zip (37 KB)
Go to Script Listings Page
Go to Scripts Index Page