ActiveX (COM) Components

   The downloads on this page are COM components: DLL files and ActiveX EXEs. Once registered on your computer, they provide an object that exposes functions. The object can be accessed with "CreateObject". Each component comes with documentation, sample code and a VBScript that can register or unregister components. That script also has tips (in the comments) for automating a remote component registration.

Note: The script downloads take up multiple webpages. Script downloads and component downloads are on separate pages. There is also a "table of contents" for download links and an index of download links.

This page has descriptions and download links for scripting components.
The script downloads "table of contents", as well as general scripting information, is here
The index of downloads is here
The download page for scripts is here
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).
Simple progress bar
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
The Snazzy Line of Components
   The Snazzy components are for people interested in "skinning" or customizing the graphic display of a component interface. At this time there is only one Snazzy version, the Progress Bar (JSProgBr2). JSProgBr2 is functionally the same as the normal progress bar but adds a number of display properties.

Snazzy Progress Bar
(Requirements: 98/2000/ME/XP/2003 support only.)

Go to Script Listings Page
Go to Scripts Index Page