The Doc Detective
The Doc Detective

Unless you are clairvoyant, finding what you need in the Visual Studio .NET documentation can sometimes be a daunting task. The Doc Detective is here to help, gazing into his crystal ball to divine the deepest secrets of the documentation.

Can't find what you're looking for? Just ask? if it's in there, I'll find it for you; if it isn't, I'll let you know that as well (and tell you where else you might go to find it).

Have a question for the Doc? Send your questions for future columns to me at

Dear Doc Detective,

I am trying to find out a way to launch external applications from within a .NET Windows application. Is there something equivalent to ShellExecute in Visual Basic 6? I know there is a way to achieve this using Interop, but what I want to know is whether or not .NET exposes a way to do it without using System.Runtime.Interop and DLLImport.

– Launchless in Laramie

Dear Launchless,

This isn't nearly as difficult as you might think?the ShellExecute function in Visual Basic 6 is replaced by the Shell function in .NET. Shell is similar to ShellExecute but also includes several new arguments such as Wait and Timeout. Just look for the topic “Shell Function”.

By the way, there are numerous topics that compare Visual Basic 6.0 functions, properties, methods, and events with their .NET equivalents. Look for the topic “Introduction to Visual Basic .NET for Visual Basic Veterans” and drill down from there. Unfortunately ShellExecute is one that we missed.

– Doc Detective

Dear Doc Detective,

My company has a lot of COM components written in Visual Basic 6. We're not ready to rewrite them in .NET since we still have VB6 applications that use them as well. I've read up on COM interop and understand how to use the COM components from my Visual Basic .NET application, but how the heck do I deploy an application that uses them without going to each desk and manually registering the components?

– Stuck in Stuckeyville

Dear Stuck,

The deployment tools in Visual Studio .NET do indeed support registering COM components, but it's apparently a secret. The only topics I found relating to this are in the .NET Framework documentation; they have nothing to do with Visual Studio .NET deployment. Fortunately though, there is a recent whitepaper in the MSDN Library ( that shows how to deploy Visual Basic .NET applications that use COM components; as a bonus it also shows how to deploy Visual Basic 6 applications that use .NET components. Just look for “Deploying Hybrid Visual Basic 6.0 / Visual Basic .NET Applications”. Read up, then go forth and deploy?after all, 'tis better to deploy than to receive.

– the Doc

Dear Doc Detective,

When I saw the letter in your last column from Accessible in Akron, I thought it might be about accessibility, not Access databases. I write software for a federal agency and one of our requirements is that all applications must be accessible to users with disabilities. Can you help me find information on creating accessible applications with .NET?

– Disappointed in D.C.

Dear Disappointed,

Before I answer your question, I need to know if you work for the Department of Justice. Just kidding! Accessibility is an important subject at Microsoft?check out the latest innovations on the accessibility front at

Of course you can create accessible applications in .NET. For an introduction, look for the topic “Designing Accessible Applications.” There are also a couple of great walkthroughs that can help get you started: “Walkthrough: Creating an Accessible Windows Application” and “Walkthrough: Creating an Accessible Web Application.” By the way, if you happen to work for the I.R.S., the good doctor has this little problem…

– Doctor D

Dear Doc Detective,

I'm a long time Visual Basic programmer new to Visual Basic .NET. I know there is documentation relating to upgrading my applications, but it's hard to tell which topics apply. Is there any way to set the Help viewer to only show the upgrading documentation?

Newbie in New York

Dear Newbie,

Well, you could go through all of the topics in the docs and save the upgrading topics as Favorites… or you could create a custom filter. A custom filter allows you to define exactly what will and won't show up in the table of contents and index. Look for the topic “Creating a Custom Filter” to learn more.

To create a filter for the upgrading docs, enter the value “ProductVers”=“kbVBp600” in the Filter Definition field of the Edit Help Filters dialog box (include the quotes). Once you have saved the new filter, viewing only the upgrade docs is just a mouse click away. Now if we could just figure out how to filter out the Doc Detective…

– Doc

Doc's Doc Tip of the Day

Meet the neighbors! If you find a topic using the index or Search, don't forget to use the “Sync Contents” button (the double-ended arrow) to see where you are in the table of contents. You can often find lots of useful related topics that way, plus it helps you learn your way around the TOC.



ms-help://MS.VSCC/MS.MSDNVS/vbcon/html/ vboriIntroductionToVisualBasic70ForVisualBasicVeterans.htm

ms-help://MS.VSCC/MS.MSDNVS/vsent7/html/ vxcondesigningaccessibleapplications.htm

ms-help://MS.VSCC/MS.MSDNVS/vbcon/html/ vbwlkWalkthroughCreatingAccessibleWindowsApplication.htm

ms-help://MS.VSCC/MS.MSDNVS/vbcon/html/ vbwlkWalkthroughCreatingAccessibleWebApplicationWithVisualBasic.htm

ms-help://MS.VSCC/MS.MSDNVS/dnhelp/html/ vstskcreatingcustomfilter.htm