Below you'll find a quick description of a variety of
full-blown demonstration projects that are available here for download.
Most contain "drop-in ready" code and class modules. Clicking
on any given link will take you to a page that describes the
project in more detail. You may display the projects
either alphabetically, or in descending order of last update if you just
want to see what's changed recently. Other pages that might be of
interest, since you're here, are:
Finally, many of you have told me you've had great success using these
samples, often totally unmodified, within Microsoft Office and other
platforms supporting Visual Basic for Applications (VBA). I've added a new field
to the database to indicate which ones have been found to work really well
in that environment. You'll see a small version of the logo (to right)
next to all such samples below, where that applies. I intend to keep
testing my samples, in pursuit of which are "VBA-Ready!" and
which might be with only minor modifications. If you've found VBA utility
in samples not so marked, please let me know.
VBA-Ready
n.
- Classic VB sample that contains BAS and/or CLS files that may be used directly within Visual Basic for Applications.
- FRM files designed for Classic VB are generally compatible with Visual Basic for Applications unique UserForm objects.
Display Projects Chronologically
- AltTab, 6/13/2000
- Constructs application lists, consisting of title and icon, as generated by the Alt-Tab window and Task Manager.
- AniCtrl, 6/22/1999
- Encapsulates an animation control within a drop-in class module.
- ApiErrMsg, 7/5/1999
- Decode API error numbers into meaningful descriptions.
- AppIcon, 12/7/1999
- Change your application icon at runtime.
- Assoc, 9/24/2009
- Retrieve strings related to file associations, such as executable launch command, friendly file type, etc.
- ClipEx, 7/1/2002
- Recreates functionality of the Clipboard object for VBA.
- ClipFileCopy, 9/14/1999
- Shows how Explorer copies and pastes files (actually, file lists) to/from the clipboard.
- ClipView, 6/22/1999
- Injects application into clipboard viewer chain.
- CloneObjs, 9/4/2000
- Uses Friend scope to provide objects with Clone methods.
- CmdLine, 5/6/2004
- Read and parse the command line into an argument array or test for switch presence and parameters.
- ConClip, 5/20/2005
- Console utilities to read/write the Windows clipboard.
- Console, 2/17/2010
- Full console application development support from within VB5/6 IDE.
- CustomBlt, 4/12/2000
- Provides TransBlt and TileBlt routines for transparent and tiled bitblts.
- Dialogs, 1/18/2011
- Common dialogs without any external dependencies.
- DirDrill, 6/18/2007
- Demonstrates recursive use of VB's Dir function.
- DrvInfo, 3/7/2002
- Provides all kinds of information about any drive in the system.
- DrvMap, 1/20/1999
- Converts drive letters to UNC share name.
- DualList, 6/22/2009
- Two UserControls that offer the ability to move items between (add/remove) or within (up/down) listboxes.
- EditMenu, 11/24/1997
- Full edit menu/button support for both ordinary and rich textboxes.
- EnumMsgs, 5/19/2000
- Enumerates the list of strings Windows maintains (&hC000-&hFFFF) for things like registered messages.
- EnumRes, 4/12/2000
- Enumerates resources embedded within any file, and displays many standard types.
- FileControls, 7/11/2006
- Combines the native file controls into a single-file, easy-to-use, no-dependency UserControl.
- FileInfo, 7/26/2001
- Provides all kinds of information about any file in the system or network, by replicating the General and Version tabs of Windows' File Properties dialogs.
- FindPart, 5/18/2000
- Finds desired window based on partial (either "begins with" or "contains") caption.
- Flood, 5/7/2001
- Recreates the Paint function for VB, as provided in QuickBasic.
- FontPre, 4/18/2001
- TrueType fontfile (TTF) inspector extracts information from allows viewing of uninstalled fonts.
- ForceFore, 10/27/1998
- Force another window to the foreground, when SetForegroundWindow doesn't work, by attaching to its thread.
- FormBdr, 8/9/2001
- Provides runtime access to "read-only" properties such as ControlBox, MaxButton, MinButton, Moveable, and ShowInTaskbar. Adds new properties such as AutoDrag, Sizeable, Titlebar, and Topmost.
- FormPair, 5/12/2005
- Force a toolwindow to follow a main form as its moved around the screen.
- Fraction, 7/9/2000
- Rational numbers (fractions) encapsulated by a class; full math support.
- FtpExists, 2/8/2000
- Determines whether a specified file exists on an FTP server.
- FullDrop, 5/12/2005
- Sizes the dropdown portion of a combobox to fit number of elements.
- Grabber, 2/13/2008
- Various methods to add a grabber (or "shangle") to your forms, including a new one that supports XP themes..
- Hello, 12/6/2000
- Recreation of Charles Petzold's classic "HelloWin" demo; pure API, including exitcode.
- HexDump, 12/6/2000
- Functions to dump a hex view of any memory address and dereference pointers to strings (ANSI or Unicode) and Dword values.
- HookMe, 5/12/2005
- Native subclassing technique for VB5/6. Extremely clean.
- HookXP, 7/24/2009
- Demonstrates native Windows subclassing method with no risk of improper teardown. Very flexible!
- HyperJmp, 8/3/2004
- ShellExecute any URL to open a website in the default browser.
- HyperLabel, 4/16/1999
- UserControl that provides hyperlink capabilities to either text or images; highlights based on when mouse enters and leaves.
- KeyStuff, 7/29/2010
- Stuff the keyboard buffer from your console applications.
- kpIni, 5/12/2005
- An oldie! This one goes back to Win16 days. Finally updated for 32-bit! Do anything with INI files. Anything.
- Lasso, 9/17/2001
- Draw a selection rectangle within a Picture box control.
- ListSearch, 1/1/1999
- "Type-o-matic" searches for ordinary and combo listboxes.
- Locale, 3/22/2007
- Determine regional settings for current user and machine. Modify current user's regional settings.
- LongScroll, 12/8/2003
- Provides support for Long (32-bit) values with standard scrollbars; supports Value, Min, Max, Change properties.
- LVStyles, 3/27/1999
- Bunches of ListView tricks, including very fast API-based sorting. VB5 only?
- MapFile, 4/29/2004
- Maps a file into your process's memory space, so you can reference it using pointer operations.
- MdiBack, 9/27/2001
- Paints the background of MDI forms with any sort of graphic, pattern, or color you choose.
- MemoryDC, 7/1/2002
- Provides a virtual canvas in memory for you to draw on; separates hBitmap from StdPicture for use with APIs.
- MemStatus, 2/19/2010
- Determine the total and available amounts of physical, virtual, and pagefile memory.
- Monitors, 8/7/2009
- Provides a collection of objects representing each monitor on the system, and a module of functions for monitor tricks.
- MouseEvent, 4/11/2000
- Full control of the mouse through code, including mousewheel.
- MovedMsg, 7/13/2005
- Position a MsgBox anywhere on screen, or directly over specified window.
- MsgHook, 11/24/1997
- Freeware subclassing controls.
- MultiOE, 2/3/2005
- Shows how to call a DLL that resides in an unknown location at compile time.
- NCMetrics, 12/7/1999
- Obtain non-client metrics from the system, including conversion of LOGFONT structures to StdFont objects.
- NetCam, 4/10/2007
- Provides a full-function UserControl that retrieves and displays webcam images from web.
- NetConnect, 12/11/1998
- Determine whether you have Internet access.
- NetDomain, 10/17/2000
- Obtain domain controller information on Win2000 (and higher) systems.
- NetGrab, 2/7/2008
- Shows how to use the AsyncRead method of VB5/6 UserControls to download anything to memory or file.
- NetUrl, 4/17/2000
- Crack or create a conformant URL into/from its constituent elements.
- NetUser, 9/24/2004
- Obtain information about current user, as provided by USER_INFO_3 and GROUP_INFO_2.
- NetWksta, 7/22/1997
- Obtain information about current workstation, as provided by WKSTA_INFO_102 and WKSTA_USER_INFO_1.
- ObjArrays, 2/5/2001
- Create an array of objects that provide WithEvents functionality.
- OpSys, 8/15/2001
- Determine what operating system your application is running under.
- PassSniff, 8/24/1999
- Search the system for windows with one characteristic (ES_PASSWORD), and retrieve "hidden" on pre-Win2000 systems.
- PolyBtn, 8/14/1998
- Create an irregularly shaped UserControl by generating a MaskPicture at runtime.
- PrevInst, 2/21/2006
- Communicate with previous instance to pass new command line, using WM_COPYDATA or DDE.
- PrnInfo, 9/13/2006
- Hook into the Windows Print Queue to find and control print jobs for any printer.
- ProgBar, 12/17/1995
- Encapsulates a ProgressBar control within a drop-in class module.
- RegSettings, 9/9/2005
- Replacement for VB's native registry functions, that allows more freedom in where you can put your entries.
- ResDemo, 4/12/2000
- Shows how to play WAV files directly from RES files, as well as some other resource-based bitmap techniques.
- Rgb, 7/3/2001
- Break RGB colors into constituent red, green, and blue values.
- RMenu, 4/2/1996
- Hook into requests for, and provide your own, context menus on right-click.
- RotFont, 8/24/1998
- Rotate fonts to any angle, then use native Print function for output.
- RunOnce, 11/30/1998
- Startup automatically -- with machine or at login, once or always -- by making appropriate registry entries.
- SendInput, 4/2/2010
- Drop in replacement for SendKeys, for use in environments (ie, Vista+) where that doesn't work.
- Shell32, 6/9/2007
- Several techniques to "Shell and Wait" on Win32 systems.
- Slurp, 7/7/1997
- Shows how to use vbInet ActiveX server to suck a list of URLs from the internet to your local machine.
- SnapDialog, 3/28/2008
- Snap dialogs to the edges of screen. Supports multiple monitors and taskbar avoidance. Uses native subclassing.
- Splash, 9/5/1999
- What I consider the "correct way" to start up an application from Sub Main, showing a Splash screen to distract the user while you're initializing the main form.
- Spool, 1/11/1999
- Submit "print to disk" files directly to Windows print spooler.
- StartupInfo, 4/26/2010
- Provides access to various startup parameters offered to all applications by Windows.
- StatProg, 1/20/1999
- Embed an "owner-drawn" progress bar within a standard StatusBar panel.
- StockFont, 5/19/2009
- Provides easy means to select stock fonts (built into Windows) into any control with an hWnd property.
- StopWatch, 4/26/2010
- Benchmark your code with millisecond resolution.
- StrBldr, 4/23/2004
- Emulate the .NET StringBuilder class with extremely efficient string concatenation.
- Streams, 11/3/2009
- Enumerate, delete, or otherwise manipulate Alternate Data Streams in any NTFS file.
- SyncEvts, 5/15/1998
- Several ways to share events (timers, in this demo) amongst multiple objects.
- SysFolders, 12/21/2008
- Locate all the special system folders with a simple drop-in ready class module.
- SysInfo, 11/17/2009
- Catch Windows device notifications, system settings updates, and power status.
- SysSnd, 4/21/1998
- Enumerate all associatable sounds from the registry, and optionally play them. Simple routines to start and stop MIDI files, too.
- TaskList, 2/13/2002
- Recreation of Task Manager's Applications tab shows how to properly terminate processes.
- TextOutline, 3/31/1999
- Use GDI paths to create cool special effects with fonts by adding togglable properties such as FillColor and OutlineColor.
- TimedMsg, 3/22/2000
- Add a time-out to ordinary MsgBox's so they can be dismissed after some period of no user reaction.
- TimerObj, 6/17/2005
- Code-based timer object for use in non-windowed (or VBA) situations. OCX included.
- TimeZone, 5/4/2004
- Retrieve timezone and daylight savings time information from the system.
- Translucent, 7/10/2000
- Create layered windows, to make forms translucent or irregularly shaped, using drop-in class.
- Tray, 3/13/2012
- Add your application's icon to the taskbar's notification tray (systray) properly. Updated for VB6 with native subclassing.
- TreeRecurse, 8/20/1998
- Recursively alter properties of TreeView nodes over entire tree or starting at any single branch.
- Twiddle, 5/5/2000
- Twiddle bits with the best of them; extract low/hi bytes and words, combine to create larger datatypes, flip/read individual bits, shift, rotate, you name it.
- UncName, 4/12/2000
- Convert a drive-based filespec to UNC.
- UpDown, 12/2/2002
- Class-based replacement for the UpDown common control.
- Uptime, 6/28/2010
- Determine how long since the computer was last rebooted.
- Which, 9/24/2009
- Finds first or all executables on path, or which executable is associated with a document file or extension.
- WinRgn, 10/14/1999
- Create an irregularly shaped form; drag a captionless form.
- Wmf2Emf, 10/5/1999
- Convert a Windows Metafile (WMF) to newer Enhanced Metafile (EMF).
- WndPick, 12/18/2003
- Capture cursor feedback outside your own window, like Spy++ does, to highlight and pick any window on the system.