Wow, time flies! Our "new server" was put into service in 2004, and has since been torn down as we abandoned it for a group of new virtual servers. Lots of fun! But this site hasn't been updated in quite awhile, I'm afraid.  Hopefully, I'll find the motivation to get more done soon, other than this transition to the new 2008R2 IIS7.5 platform, sans FPSE.

I'm afraid the proverbial "dust" still hasn't fully settled on the "new design" either. Wish I had more time to put into this. Hard to get as enthusiastic as once was possible, I'm afraid, given the horrible destruction done. Seems that the general consensus is starting to swing, though, back towards "maybe Classic VB wasn't so bad after all." VSM has decided there was enough latent interest still that, for awhile at any rate, they revived my old column! There are links to all of them over on the Articles page, but here's the jumping off point to them on the VSM site:

Classic VB Corner  <<== new Classic VB column!

I hate to report that I lost enthusiasm for continuing that effort, though. I would be interested in doing more, if it didn't seem that most of what was interesting hadn't already been reported. Classic VB is a very mature language. I think the most interesting avenues to pursue, would be tighter integration into the Windows 7 user interface. If anyone's been doing some exciting work in that area, I'd love to hear about it!

The code sample offerings have gone under the most redesign of all. Whereas they used to be listed on a single page for all, you will now find a descriptive page for each! Unfortunately, it's going to take a bit more time to get the descriptions updated for all those projects, so I've copied the old page over for your reference.

This site is totally devoted to Classic Visual Basic, as millions once knew and loved it. This is a certifiably .NET-Free zone..NET: It's About Trust!

What's New

July 29, 2010
  • Added the KeyStuff code sample. Shows how to stuff the keyboard buffer from a console application. Includes the full source code for a command line utility (CDW) that you can use in place of CD to change directories using a browse for folder dialog.
June 28, 2010
  • Updated the Uptime code sample. Added the capability to call OpenProcess against system processes in Vista and Windows 7, by elevating to debug privileges in the current process. Also renames the CProcessInfo class to CProcessTimes, as that seemed more accurate..
April 26, 2010
  • Added the StartupInfo code sample. Provides a drop-in ready class module of various startup parameters requested by either the user or the calling process.
  • Updated the StopWatch code sample. Added an actual test app that shows how to time a hypothetical comparison between exponentiation and multiplication. Plus, another little demonstration of the (what I consider) the unreliabilty of QueryPerformanceCounter as an alternative to timeGetTime for benchmarks.
April 2, 2010
  • Updated the SendInput code sample (again). Found the need to add support for the AltGr key, which is supported natively by the operating system when it's using certain (non-US) keyboard layouts.
March 10, 2010
  • Added the MemStatus code sample. Shows how to determine the total and available amounts of installed physical memory, application virtual address space, and page file swap space. Also demonstrates how to go beyond the standard 2gb Win32 virtual address space limit in properly configured systems.
February 17, 2010
  • Updated the Console code sample. The method used to determine LaunchMode, by looking for known or suspected parent processes, was failing on x64 systems. Fixed that.
Comprehensive Updates List

Odds and Ends

Here are a few offerings you won't find linked to in the main menus on this site, but that I'd like to make sure you were aware of regardless.

Hardcore Visual Basic, by Bruce McKinney
When Microsoft decided to drop Bruce's classic tome from MSDN, I quickly offered to host it here at MVPs.org and, against what I considered all odds, they agreed. I'm glad we could save this one, and make it available to everyone from here onward. More recently, this site assumed the honor of hosting The End of Hardcore Visual Basic, a fond farewell to what was.
Visual Basic 4 How-To
Several of us put  together this little tome in 1994-95, during the world's longest beta. I don't believe there ever was a fully electronic copy suitable for online publishing, at least I never encountered one. While much of the text is now somewhat obsolete, the code may still contain a few tricks.
Site Statistics
Call it vain, or whatever. In case you care, here are a few stats taken over the years. I hope to provide a more up-to-date selection of frequent downloads once this new site stabilizes.
Those Awful Midis
Okay, it took three (or more?) years, but I finally rolled out a new site that isn't a throwback to the 90s. If you actually miss those old Pink Floyd midi tunes, don't fret! They're still here.


After great agonizing, I have decided to plop a PayPal Donations button down on the bottom of every page here. The simple truth is, Visual Basic Programmer's Journal used to (unwittingly?) finance this site by commissioning my articles on Classic VB. Sadly, that publication is no longer with us, and the one that's taken its place isn't much interested in the programming language you and I still use. So, long story-short, if I've saved you (or your boss!) a bundle of money with the code you've downloaded from here, and you're feeling generous (or you have access to the company credit card!), well, I'm not too proud to let you help me defray the time I spend building the samples offered here. Thanks!