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